色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

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

瀏覽:2日期: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.也可以這樣說,優化器根據索引中的前導列(索引到的第一列)的唯一值的數量決定是否使用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表已創建。SQL> SQL> CREATE INDEX test_idx ON test(a,b,c) 2; /索引已創建。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; /表已創建。 SQL> set autotrace offSQL> select distinct a from test;A--12--A列只有兩個唯一值SQL> CREATE INDEX test_idx ON test(a,b,c) 2; /索引已創建。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的優化器(這里指的是CBO)能對查詢應用Index Skip Scans至少要有幾個條件:1 優化器認為是合適的.2 索引中的前導列的唯一值的數量能滿足一定的條件.3 優化器要知道前導列的值分布(通過分析/統計表得到)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感謝參加討論的各位高手.
標簽: Oracle 數據庫
主站蜘蛛池模板: 一级欧美日韩 | 91成人在线播放 | 精品无人区一区二区三区a 精品午夜国产在线观看不卡 | 欧美老妇免费做爰视频 | 欧美人成人亚洲专区中文字幕 | 亚洲一区二区三区首页 | 国产视频三级 | 国产男女视频在线观看 | 色视频在线观看免费 | 欧美亚洲国产精品久久久久 | 国产三级日本三级美三级 | 大陆精品自在线拍国语 | 欧美日韩精品一区二区三区不卡 | 草草影院私人免费入口 | 国产成人精品三级 | 国产一区二区三区视频 | 亚洲国产午夜精品理论片的软件 | 中文字幕亚洲一区二区v@在线 | 国产精品久久久精品视频 | 欧美高清日韩 | 国产91区 | 美国毛片亚洲社区在线观看 | 午夜一级影院 | 国产激情视频在线 | 国内精品久久久久久网站 | 久久国产精品无码网站 | 一级视频免费观看 | 在线精品国产一区二区 | 国产精品黄在线观看免费 | 美女张开腿让男人桶爽免 | 小毛片在线观看 | 欧美在线做爰高清视频 | 日本在线视频免费看 | 天天看有黄有色大片 | 香港三级88久久经典 | 免费观看欧美成人h | 日本免费a级片 | 久草免费公开视频 | 日韩精品视频在线 | 免费99视频有精品视频高清 | 欧美特黄一级 |