Pular para o conteúdo

Função APPROX_COUNT_DISTINCT: Alternativa mais rápida para COUNT (DISTINCT)

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

Alex Zaballa

Alex Zaballa

Alex Zaballa, formado em Análise de Sistemas, é especialista em Banco de Dados Oracle com sólidos conhecimentos em Servidores de Aplicação e Sistemas Operacionais; trabalha com Oracle há 15 anos, é ORACLE ACE Director, certificado OCM Database 11G / Cloud e conta com mais de 140 outras certificações em produtos da Oracle. Alex também é um dos fundadores do Grupo de Usuários Oracle de Angola (GUOA), participa do Grupo de Usuários de Tecnologia Oracle Brasil (GUOB) e é membro do time OraWorld.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Marcações:
plugins premium WordPress