Approximate Count Distinct
A função APPROX_COUNT_DISTINCT proporciona uma alternativa para a função COUNT (DISTINCT expr).
Esta função processa grandes quantidades de dados de uma forma muito mais rápida que o COUNT, com um desvio insignificante do resultado exato.
Ela não pode ser utilizada com os seguintes tipos de dados:
- BFILE
- BLOB
- CLOB
- LONG
- LONG RAW
- NCLOB
A forma comum de utilização:
SQL> SELECT count (distinct manager_id) AS "Gerentes Ativos"
FROM hr.employees_big;
Gerentes Ativos
---------------
18
Elapsed: 00:00:03.02
Utilizando a função APPROX_COUNT_DISTINCT:
SQL> SELECT APPROX_COUNT_DISTINCT(manager_id) AS "Gerentes Ativos"
FROM hr.employees_big;
Gerentes Ativos
---------------
18
Elapsed: 00:00:00.62
Para quem quiser se aprofundar no assunto, indico o seguinte post:
http://externaltable.blogspot.com/2014/08/scaling-up-cardinality-estimates-in.html
Abraço