Oracle Histogram Checking
Oracle Histogram Checking
txt
SQL> @xplan_sqlid 9kfrgu25mw8t0
SQL> @gsql_hist
INST SQL_ID SQL_TEXT DAYS
EXECS BUF_PER_EXE DSK_PER_EXE ROWS_PER_EXE TOT_TIME ELA_PER_EXE SCHEMA
PLAN_HASH LAST_ACTIVE VERCNT BASELINE_PROFILE
---- ------------- -------------------------------------------------------- ------
------------ ----------- ----------- ------------ ---------- ------------
------------- ----------- ----------------- ------ --------------------------------
4 9kfrgu25mw8t0 SELECT BOOKTID_INTEGRATION_ID, DEM_INST_ID, STATUS_CD, P .00
7 57,934 0 188.71 3.2 .4577 LTLWASFIN
1550447737 10/06/22 11:42:06 1 -
SQL> @tdetu
TABLE_NAME tblespce PCT_FREE CHAIN_CNT
AVG_ROW_LEN NUM_ROWS INITRAN SIZE_MB LAST_ANALYZED DEGREE PARTITION
COMPRESS_FOR
------------------------------------------ ------------ ---------- ----------
----------- --------------- ------- --------- ---------------- ----------
---------- ---------------
DEMOSS.TESTING_4_HISTOGRAM_TABLE22 DEMOSS_DATA 10 0
212 1,371,783 1 333.9 10/01/22 10:00 1
SQL> @histo
Enter Tablename and Owner as parameters
11:44:41 SQL>
1 SELECT BOOKTID_INTEGRATION_ID, DEM_INST_ID, STATUS_CD, PRO_NBR_TXT,
2 TRUE_DEBTOR_PPD, TRUE_DEBTOR_COL
3 FROM DEMOSS.TESTING_4_HISTOGRAM_TABLE22
4* where status_cd = 'NEW'
11:44:45 SQL> /
Elapsed: 00:00:00.29
Execution Plan
----------------------------------------------------------
Plan hash value: 1550447737
-----------------------------------------------------------------------------------
----------------------
| Id | Operation | Name | Rows | Bytes |
Cost (%CPU)| Time |
-----------------------------------------------------------------------------------
----------------------
| 0 | SELECT STATEMENT | | 133K| 5624K|
526 (5)| 00:00:01 |
|* 1 | TABLE ACCESS STORAGE FULL| TESTING_4_HISTOGRAM_TABLE22 | 133K| 5624K|
526 (5)| 00:00:01 |
-----------------------------------------------------------------------------------
----------------------
1 - storage("STATUS_CD"='NEW')
filter("STATUS_CD"='NEW')
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
57988 consistent gets
0 physical reads
236 redo size
6528 bytes sent via SQL*Net to client
594 bytes received via SQL*Net from client
8 SQL*Net roundtrips to/from client
105 rows processed
11:44:45 SQL>
1 SELECT /*+ index(TESTING_4_HISTOGRAM_TABLE22, TESTING_4_HISTOGRAM_TABLE22_N1)
*/ BOOKTID_INTEGRATION_ID, DEM_INST_ID, STATUS_CD, PRO_NBR_TXT,
2 TRUE_DEBTOR_PPD, TRUE_DEBTOR_COL
3 FROM DEMOSS.TESTING_4_HISTOGRAM_TABLE22
4* where status_cd = 'NEW'
11:45:25 SQL> /
Elapsed: 00:00:00.13
Execution Plan
----------------------------------------------------------
Plan hash value: 3296785567
-----------------------------------------------------------------------------------
-----------------------------------
| Id | Operation | Name | Rows
| Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------
-----------------------------------
| 0 | SELECT STATEMENT | |
133K| 5624K| 5051 (1)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID BATCHED| TESTING_4_HISTOGRAM_TABLE22 |
133K| 5624K| 5051 (1)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | TESTING_4_HISTOGRAM_TABLE22_N1 |
133K| | 541 (1)| 00:00:01 |
-----------------------------------------------------------------------------------
-----------------------------------
2 - access("STATUS_CD"='NEW')
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
1038 consistent gets
515 physical reads
69116 redo size
12874 bytes sent via SQL*Net to client
756 bytes received via SQL*Net from client
16 SQL*Net roundtrips to/from client
221 rows processed
.
.
SQL> ed
1 select
OWNER,TABLE_NAME,COLUMN_NAME,NUM_DISTINCT,LOW_VALUE,HIGH_VALUE,DENSITY,NUM_NULLS,NU
M_BUCKETS,LAST_ANALYZED,SAMPLE_SIZE,AVG_COL_LEN,HISTOGRAM,SCOPE
2 from DBA_TAB_COL_STATISTICS
3 where OWNER like upper('&OWN')
4 and TABLE_NAME like upper('&TAB')
5 and COLUMN_NAME='STATUS_CD'
6* order by 1,2,3,4
SQL> /
SQL>
1 SELECT *
2 FROM DBA_HISTOGRAMS
3 WHERE table_name = 'TESTING_4_HISTOGRAM_TABLE22' and column_name = 'STATUS_CD'
4* ORDER BY endpoint_number
SQL> /
3 rows selected.
STATUS_C COUNT(*)
-------- --------------------
SENT 333221
PILOT 1507559
NEW 195
COUNT(*)
--------------------
1841029
SQL> @ton2
1 SELECT BOOKTID_INTEGRATION_ID, DEM_INST_ID, STATUS_CD, PRO_NBR_TXT,
2 TRUE_DEBTOR_PPD, TRUE_DEBTOR_COL
3 FROM DEMOSS.TESTING_4_HISTOGRAM_TABLE22
4* where status_cd = 'NEW'
/
89 rows selected.
Elapsed: 00:00:00.02
Execution Plan
----------------------------------------------------------
Plan hash value: 3296785567
-----------------------------------------------------------------------------------
-----------------------------------
| Id | Operation | Name | Rows
| Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------
-----------------------------------
| 0 | SELECT STATEMENT | |
103 | 4532 | 7 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID BATCHED| TESTING_4_HISTOGRAM_TABLE22 |
103 | 4532 | 7 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | TESTING_4_HISTOGRAM_TABLE22_N1 |
103 | | 3 (0)| 00:00:01 |
-----------------------------------------------------------------------------------
-----------------------------------
2 - access("STATUS_CD"='NEW')
Note
-----
- automatic DOP: Computed Degree of Parallelism is 1 because of parallel
threshold
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
798 consistent gets
0 physical reads
0 redo size
5697 bytes sent via SQL*Net to client
581 bytes received via SQL*Net from client
7 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
89 rows processed