此次案例来自西安某客户的一次SQL优化,对于优化自身并不简单,然而发现了一个比拟乏味的问题,就是索引范畴扫描以及回表都有应用多块读的形式。上面来看看具体案例。
SQL文本:
UPDATE A_INV_PRINT_DET P SET (P.P_POWER, P.N_POWER, P.V_POWER, P.P_KWH_PRC, P.N_KWH_PRC, P.V_KWH_PRC, P.P_KWH_AMT, P.N_KWH_AMT, P.V_KWH_AMT) = (SELECT KWH.P_POWER, KWH.N_POWER, KWH.V_POWER,KWH.P_KWH_PRC, KWH.N_KWH_PRC, KWH.V_KWH_PRC, KWH.P_KWH_AMT, KWH.N_KWH_AMT, KWH.V_KWH_AMT FROM (SELECT B.PRC_AMT_ID, SUM(CASE WHEN B.PRC_TS_CODE= :B4 THEN B.SETTLE_APQ ELSE 0 END) P_POWER, SUM(CASEWHEN B.PRC_TS_CODE= :B3 THEN B.SETTLE_APQ ELSE 0 END) N_POWER, SUM(CASE WHEN B.PRC_TS_CODE= :B2 THEN B.SETTLE_APQ ELSE 0 END) V_POWER, MAX(CASE WHEN B.PRC_TS_CODE= :B4 THEN B.KWH_PRC ELSE 0 END)P_KWH_PRC, MAX(CASE WHEN B.PRC_TS_CODE= :B3 THEN B.KWH_PRC ELSE 0 END) N_KWH_PRC, MAX(CASE WHEN B.PRC_TS_CODE= :B2 THEN B.KWH_PRC ELSE 0 END) V_KWH_PRC, SUM(CASE WHEN B.PRC_TS_CODE= :B4 THENB.KWH_AMT ELSE 0 END) P_KWH_AMT, SUM(CASE WHEN B.PRC_TS_CODE= :B3 THEN B.KWH_AMT ELSE 0 END) N_KWH_AMT, SUM(CASE WHEN B.PRC_TS_CODE= :B2 THEN B.KWH_AMT ELSE 0 END) V_KWH_AMT FROM ARC_E_KWH_AMT BWHERE B.ORG_NO LIKE :B1 AND EXISTS (SELECT 1 FROM A_NOTEPRC_TMP T WHERE B.PRC_AMT_ID = T.NOTE_ID) GROUP BY B.PRC_AMT_ID) KWH WHERE KWH.PRC_AMT_ID = P.PRC_AMT_ID) WHERE EXISTS (SELECT 1 FROMA_INV_PRINT I WHERE I.INV_MAIN_ID = P.INV_MAIN_ID AND I.ORG_NO LIKE '61020%' AND EXISTS (SELECT 1 FROM A_AMT_CONS WHERE CONS_NO = I.CONS_NO)) AND EXISTS (SELECT 1 FROM ARC_E_KWH_AMT B WHERE B.ORG_NOLIKE '61020%' AND B.PRC_AMT_ID = P.PRC_AMT_ID AND EXISTS (SELECT 1 FROM A_NOTEPRC_TMP T WHERE B.PRC_AMT_ID = T.NOTE_ID) )
执行打算:
Plan hash value: 4279392932----------------------------------------------------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |----------------------------------------------------------------------------------------------------------------------------------------| 0 | UPDATE STATEMENT | | | | 78882 (100)| | | || 1 | UPDATE | A_INV_PRINT_DET | | | | | | ||* 2 | HASH JOIN SEMI | | 1 | 63 | 9915 (1)| 00:01:59 | | || 3 | NESTED LOOPS | | 229 | 11450 | 2253 (1)| 00:00:28 | | || 4 | NESTED LOOPS | | 229 | 11450 | 2253 (1)| 00:00:28 | | || 5 | VIEW | VW_SQ_1 | 214 | 2782 | 1395 (1)| 00:00:17 | | || 6 | SORT UNIQUE | | 214 | 22898 | | | | || 7 | NESTED LOOPS | | 214 | 22898 | 1395 (1)| 00:00:17 | | || 8 | NESTED LOOPS | | 1323 | 22898 | 1395 (1)| 00:00:17 | | || 9 | SORT UNIQUE | | 126 | 9702 | 2 (0)| 00:00:01 | | || 10 | INDEX FAST FULL SCAN | DX_A_AMT_CONS | 126 | 9702 | 2 (0)| 00:00:01 | | ||* 11 | INDEX RANGE SCAN | IDX_CONS_NO3 | 21 | | 3 (0)| 00:00:01 | | ||* 12 | TABLE ACCESS BY GLOBAL INDEX ROWID| A_INV_PRINT | 2 | 60 | 24 (0)| 00:00:01 | ROWID | ROWID ||* 13 | INDEX RANGE SCAN | IDX_AINVPRINTDET_INVMAINID | 1 | | 3 (0)| 00:00:01 | | || 14 | TABLE ACCESS BY INDEX ROWID | A_INV_PRINT_DET | 1 | 37 | 4 (0)| 00:00:01 | | || 15 | VIEW | VW_SQ_2 | 295K| 3753K| 7662 (1)| 00:01:32 | | ||* 16 | HASH JOIN RIGHT SEMI | | 295K| 18M| 7662 (1)| 00:01:32 | | || 17 | TABLE ACCESS FULL | A_NOTEPRC_TMP | 127 | 6350 | 2 (0)| 00:00:01 | | || 18 | PARTITION RANGE ITERATOR | | 295K| 4908K| 7659 (1)| 00:01:32 | KEY | KEY || 19 | PARTITION LIST ALL | | 295K| 4908K| 7659 (1)| 00:01:32 | 1 | 49 || 20 | TABLE ACCESS BY LOCAL INDEX ROWID | ARC_E_KWH_AMT | 295K| 4908K| 7659 (1)| 00:01:32 | KEY | KEY |gc cr multi block request(5)(12.82%) || |db file sequential read(6)(15.38%) || |gc current block 2-way(2)(5.13%) || |db file scattered read(9)(23.08%) || |CPU(2)(5.13%) ||* 21 | INDEX RANGE SCAN | IDX_ARC_E_KWH_AMT_OY_2X | 295K| | 1123 (1)| 00:00:14 | KEY | KEY |db file scattered read(6)(15.38%) || |db file sequential read(5)(12.82%) || |gc cr multi block request(1)(2.56%) || |CPU(2)(5.13%) || |gc current block 2-way(1)(2.56%) || 22 | VIEW | | 1 | 130 | 7662 (1)| 00:01:32 | | || 23 | SORT GROUP BY | | 1 | 83 | 7662 (1)| 00:01:32 | | || 24 | NESTED LOOPS | | 1 | 83 | 7662 (1)| 00:01:32 | | || 25 | NESTED LOOPS | | 295K| 83 | 7662 (1)| 00:01:32 | | || 26 | SORT UNIQUE | | 1 | 50 | 2 (0)| 00:00:01 | | ||* 27 | TABLE ACCESS FULL | A_NOTEPRC_TMP | 1 | 50 | 2 (0)| 00:00:01 | | || 28 | PARTITION RANGE ITERATOR | | 295K| | 1122 (1)| 00:00:14 | KEY | KEY || 29 | PARTITION LIST ALL | | 295K| | 1122 (1)| 00:00:14 | 1 | 49 ||* 30 | INDEX RANGE SCAN | IDX_ARC_E_KWH_AMT_OY_2X | 295K| | 1122 (1)| 00:00:14 | KEY | KEY ||* 31 | TABLE ACCESS BY LOCAL INDEX ROWID | ARC_E_KWH_AMT | 1 | 33 | 7659 (1)| 00:01:32 | 1 | 1 |----------------------------------------------------------------------------------------------------------------------------------------Predicate Information (identified by operation id):---------------------------------------------------2 - access("ITEM_2"="P"."PRC_AMT_ID")11 - access("CONS_NO"="I"."CONS_NO")12 - filter("I"."ORG_NO" LIKE :B1)13 - access("ITEM_1"="P"."INV_MAIN_ID")16 - access("B"."PRC_AMT_ID"=TO_NUMBER("T"."NOTE_ID"))21 - access("B"."ORG_NO" LIKE :B1)filter("B"."ORG_NO" LIKE :B1)27 - filter(TO_NUMBER("T"."NOTE_ID")=:B1)30 - access("B"."ORG_NO" LIKE :B1)filter("B"."ORG_NO" LIKE :B1)31 - filter(("B"."PRC_AMT_ID"=:B1 AND "B"."PRC_AMT_ID"=TO_NUMBER("T"."NOTE_ID")))Note------ dynamic sampling used for this statement (level=2) PL/SQL procedure successfully completed. +------------------------------------------------------------------------+| infromation from v$sqlstats |+------------------------------------------------------------------------+ CPU(MS) ELA(MS) DISK GET ROWS ROWS APPLI(MS) CONCUR(MS) CLUSTER(MS) USER_IO(MS) PLSQL JAVAEXEC PRE EXEC PRE EXEC PRE EXEC PRE EXEC PRE EXEC PRE FETCH PER EXEC PER EXEC PER EXEC PER EXEC PER EXEC PER EXEC SQL_PROFILE---------- -------- -------- -------- ------------ ----------- --------- --------- ---------- ----------- ----------- -------- -------- ---------------3 3,612 13,244 64,604 123,936 0 0 0 0 3,109 7,251 0 0
这个执行打算是关联了ash的SQL_PLAN_LINE_ID的后果,能清晰的指出SQL性能瓶颈在执行打算的id=20和id=21。SQL统计信息能够看到性能次要耗费在IO上,对于均匀每次12w的逻辑读,6w的物理读的确有点高,查看相干对象统计信息能够十分疾速的给出解决方案,在ARC_E_KWH_AMT上创立组合全局索引(PRC_AMT_ID,ORG_NO)即可,local也行然而没有全局好。SQL优化不是本篇文章的重点,所以就不详细描述了。
****************************************************************************************PARTITION TABLE**************************************************************************************** TABLE TABLE PARTITION SUBPART PART SUBPART PARTITION PARTITION COLUMNOWNER NAME TYPE TYPE COUNT COUNT KEY COUNT COLUMN NAME POSITION--------------- -------------------- ---------- ---------- ----- ------- --------- --------------- --------SGPM ARC_E_KWH_AMT RANGE LIST 80 1 1 ORG_NO 1 ****************************************************************************************TABLE COLUMNS**************************************************************************************** TABLE COLUMN Column NUM NUM AVG LASTOWNER NAME NAME Date Type NL DENSITY NULLS DISTINCT BUCK COL LEN SAMPLE_SIZE HIST ANALYZED--------------- ----------------------------------- ------------------------- --------------- -- ------------ ------------ -------- ----- ------------ ------------ ----- --------SGPM ARC_E_KWH_AMT KWH_AMT_ID NUMBER(22) N 0 0 ######## 1 7 248,746,093 NONE 20211110 PRC_AMT_ID NUMBER(22) N 0 0 ######## 1 7 248,746,093 NONE 20211110 YM VARCHAR2(18) Y 0 0 47 1 7 248,746,093 NONE 20211110 ORG_NO VARCHAR2(48) Y 0 0 844 1 10 248,746,093 NONE 20211110 PRC_TS_CODE VARCHAR2(24) N 0 0 3 1 3 248,746,093 NONE 20211110 SETTLE_APQ NUMBER(22) N 0 0 241054 1 4 248,746,093 NONE 20211110 CAT_KWH_PRC NUMBER(22) N 0 0 439 1 5 248,746,093 NONE 20211110 CAT_KWH_AMT NUMBER(22) N 0 0 1365515 1 5 248,746,093 NONE 20211110 KWH_PRC NUMBER(22) N 0 0 254 1 4 248,746,093 NONE 20211110 KWH_AMT NUMBER(22) N 0 0 1192382 1 5 248,746,093 NONE 20211110 FLAT_BAL NUMBER(22) N 0 0 5 1 3 248,746,093 NONE 20211110 ****************************************************************************************display every partition info**************************************************************************************** TABLE PARTITION HIGH_VALUE TABLESPACE PARTITION EMPTY LAST TIME AVG SUBPARTITIONNAME NAME HIGH_VALUE LENGTH NAME NUM_ROWS BLOCKS SIZE_KB BLOCKS ANALYZED SPACE COUNT COMPRESSION----------------------------------- -------------------- --------------- ---------- --------------- -------- -------- ---------- ------ ------------------- ------- ------------ -----------ARC_E_KWH_AMT P610101 '610101' 8 DATA_ARC 0 0 0KB 0 2021-11-10 0 49 NONE P610102 '610102' 8 DATA_ARC 2955515 30320 236.88KB 0 2021-11-10 0 49 NONE P610103 '610103' 8 DATA_ARC 2637797 27158 212.17KB 0 2021-11-10 0 49 NONE P610104 '610104' 8 DATA_ARC 8366792 84739 662.02KB 0 2021-11-10 0 49 NONE P610201 '610201' 8 DATA_ARC 1853561 19190 149.92KB 0 2021-11-10 0 49 NONE P610322 '610322' 8 DATA_ARC 613127 6420 50.16KB 0 2021-11-10 0 49 NONE P610323 '610323' 8 DATA_ARC 6250465 62945 491.76KB 0 2021-11-10 0 49 NONE P610324 '610324' 8 DATA_ARC 5619332 56615 442.3KB 0 2021-11-10 0 49 NONE P610326 '610326' 8 DATA_ARC 5204001 52539 410.46KB 0 2021-11-10 0 49 NONE P610327 '610327' 8 DATA_ARC 4299090 43575 340.43KB 0 2021-11-10 0 49 NONE P610328 '610328' 8 DATA_ARC 3321117 33568 262.25KB 0 2021-11-10 0 49 NONE P610329 '610329' 8 DATA_ARC 1698145 17385 135.82KB 0 2021-11-10 0 49 NONE P610331 '610331' 8 DATA_ARC 1144643 11883 92.84KB 0 2021-11-10 0 49 NONE P610332 '610332' 8 DATA_ARC 859963 9016 70.44KB 0 2021-11-10 0 49 NONE P610420 '610420' 8 DATA_ARC 1988 184 1.44KB 0 2021-11-10 0 49 NONE P610422 '610422' 8 DATA_ARC 5318 212 1.66KB 0 2021-11-10 0 49 NONE P610423 '610423' 8 DATA_ARC 5702386 57544 449.56KB 0 2021-11-10 0 49 NONE P610424 '610424' 8 DATA_ARC 5562344 56491 441.34KB 0 2021-11-10 0 49 NONE P610425 '610425' 8 DATA_ARC 7106220 71766 560.67KB 0 2021-11-10 0 49 NONE P610426 '610426' 8 DATA_ARC 5746855 58059 453.59KB 0 2021-11-10 0 49 NONE P610427 '610427' 8 DATA_ARC 2503031 25485 199.1KB 0 2021-11-10 0 49 NONE P610428 '610428' 8 DATA_ARC 2899486 29350 229.3KB 0 2021-11-10 0 49 NONE P610429 '610429' 8 DATA_ARC 2420269 24620 192.34KB 0 2021-11-10 0 49 NONE P610430 '610430' 8 DATA_ARC 3195884 32329 252.57KB 0 2021-11-10 0 49 NONE P610431 '610431' 8 DATA_ARC 2373803 24178 188.89KB 0 2021-11-10 0 49 NONE P610521 '610521' 8 DATA_ARC 5073435 51527 402.55KB 0 2021-11-10 0 49 NONE P610523 '610523' 8 DATA_ARC 4471529 45274 353.7KB 0 2021-11-10 0 49 NONE P610524 '610524' 8 DATA_ARC 9502101 95946 749.58KB 0 2021-11-10 0 49 NONE P610525 '610525' 8 DATA_ARC 6428700 64719 505.62KB 0 2021-11-10 0 49 NONE P610527 '610527' 8 DATA_ARC 4873164 49211 384.46KB 0 2021-11-10 0 49 NONE P610528 '610528' 8 DATA_ARC 3275958 33151 258.99KB 0 2021-11-10 0 49 NONE P610529 '610529' 8 DATA_ARC ######## 110670 864.61KB 0 2021-11-10 0 49 NONE P610621 '610621' 8 DATA_ARC 3387 192 1.5KB 0 2021-11-10 0 49 NONE P610622 '610622' 8 DATA_ARC 1611796 16524 129.09KB 0 2021-11-10 0 49 NONE P610623 '610623' 8 DATA_ARC 1812815 18645 145.66KB 0 2021-11-10 0 49 NONE P610624 '610624' 8 DATA_ARC 2633031 26846 209.73KB 0 2021-11-10 0 49 NONE P610625 '610625' 8 DATA_ARC 1754829 17992 140.56KB 0 2021-11-10 0 49 NONE P610626 '610626' 8 DATA_ARC 1435150 14834 115.89KB 0 2021-11-10 0 49 NONE P610627 '610627' 8 DATA_ARC 1487353 15361 120.01KB 0 2021-11-10 0 49 NONE P610628 '610628' 8 DATA_ARC 1105587 11537 90.13KB 0 2021-11-10 0 49 NONE P610630 '610630' 8 DATA_ARC 1967378 20166 157.55KB 0 2021-11-10 0 49 NONE P610631 '610631' 8 DATA_ARC 1793808 18382 143.61KB 0 2021-11-10 0 49 NONE P610632 '610632' 8 DATA_ARC 855952 9004 70.34KB 0 2021-11-10 0 49 NONE P610721 '610721' 8 DATA_ARC 9112 254 1.98KB 0 2021-11-10 0 49 NONE P610722 '610722' 8 DATA_ARC 7195061 72587 567.09KB 0 2021-11-10 0 49 NONE P610723 '610723' 8 DATA_ARC 7219216 72973 570.1KB 0 2021-11-10 0 49 NONE P610724 '610724' 8 DATA_ARC 5662868 57109 446.16KB 0 2021-11-10 0 49 NONE P610726 '610726' 8 DATA_ARC 5801644 58720 458.75KB 0 2021-11-10 0 49 NONE P610728 '610728' 8 DATA_ARC 4471260 45133 352.6KB 0 2021-11-10 0 49 NONE P610729 '610729' 8 DATA_ARC 3474328 35298 275.77KB 0 2021-11-10 0 49 NONE P610730 '610730' 8 DATA_ARC 742407 7912 61.81KB 0 2021-11-10 0 49 NONE P610731 '610731' 8 DATA_ARC 581609 6276 49.03KB 0 2021-11-10 0 49 NONE P610802 '610802' 8 DATA_ARC_1 1464 184 1.44KB 0 2021-11-10 0 49 NONE P610822 '610822' 8 DATA_ARC_1 7958250 77750 607.42KB 0 2021-11-10 0 49 NONE P610823 '610823' 8 DATA_ARC_1 3173969 31214 243.86KB 0 2021-11-10 0 49 NONE P610824 '610824' 8 DATA_ARC_1 3192427 31239 244.05KB 0 2021-11-10 0 49 NONE P610825 '610825' 8 DATA_ARC_1 3644779 35998 281.23KB 0 2021-11-10 0 49 NONE P610826 '610826' 8 DATA_ARC_1 4100854 40332 315.09KB 0 2021-11-10 0 49 NONE P610827 '610827' 8 DATA_ARC_1 3607914 35289 275.7KB 0 2021-11-10 0 49 NONE P610828 '610828' 8 DATA_ARC_1 1962899 19423 151.74KB 0 2021-11-10 0 49 NONE P610829 '610829' 8 DATA_ARC_1 1910961 18793 146.82KB 0 2021-11-10 0 49 NONE P610830 '610830' 8 DATA_ARC_1 836115 8538 66.7KB 0 2021-11-10 0 49 NONE P610831 '610831' 8 DATA_ARC_1 1480360 14694 114.8KB 0 2021-11-10 0 49 NONE P610835 '610835' 8 DATA_ARC_1 2239600 22101 172.66KB 0 2021-11-10 0 49 NONE P610836 '610836' 8 DATA_ARC_1 358007 3850 30.08KB 0 2021-11-10 0 49 NONE P610837 '610837' 8 DATA_ARC_1 205557 2280 17.81KB 0 2021-11-10 0 49 NONE P610921 '610921' 8 DATA_ARC 47722 648 5.06KB 0 2021-11-10 0 49 NONE P610922 '610922' 8 DATA_ARC 4458330 45278 353.73KB 0 2021-11-10 0 49 NONE P610923 '610923' 8 DATA_ARC 3115029 31855 248.87KB 0 2021-11-10 0 49 NONE P610924 '610924' 8 DATA_ARC 1273513 13222 103.3KB 0 2021-11-10 0 49 NONE P610925 '610925' 8 DATA_ARC 4479663 45562 355.95KB 0 2021-11-10 0 49 NONE P610926 '610926' 8 DATA_ARC 2554062 26074 203.7KB 0 2021-11-10 0 49 NONE P610927 '610927' 8 DATA_ARC 3494954 35597 278.1KB 0 2021-11-10 0 49 NONE P610928 '610928' 8 DATA_ARC 1047782 11009 86.01KB 0 2021-11-10 0 49 NONE P611023 '611023' 8 DATA_ARC 2151 184 1.44KB 0 2021-11-10 0 49 NONE P611025 '611025' 8 DATA_ARC 3156440 32074 250.58KB 0 2021-11-10 0 49 NONE P611026 '611026' 8 DATA_ARC 4353954 43964 343.47KB 0 2021-11-10 0 49 NONE P611027 '611027' 8 DATA_ARC 2660707 27047 211.3KB 0 2021-11-10 0 49 NONE P6140202 '6140202' 9 DATA_ARC_1 1483 185 1.45KB 0 2021-11-10 0 49 NONE PMAX MAXVALUE 8 DATA_ARC 4834397 48355 377.77KB 0 2021-11-10 0 49 NONE
当咱们回过头去看此案例”神奇“的中央:
| 20 | TABLE ACCESS BY LOCAL INDEX ROWID | ARC_E_KWH_AMT | 295K| 4908K| 7659 (1)| 00:01:32 | KEY | KEY |gc cr multi block request(5)(12.82%) || |db file sequential read(6)(15.38%) || |gc current block 2-way(2)(5.13%) || |db file scattered read(9)(23.08%) || |CPU(2)(5.13%) ||* 21 | INDEX RANGE SCAN | IDX_ARC_E_KWH_AMT_OY_2X | 295K| | 1123 (1)| 00:00:14 | KEY | KEY |db file scattered read(6)(15.38%) || |db file sequential read(5)(12.82%) || |gc cr multi block request(1)(2.56%) || |CPU(2)(5.13%) || |gc current block 2-way(1)(2.56%) |
两行db file scattered read分外扎眼,为什么INDEX RANGE SCAN和TABLE ACCESS BY LOCAL INDEX ROWID会有db file scattered read期待事件?这是physical reads prefetch warmup的个性,意思是当实例重启或者db cache显著增大的状况下,Oracle在读取一些块的时候,”顺便”把左近的块也读到db cache中,起到预热的作用,尽可能的应用db cache,缩小后续的物理IO,该个性并不会影响一个运行稳固的零碎。
通过v$sysstat能够查看实例启动以来physical reads prefetch的相干统计:
SQL> select name,value from v$sysstat where name like '%prefetch%'; NAME VALUE---------------------------------------------------------------- ----------prefetch clients - keep 0prefetch clients - recycle 0prefetch clients - default 0prefetch clients - 2k 0prefetch clients - 4k 0prefetch clients - 8k 0prefetch clients - 16k 0prefetch clients - 32k 0physical reads cache prefetch 7817physical reads prefetch warmup 1466prefetched blocks aged out before use 0prefetch warmup blocks aged out before use 0prefetch warmup blocks flushed out before use 0index crx upgrade (prefetch) 0
该个性由参数_db_cache_pre_warm管制,不晓得是什么版本的个性,最多只能占据db cache的10%,由_db_block_prefetch_quota管制。
SQL> @sp warm -- show parameter by sp -- show hidden parameter by spold 3: where x.indx=y.indx and ksppinm like '_%&p%'new 3: where x.indx=y.indx and ksppinm like '_%warm%' NAME VALUE DESC---------------------------------------- ---------- ------------------------------------------------------------------------------------------_db_cache_pre_warm TRUE Buffer Cache Pre-Warm Enabled : hidden parameter SQL> @sp prefetch_quota -- show parameter by sp -- show hidden parameter by spold 3: where x.indx=y.indx and ksppinm like '_%&p%'new 3: where x.indx=y.indx and ksppinm like '_%prefetch_quota%' NAME VALUE DESC---------------------------------------- ---------- ------------------------------------------------------------------------------------------_db_block_prefetch_quota 10 Prefetch quota as a percent of cache size
每次预读取的block下限由参数_db_file_noncontig_mblock_read_count管制:
SQL> @sp noncontig -- show parameter by sp -- show hidden parameter by spold 3: where x.indx=y.indx and ksppinm like '_%&p%'new 3: where x.indx=y.indx and ksppinm like '_%noncontig%' NAME VALUE DESC---------------------------------------- ---------- ------------------------------------------------------------------------------------------_db_file_noncontig_mblock_read_count 11 number of noncontiguous db blocks to be prefetched
禁用该性能有三种形式,不过该性能是一个十分好的性能,不倡议敞开:
- _db_file_noncontig_mblock_read_count批改为0或1;
- _db_cache_pre_warm改为false;
- _db_block_prefetch_quota改为0。
对于索引还有更粗疏的参数管制,默认为开启,_index_prefetch_factor为索引预取因子,默认为100,如果变小则更偏向于index prefetching。
SQL> @sp index_block_pre -- show parameter by sp -- show hidden parameter by spold 3: where x.indx=y.indx and ksppinm like '_%&p%'new 3: where x.indx=y.indx and ksppinm like '_%index_block_pre%' NAME VALUE DESC---------------------------------------- ---------- ------------------------------------------------------------------------------------------_disable_index_block_prefetching FALSE disable index block prefetching SQL> @sp index_pre -- show parameter by sp -- show hidden parameter by spold 3: where x.indx=y.indx and ksppinm like '_%&p%'new 3: where x.indx=y.indx and ksppinm like '_%index_pre%' NAME VALUE DESC---------------------------------------- ---------- ------------------------------------------------------------------------------------------_index_prefetch_factor 100 index prefetching factor
墨天轮原文链接:https://www.modb.pro/db/17496...(复制链接至浏览器或点击文末浏览原文查看)
对于作者
李翔宇,云和恩墨西区交付技术顾问,长期服务挪动运营商行业客户,相熟Oracle性能优化,故障诊断,非凡复原。