国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

關(guān)于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ù)索引中的前導(dǎo)列(索引到的第一列)的唯一值的數(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)能對查詢應(yīng)用Index Skip Scans至少要有幾個條件:1 優(yōu)化器認為是合適的.2 索引中的前導(dǎo)列的唯一值的數(shù)量能滿足一定的條件.3 優(yōu)化器要知道前導(dǎo)列的值分布(通過分析/統(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感謝參加討論的各位高手.
主站蜘蛛池模板: 日本国产最新一区二区三区 | 国产精品亚洲欧美日韩久久 | 黄色毛片免费 | aaaa级毛片 | 国产爽爽视频 | 美女啪啪网站又黄又免费 | 国产高清一区二区三区免费视频 | 欧美日韩亚洲成色二本道三区 | 亚洲二区在线观看 | 日韩视频网 | 亚洲精品一区二区三区www | 美一级片 | 美女扒开双腿让男人爽透视频 | 国产成人影院一区二区 | 国产成人精品无缓存在线播放 | www中文字幕在线观看 | 久久精品国产99久久香蕉 | 国产欧美精品一区二区三区四区 | 毛片免费观看网址 | 欧美成人亚洲综合精品欧美激情 | 亚洲 欧美 成人 | 欧美精品高清 | 啪啪一级| 日韩一区二区久久久久久 | 400部大量精品情侣网站 | 99精品高清视频一区二区 | 国产一级毛片在线 | 欧美一级成人影院免费的 | 亚洲网站一区 | 久久精品国产免费中文 | 亚洲日韩中文字幕天堂不卡 | 成人免费毛片一区二区三区 | 国内精品久久久久久久亚洲 | 欧美成人 一区二区三区 | 日韩视频欧美视频 | 亚洲一区国产 | 欧美日本亚洲国产一区二区 | 久久99国产乱子伦精品免费 | 亚洲国产天堂久久九九九 | 免费国产午夜高清在线视频 | 一个人看的日本www的免费视频 |