Advertisement
Guest User

APPROX_COUNT_DISTINCT test

a guest
Jul 30th, 2014
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE TABLE tt AS SELECT rownum id, t.* FROM dba_objects t WHERE rownum < 100000;
  2.  
  3. INSERT INTO tt AS SELECT * FROM tt;
  4.  
  5. INSERT INTO tt AS SELECT * FROM tt;
  6.  
  7. commit;
  8.  
  9. SET autot ON EXP stat
  10. SQL> SELECT COUNT(DISTINCT id) FROM tt;
  11.  
  12. COUNT(DISTINCTID)
  13. -----------------
  14.            999999
  15.  
  16. Elapsed: 00:00:02.15
  17.  
  18. Execution Plan
  19. ----------------------------------------------------------
  20. Plan hash VALUE: 1056889062
  21.  
  22. -----------------------------------------------------------------------------------------
  23. | Id  | Operation            | Name     | ROWS  | Bytes |TempSpc| Cost (%CPU)| TIME     |
  24. -----------------------------------------------------------------------------------------
  25. |   0 | SELECT STATEMENT     |          |     1 |    13 |       |  6834   (1)| 00:00:01 |
  26. |   1 |  SORT AGGREGATE      |          |     1 |    13 |       |            |          |
  27. |   2 |   VIEW               | VW_DAG_0 |   999K|    12M|       |  6834   (1)| 00:00:01 |
  28. |   3 |    HASH GROUP BY     |          |   999K|  4882K|    11M|  6834   (1)| 00:00:01 |
  29. |   4 |     TABLE ACCESS FULL| TT       |   999K|  4882K|       |  3769   (1)| 00:00:01 |
  30. -----------------------------------------------------------------------------------------
  31.  
  32.  
  33. Statistics
  34. ----------------------------------------------------------
  35.           0  recursive calls
  36.           0  db block gets
  37.       95708  consistent gets
  38.       54725  physical reads
  39.           0  redo SIZE
  40.         553  bytes sent via SQL*Net TO client
  41.         552  bytes received via SQL*Net FROM client
  42.           2  SQL*Net roundtrips TO/FROM client
  43.           0  sorts (memory)
  44.           0  sorts (disk)
  45.           1  ROWS processed
  46.  
  47.          
  48. SQL> SELECT APPROX_COUNT_DISTINCT(id) FROM tt;
  49.  
  50. APPROX_COUNT_DISTINCT(ID)
  51. -------------------------
  52.                    971092
  53.  
  54. Elapsed: 00:00:00.71
  55.  
  56. Execution Plan
  57. ----------------------------------------------------------
  58. Plan hash VALUE: 3133740314
  59.  
  60. ------------------------------------------------------------------------------
  61. | Id  | Operation             | Name | ROWS  | Bytes | Cost (%CPU)| TIME     |
  62. ------------------------------------------------------------------------------
  63. |   0 | SELECT STATEMENT      |      |     1 |     5 |  3769   (1)| 00:00:01 |
  64. |   1 |  SORT AGGREGATE APPROX|      |     1 |     5 |            |          |
  65. |   2 |   TABLE ACCESS FULL   | TT   |   999K|  4882K|  3769   (1)| 00:00:01 |
  66. ------------------------------------------------------------------------------
  67.  
  68.  
  69. Statistics
  70. ----------------------------------------------------------
  71.           5  recursive calls
  72.           0  db block gets
  73.       95710  consistent gets
  74.       54725  physical reads
  75.           0  redo SIZE
  76.         561  bytes sent via SQL*Net TO client
  77.         552  bytes received via SQL*Net FROM client
  78.           2  SQL*Net roundtrips TO/FROM client
  79.           0  sorts (memory)
  80.           0  sorts (disk)
  81.           1  ROWS processed
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement