oracle12c新特性之APPROX_COUNT_DISTINCT函数

来源:这里教程网 时间:2026-03-03 11:56:37 作者:

oracle 12c新特性之APPROX_COUNT_DISTINCT函数 在进行sql优化时经常要统计某一列不同的值的个数,进而计算该列的选择性。但是在表体量很大,并且列上又没有索引时,count(distinct column)经常要花费很长的时间。12c提供了一个近似去重的新函数approx_count_distinct。这个函数的返回值是不准确的,不统计null值,但是胜在速度快。 SQL> set timing on SQL> alter system flush buffer_cache; SQL> alter system flush shared_pool; SQL> SELECT count(distinct SECURITYFULLNAME) FROM CDSY_SECUCODE; COUNT(DISTINCTSECURITYFULLNAME) -------------------------------                         1334427 Elapsed: 00:00:07.13 SQL> SELECT APPROX_COUNT_DISTINCT(SECURITYFULLNAME) FROM CDSY_SECUCODE; APPROX_COUNT_DISTINCT(SECURITYFULLNAME) ---------------------------------------                                 1310729 Elapsed: 00:00:00.82 可以看到时间差距非常明显,新函数特别快,当然准确性差了些。执行计划中会看到SORT AGGREGATE APPROX。

相关推荐