亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

關于Oracle 9i 跳躍式索引掃描(Index Skip Scan)的小測試

瀏覽:3日期:2023-11-18 15:12:02
在Oracle9i中我們知道能夠使用跳躍式索引掃描(Index Skip Scan).然而,能利用跳躍式索引掃描的情況其實是有些限制的.從Oracle的文檔中我們可以找到這樣的話:Index Skip Scans Index skip scans improve index scans by nonprefix columns. Often, scanning index blocks is faster than scanning table data blocks.Skip scanning lets a composite index be split logically into smaller subindexes. In skip scanning, the initial column of the composite index is not specified in the query. In other Words, it is skipped.The number of logical subindexes is determined by the number of distinct values in the initial column. Skip scanning is advantageous if there are few distinct values in the leading column of the compositeindex and many distinct values in the nonleading key of the index.也可以這樣說,優(yōu)化器根據(jù)索引中的前導列(索引到的第一列)的唯一值的數(shù)量決定是否使用Skip Scan.我們首先做個測試:SQL> CREATE TABLE test AS 2; SELECT ROWNUM a,ROWNUM-1 b ,ROWNUM-2 c,ROWNUM-3 d,ROWNUM-4 e 3; FROM all_objects 4; /SQL> SELECT DISTINCT COUNT (a) FROM test; COUNT(A)---------- 28251表已創(chuàng)建。SQL> SQL> CREATE INDEX test_idx ON test(a,b,c) 2; /索引已創(chuàng)建。SQL> ANALYZE TABLE test COMPUTE STATISTICS 2; FOR TABLE 3; FOR ALL INDEXES 4; FOR ALL INDEXED COLUMNS 5; /表已分析。SQL> SET autotrace traceonly eXPlainSQL> SELECT *; FROM test WHERE b = 99 2; /Execution Plan---------------------------------------------------------- 0;;;SELECT STATEMENT Optimizer=CHOOSE (Cost=36 Card=1 Bytes=26) 1;0;TABLE Access (FULL) OF 'TEST' (Cost=36 Card=1 Bytes=26)--可見這里CBO選擇了全表掃描.--我們接著做另一個測試:SQL> drop table test;表已丟棄。SQL> CREATE TABLE test 2; AS 3; SELECT DECODE(MOD(ROWNUM,2), 0, '1', '2' ) a, 4;ROWNUM-1 b, 5;ROWNUM-2 c, 6;ROWNUM-3 d, 7;ROWNUM-4 e 8;FROM all_objects 9; /表已創(chuàng)建。 SQL> set autotrace offSQL> select distinct a from test;A--12--A列只有兩個唯一值SQL> CREATE INDEX test_idx ON test(a,b,c) 2; /索引已創(chuàng)建。SQL> ANALYZE TABLE test COMPUTE STATISTICS 2; FOR TABLE 3; FOR ALL INDEXES 4; FOR ALL INDEXED COLUMNS 5; /表已分析。SQL> set autotrace traceonly explainSQL> SELECT *; FROM test WHERE b = 99 2; /Execution Plan---------------------------------------------------------- 0;;;SELECT STATEMENT Optimizer=CHOOSE (Cost=4 Card=1 Bytes=24) 1;0TABLE ACCESS (BY INDEX ROWID) OF 'TEST' (Cost=4 Card=1 Bytes=24) 2;1;;INDEX (SKIP SCAN) OF 'TEST_IDX' (NON-UNIQUE) (Cost=3 Card=1)Oracle的優(yōu)化器(這里指的是CBO)能對查詢應用Index Skip Scans至少要有幾個條件:1 優(yōu)化器認為是合適的.2 索引中的前導列的唯一值的數(shù)量能滿足一定的條件.3 優(yōu)化器要知道前導列的值分布(通過分析/統(tǒng)計表得到)4 合適的SQL語句......更多信息請參考:http://www.itpub.net/showthread.PHP?threadid=85948http://www.cnoug.org/bin/ut/topic_show.cgi?id=608&h=1&bpg=1&age=100http://www.itpub.net/showthread.php?s=&postid=985602#post985602Oracle9i Database Performance Tuning Guide and Reference Release 2 (9.2)Part Number A96533-02感謝參加討論的各位高手.
主站蜘蛛池模板: 日本三级成人午夜视频网 | 欧美一区二区三区激情视频 | 精品国产1区 | 欧美 自拍 丝袜 亚洲 | 久久精品免费视频观看 | 免费国产一级 | 黄色三级视频网站 | 国产精品福利午夜一级毛片 | 在线观看亚洲国产 | 欧美一区二区三区在线观看免费 | 国产91精品露脸国语对白 | aaaaaa毛片免费看 | 亚洲欧美精品中字久久99 | 国产成人一区二区三区在线视频 | 国产日韩一区二区三区在线观看 | 狠狠色丁香婷婷久久综合考虑 | 久久99国产精品久久99果冻传媒 | 黄色三级视频在线 | 国产aⅴ片| 成人午夜免费观看 | 亚洲成人手机在线观看 | 秘书高跟黑色丝袜国产91在线 | 久久久www成人免费精品 | a级片观看| 曰韩一级 | 成人做爰毛片免费视频 | 日韩高清欧美 | 国产精品综合一区二区三区 | 久久国产视频在线观看 | 日本三级视频在线 | 特级深夜a级毛片免费观看 特级生活片 | 欧美综合在线观看 | 欧美13一14周岁a在线播放 | 日韩天天摸天天澡天天爽视频 | 亚洲国产韩国一区二区 | 目韩一区二区三区系列片丶 | 久久精品一品道久久精品9 久久精品一区 | 男人的天堂久久精品激情 | 欧美在线bdsm调教一区 | 欧美在线一区二区三区精品 | 成人一区二区免费中文字幕 |