BEGIN DBMS_STATS.GATHER_TABLE_STATS(ownname => 'PORTAL_HIS', tabname => 'YS_ZY_JZJL', estimate_percent => 100, method_opt => 'for all columns size skewonly for columns(KSDM,CYBZ)', no_invalidate => FALSE, cascade => TRUE); END; / PORTAL_HIS.YS_ZY_JZJL alter index PORTAL_HISIDX_YS_ZY_JZJL_CYBZ usable; Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> col table_owner for a15 SQL> set line 150 SQL> col table_name for a40 SQL> col column_name for a30 SQL> col index_name for a30 SQL> select table_owner, table_name, column_name, index_name from dba_ind_columns where table_owner = 'PORTAL_HIS' and table_name = 'YS_ZY_JZJL'; TABLE_OWNER TABLE_NAME COLUMN_NAME INDEX_NAME --------------- ---------------------------------------- ------------------------------ ------------------------------ PORTAL_HIS YS_ZY_JZJL JZHM PK_YS_ZY_JZJL PORTAL_HIS YS_ZY_JZJL KSDM IDX_YS_ZY_JZJL_KSDM PORTAL_HIS YS_ZY_JZJL YSDM IDX_YS_ZY_JZJL_YSDM PORTAL_HIS YS_ZY_JZJL RYRQ IDX_YS_ZY_JZJL_RYRQ PORTAL_HIS YS_ZY_JZJL CYRQ IDX_YS_ZY_JZJL_CYRQ PORTAL_HIS YS_ZY_JZJL CYBZ IDX_YS_ZY_JZJL_CYBZ PORTAL_HIS YS_ZY_JZJL ZLXZ IDX_YS_ZY_JZJL_ZLXZ PORTAL_HIS YS_ZY_JZJL JZXH IDX_YS_ZY_JZJL_JZXH 8 rows selected. SQL> select owner,table_name,object_type,stale_stats,num_rows,last_analyzed from dba_tab_statistics where table_name='YS_ZY_JZJL'; OWNER TABLE_NAME OBJECT_TYPE STALE_STA NUM_ROWS LAST_ANALYZED -------------- ---------------------------------------- PORTAL_HIS YS_ZY_JZJL TABLE SQL> select count(*),count(distinct KSDM) from PORTAL_HIS.YS_ZY_JZJL; COUNT(*) COUNT(DISTINCTKSDM) ---------- ------------------- 14487 6 SQL> select count(*),count(distinct KSDM),count(distinct CYBZ) from PORTAL_HIS.YS_ZY_JZJL; COUNT(*) COUNT(DISTINCTKSDM) COUNT(DISTINCTCYBZ) ---------- ------------------- ------------------- 14487 6 2 SQL> select KSDM,count(1) from PORTAL_HIS.YS_ZY_JZJL group by KSDM; KSDM COUNT(1) ------------------------------ ---------- 100 461 135 259 8 11278 7 2404 91 77 119 8 6 rows selected. SQL> select CYBZ,count(1) from PORTAL_HIS.YS_ZY_JZJL group by CYBZ; CYBZ COUNT(1) ---------- ---------- 1 14410 0 77 SQL> select index_name,STATUS from dba_indexes where index_name='IDX_YS_ZY_JZJL_CYBZ'; INDEX_NAME STATUS ------------------------------ ------------------------ IDX_YS_ZY_JZJL_CYBZ UNUSABLE SQL> SQL> SQL> SQL> SQL> SQL> SQL> BEGIN 2 DBMS_STATS.GATHER_TABLE_STATS(ownname => 'PORTAL_HIS', 3 tabname => 'YS_ZY_JZJL', 4 estimate_percent => 100, 5 method_opt => 'for all columns size skewonly for columns(KSDM,CYBZ)', 6 no_invalidate => FALSE, 7 cascade => TRUE); 8 END; 9 / PL/SQL procedure successfully completed. SQL> SQL> SQL> SQL> SQL> SQL> set line 150 SQL> SQL> SQL> select * from table(dbms_xplan.DISPLAY_CURSOR('2wkpmjj7v2dw3', null, 'ALLSTATS LAST')); PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------------------------------------------------------------------ SQL_ID 2wkpmjj7v2dw3, child number 0 ------------------------------------- Select V_EMR_YW_JZJL.JZHM, V_EMR_YW_JZJL.BRBH, V_EMR_YW_JZJL.BRXM, V_EMR_YW_JZJL.BRXB, V_EMR_YW_JZJL.CSRQ, V_EMR_YW_JZJL.BRXZ, V_EMR_YW_JZJL.KSDM, V_EMR_YW_JZJL.BQDM, V_EMR_YW_JZJL.CWHM, V_EMR_YW_JZJL.YSDM, V_EMR_YW_JZJL.ZYYS, V_EMR_YW_JZJL.ZRYS, V_EMR_YW_JZJL.HLJB, V_EMR_YW_JZJL.RYZD, V_EMR_YW_JZJL.ZDMC, V_EMR_YW_JZJL.RYQK, V_EMR_YW_JZJL.RYRQ, V_EMR_YW_JZJL.CYRQ as outdata, V_EMR_YW_JZJL.CYBZ as outflag, V_EMR_YW_JZJL.ZDMC, V_EMR_YW_JZJL.RYNL AS BRNL, V_EMR_YW_JZJL.ZKZT , V_EMR_YW_JZJL.ZGQK , V_EMR_YW_JZJL.ZLXZ as TeamId, V_EMR_YW_JZJL.JLLX AS VisitType, ' ' AS OtherFlag, ' ' AS ChargeTypeName, 0 AS XQBZ, V_EMR_YW_JZJL.BRQK, V_EMR_YW_JZJL.ZYCS, V_EMR_YW_JZJL.BAHM, V_EMR_YW_JZJL.BRID, 0 AS JRRY, 0 AS QCBZ, 0 AS YGBZ, 0 AS SSQ, 0 AS SSH, 0 as QFBR, 0 AS LCLJ, 0 AS WTYZ, 0 AS YZYTS, 0 AS YZKBR, 0 AS PatientLevel, ' ' AS BRTX, ' Plan hash value: 1733410705 PLAN_TABLE_OUTPUT --------------------------------------------------------------------------------------------------- | Id | Operation | Name | E-Rows | OMem | 1Mem | Used-Mem | | 0 | SELECT STATEMENT | | | | | | | 1 | VIEW | V_EMR_YW_JZJL | 52 | | | | | 2 | SORT UNIQUE | | 52 | 15360 | 15360 |14336 (0)| | 3 | UNION-ALL | | | | | | |* 4 | TABLE ACCESS BY INDEX ROWID | YS_ZY_JZJL | 35 | | | | |* 5 | INDEX RANGE SCAN | IDX_YS_ZY_JZJL_KSDM | 11447 | | | | | 6 | NESTED LOOPS | | 17 | | | | | 7 | NESTED LOOPS | | 81M| | | | | 8 | TABLE ACCESS FULL | BQ_XSEDJ | 7082 | | | | |* 9 | INDEX RANGE SCAN | IDX_YS_ZY_JZJL_KSDM | 11447 | | | | |* 10 | TABLE ACCESS BY INDEX ROWID| YS_ZY_JZJL | 1 | | | | --------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 4 - filter("YS_ZY_JZJL"."CYBZ"=0) 5 - access("YS_ZY_JZJL"."KSDM"='8') 9 - access("YS_ZY_JZJL"."KSDM"='8') 10 - filter(("YS_ZY_JZJL"."CYBZ"=0 AND "YS_ZY_JZJL"."JZHM"=CAST("MQZYH" AS VARCHAR(18)))) PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------------------------------------------------------------------ Note ----- - dynamic sampling used for this statement (level=2) - Warning: basic plan statistics not available. These are only collected when: * hint 'gather_plan_statistics' is used for the statement or * parameter 'statistics_level' is set to 'ALL', at session or system level 51 rows selected. SQL> / PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------------------------------------------------------------------ SQL_ID 2wkpmjj7v2dw3, child number 0 ------------------------------------- Select V_EMR_YW_JZJL.JZHM, V_EMR_YW_JZJL.BRBH, V_EMR_YW_JZJL.BRXM, V_EMR_YW_JZJL.BRXB, V_EMR_YW_JZJL.CSRQ, V_EMR_YW_JZJL.BRXZ, V_EMR_YW_JZJL.KSDM, V_EMR_YW_JZJL.BQDM, V_EMR_YW_JZJL.CWHM, V_EMR_YW_JZJL.YSDM, V_EMR_YW_JZJL.ZYYS, V_EMR_YW_JZJL.ZRYS, V_EMR_YW_JZJL.HLJB, V_EMR_YW_JZJL.RYZD, V_EMR_YW_JZJL.ZDMC, V_EMR_YW_JZJL.RYQK, V_EMR_YW_JZJL.RYRQ, V_EMR_YW_JZJL.CYRQ as outdata, V_EMR_YW_JZJL.CYBZ as outflag, V_EMR_YW_JZJL.ZDMC, V_EMR_YW_JZJL.RYNL AS BRNL, V_EMR_YW_JZJL.ZKZT , V_EMR_YW_JZJL.ZGQK , V_EMR_YW_JZJL.ZLXZ as TeamId, V_EMR_YW_JZJL.JLLX AS VisitType, PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------------------------------------------------------------------ ' ' AS OtherFlag, ' ' AS ChargeTypeName, 0 AS XQBZ, V_EMR_YW_JZJL.BRQK, V_EMR_YW_JZJL.ZYCS, V_EMR_YW_JZJL.BAHM, V_EMR_YW_JZJL.BRID, 0 AS JRRY, 0 AS QCBZ, 0 AS YGBZ, 0 AS SSQ, 0 AS SSH, 0 as QFBR, 0 AS LCLJ, 0 AS WTYZ, 0 AS YZYTS, 0 AS YZKBR, 0 AS PatientLevel, ' ' AS BRTX, ' Plan hash value: 1733410705 PLAN_TABLE_OUTPUT --------------------------------------------------------------------------------------------------- | Id | Operation | Name | E-Rows | OMem | 1Mem | Used-Mem | | 0 | SELECT STATEMENT | | | | | | | 1 | VIEW | V_EMR_YW_JZJL | 52 | | | | | 2 | SORT UNIQUE | | 52 | 15360 | 15360 |14336 (0)| | 3 | UNION-ALL | | | | | | |* 4 | TABLE ACCESS BY INDEX ROWID | YS_ZY_JZJL | 35 | | | | |* 5 | INDEX RANGE SCAN | IDX_YS_ZY_JZJL_KSDM | 11447 | | | | | 6 | NESTED LOOPS | | 17 | | | | | 7 | NESTED LOOPS | | 81M| | | | | 8 | TABLE ACCESS FULL | BQ_XSEDJ | 7082 | | | | |* 9 | INDEX RANGE SCAN | IDX_YS_ZY_JZJL_KSDM | 11447 | | | | |* 10 | TABLE ACCESS BY INDEX ROWID| YS_ZY_JZJL | 1 | | | | --------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 4 - filter("YS_ZY_JZJL"."CYBZ"=0) 5 - access("YS_ZY_JZJL"."KSDM"='8') 9 - access("YS_ZY_JZJL"."KSDM"='8') 10 - filter(("YS_ZY_JZJL"."CYBZ"=0 AND "YS_ZY_JZJL"."JZHM"=CAST("MQZYH" AS VARCHAR(18)))) PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------------------------------------------------------------------ Note ----- - dynamic sampling used for this statement (level=2) - Warning: basic plan statistics not available. These are only collected when: * hint 'gather_plan_statistics' is used for the statement or * parameter 'statistics_level' is set to 'ALL', at session or system level 51 rows selected. SQL> / PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------------------------------------------------------------------ SQL_ID 2wkpmjj7v2dw3, child number 0 ------------------------------------- Select V_EMR_YW_JZJL.JZHM, V_EMR_YW_JZJL.BRBH, V_EMR_YW_JZJL.BRXM, V_EMR_YW_JZJL.BRXB, V_EMR_YW_JZJL.CSRQ, V_EMR_YW_JZJL.BRXZ, V_EMR_YW_JZJL.KSDM, V_EMR_YW_JZJL.BQDM, V_EMR_YW_JZJL.CWHM, V_EMR_YW_JZJL.YSDM, V_EMR_YW_JZJL.ZYYS, V_EMR_YW_JZJL.ZRYS, V_EMR_YW_JZJL.HLJB, V_EMR_YW_JZJL.RYZD, V_EMR_YW_JZJL.ZDMC, V_EMR_YW_JZJL.RYQK, V_EMR_YW_JZJL.RYRQ, V_EMR_YW_JZJL.CYRQ as outdata, V_EMR_YW_JZJL.CYBZ as outflag, V_EMR_YW_JZJL.ZDMC, V_EMR_YW_JZJL.RYNL AS BRNL, V_EMR_YW_JZJL.ZKZT , V_EMR_YW_JZJL.ZGQK , V_EMR_YW_JZJL.ZLXZ as TeamId, V_EMR_YW_JZJL.JLLX AS VisitType, PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------------------------------------------------------------------ ' ' AS OtherFlag, ' ' AS ChargeTypeName, 0 AS XQBZ, V_EMR_YW_JZJL.BRQK, V_EMR_YW_JZJL.ZYCS, V_EMR_YW_JZJL.BAHM, V_EMR_YW_JZJL.BRID, 0 AS JRRY, 0 AS QCBZ, 0 AS YGBZ, 0 AS SSQ, 0 AS SSH, 0 as QFBR, 0 AS LCLJ, 0 AS WTYZ, 0 AS YZYTS, 0 AS YZKBR, 0 AS PatientLevel, ' ' AS BRTX, ' Plan hash value: 2971752397 PLAN_TABLE_OUTPUT ----------------------------------------------------------------------------------- | Id | Operation | Name | E-Rows | OMem | 1Mem | Used-Mem | | 0 | SELECT STATEMENT | | | | | | | 1 | VIEW | V_EMR_YW_JZJL | 64 | | | | | 2 | SORT UNIQUE | | 64 | 15360 | 15360 |14336 (0)| | 3 | UNION-ALL | | | | | | |* 4 | TABLE ACCESS FULL | YS_ZY_JZJL | 43 | | | | |* 5 | HASH JOIN | | 21 | 883K| 883K| 1264K (0)| |* 6 | TABLE ACCESS FULL| YS_ZY_JZJL | 43 | | | | | 7 | TABLE ACCESS FULL| BQ_XSEDJ | 7082 | | | | ----------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 4 - filter(("YS_ZY_JZJL"."CYBZ"=0 AND "YS_ZY_JZJL"."KSDM"='8')) 5 - access("YS_ZY_JZJL"."JZHM"=CAST("MQZYH" AS VARCHAR(18))) 6 - filter(("YS_ZY_JZJL"."CYBZ"=0 AND "YS_ZY_JZJL"."KSDM"='8')) Note ----- - dynamic sampling used for this statement (level=2) - Warning: basic plan statistics not available. These are only collected when: PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------------------------------------------------------------------ * hint 'gather_plan_statistics' is used for the statement or * parameter 'statistics_level' is set to 'ALL', at session or system level 47 rows selected. SQL> set pagesize 0
Oracle数据倾斜优化案例
来源:这里教程网
时间:2026-03-03 18:02:02
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- enq: TM – contention故障处理
enq: TM – contention故障处理
26-03-03 - 记一次节点一夯住内存消尽
记一次节点一夯住内存消尽
26-03-03 - 记一次监听无法启动处理
记一次监听无法启动处理
26-03-03 - 1201升级crs到1205报错
1201升级crs到1205报错
26-03-03 - 网站本地化翻译、建设助力企业拓展全球市场 安睿杰翻译
网站本地化翻译、建设助力企业拓展全球市场 安睿杰翻译
26-03-03 - 数据库优化至临时表优化
数据库优化至临时表优化
26-03-03 - 中创新航:动力电池变局者?
中创新航:动力电池变局者?
26-03-03 - 网上冲浪不爽?可能是你没用上华为云CDN
网上冲浪不爽?可能是你没用上华为云CDN
26-03-03 - 华为云灾备,如何为企业数字化转型保驾护航?
华为云灾备,如何为企业数字化转型保驾护航?
26-03-03 - 19c refresh pdb
19c refresh pdb
26-03-03
