成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > Oracle Index 的三個問題

Oracle Index 的三個問題

熱門標簽:南通防封外呼系統(tǒng)運營商 地圖標注原件 語音電話機器人營銷方案 廣州市400電話辦理 修改高德地圖標注 淮安自動外呼系統(tǒng)開發(fā) 宜賓外呼系統(tǒng)廠家 語音電話機器人缺點 百變地圖標注
正在看的ORACLE教程是:Oracle Index 的三個問題。

 索引( Index )是常見的數(shù)據(jù)庫對象,它的設(shè)置好壞、使用是否得當(dāng),極大地影響數(shù)據(jù)庫應(yīng)用程序和Database 的性能。雖然有許多資料講索引的用法, DBA 和 Developer 們也經(jīng)常與它打交道,但筆者發(fā)現(xiàn),還是有不少的人對它存在誤解,因此針對使用中的常見問題,講三個問題。此文所有示例所用的數(shù)據(jù)庫是 Oracle 8.1.7 OPS on HP N series ,示例全部是真實數(shù)據(jù),讀者不需要注意具體的數(shù)據(jù)大小,而應(yīng)注意在使用不同的方法后,數(shù)據(jù)的比較。本文所講基本都是陳詞濫調(diào),但是筆者試圖通過實際的例子,來真正讓您明白事情的關(guān)鍵。 

  第一講、索引并非總是最佳選擇 

  如果發(fā)現(xiàn)Oracle 在有索引的情況下,沒有使用索引,這并不是Oracle 的優(yōu)化器出錯。在有些情況下,Oracle 確實會選擇全表掃描(Full Table Scan),而非索引掃描(Index Scan)。這些情況通常有: 

  1. 表未做statistics, 或者 statistics 陳舊,導(dǎo)致 Oracle 判斷失誤。 

  2. 根據(jù)該表擁有的記錄數(shù)和數(shù)據(jù)塊數(shù),實際上全表掃描要比索引掃描更快。 

  對第1種情況,最常見的例子,是以下這句sql 語句: 


  在未作statistics 之前,它使用全表掃描,需要讀取6000多個數(shù)據(jù)塊(一個數(shù)據(jù)塊是8k), 做了statistics 之后,使用的是 INDEX (FAST FULL SCAN) ,只需要讀取450個數(shù)據(jù)塊。但是,statistics 做得不好,也會導(dǎo)致Oracle 不使用索引。 

  第2種情況就要復(fù)雜得多。一般概念上都認為索引比表快,比較難以理解什么情況下全表掃描要比索引掃描快。為了講清楚這個問題,這里先介紹一下Oracle 在評估使用索引的代價(cost)時兩個重要的數(shù)據(jù):CF(Clustering factor) 和 FF(Filtering factor). 

  CF: 所謂 CF, 通俗地講,就是每讀入一個索引塊,要對應(yīng)讀入多少個數(shù)據(jù)塊。 

  FF: 所謂 FF, 就是該sql 語句所選擇的結(jié)果集,占總的數(shù)據(jù)量的百分比。 

  大約的計算公式是:FF * (CF + 索引塊個數(shù)) ,由此估計出,一個查詢, 如果使用某個索引,會需要讀入的數(shù)據(jù)塊塊數(shù)。需要讀入的數(shù)據(jù)塊越多,則 cost 越大,Oracle 也就越可能不選擇使用 index. (全表掃描需要讀入的數(shù)據(jù)塊數(shù)等于該表的實際數(shù)據(jù)塊數(shù)) 

  其核心就是, CF 可能會比實際的數(shù)據(jù)塊數(shù)量大。CF 受到索引中數(shù)據(jù)的排列方式影響,通常在索引剛建立時,索引中的記錄與表中的記錄有良好的對應(yīng)關(guān)系,CF 都很??;在表經(jīng)過大量的插入、修改后,這種對應(yīng)關(guān)系越來越亂,CF 也越來越大。此時需要 DBA 重新建立或者組織該索引。 

  如果某個sql 語句以前一直使用某索引,較長時間后不再使用,一種可能就是 CF 已經(jīng)變得太大,需要重新整理該索引了。 

  FF 則是Oracle 根據(jù) statistics 所做的估計。比如, mytables 表有32萬行,其主鍵myid的最小值是1,最大值是409654,考慮以下sql 語句: 


  這兩句看似差不多的 sql 語句,對Oracle 而言,卻有巨大的差別。因為前者的 FF 是100%, 而后者的 FF 可能只有 1%。如果它的CF 大于實際的數(shù)據(jù)塊數(shù),則Oracle 可能會選擇完全不同的優(yōu)化方式。而實際上,在我們的數(shù)據(jù)庫上的測試驗證了我們的預(yù)測. 以下是在HP 上執(zhí)行時它們的 explain plan: 

  第一句: 


  已選擇325917行。 


  第二句: 


  顯而易見,第1句沒有使用索引,第2句使用了主鍵索引pk_mytables. FF的巨大影響由此可見一斑。由此想到,我們在寫sql 語句時,如果預(yù)先估計一下 FF, 你就幾乎可以預(yù)見到 Oracle 會否使用索引。 

[NextPage]

第二講、索引也有好壞

  索引有 B tree 索引, Bitmap 索引, Reverse b tree 索引, 等。最常用的是 B tree 索引。 B 的全稱是Balanced , 其意義是,從 tree 的 root 到任何一個leaf ,要經(jīng)過同樣多的 level. 索引可以只有一個字段(Single column), 也可以有多個字段(Composite),最多32個字段,8I 還支持 Function-based index. 許多developer 都傾向于使用單列B 樹索引。 

  所謂索引的好壞是指: 

  1,索引不是越多越好。特別是大量從來或者幾乎不用的索引,對系統(tǒng)只有損害。OLTP系統(tǒng)每表超過5個索引即會降低性能,而且在一個sql 中, Oracle 從不能使用超過 5個索引。 

  2,很多時候,單列索引不如復(fù)合索引有效率。 

  3,用于多表連結(jié)的字段,加上索引會很有作用。 

  那么,在什么情況下單列索引不如復(fù)合索引有效率呢?有一種情況是顯而易見的,那就是,當(dāng)sql 語句所查詢的列,全部都出現(xiàn)在復(fù)合索引中時,此時由于 Oracle 只需要查詢索引塊即可獲得所有數(shù)據(jù),當(dāng)然比使用多個單列索引要快得多。(此時,這種優(yōu)化方式被稱為 Index only access path) 

  除此之外呢?我們還是來看一個例子吧: 

  在 HP(Oracle 8.1.7) 上執(zhí)行以下語句: 


  一開始,我們有兩個單列索引:I_mytabs1(coid), I_mytabs2(issuedate), 下面是執(zhí)行情況: 


  可以看到,它讀取了7000個數(shù)據(jù)塊來獲得所查詢的 6000多行。 

  現(xiàn)在,去掉這兩個單列索引,增加一個復(fù)合索引I_mytabs_test ( coid, issuedate), 重新執(zhí)行,結(jié)果如下: 


  可以看到,這次只讀取了300個數(shù)據(jù)塊。 

  7000塊對300塊,這就是在這個例子中,單列索引與復(fù)合索引的代價之比。這個例子提示我們, 在許多情況下,單列索引不如復(fù)合索引有效率。 

  可以說,在索引的設(shè)置問題上,其實有許多工作可以做。正確地設(shè)置索引,需要對應(yīng)用進行總體的分析。 
1 3 

[NextPage]

第三講、索引再好,不用也是白搭 

  拋開前面所說的,假

[1] [2] 下一頁

正在看的ORACLE教程是:Oracle Index 的三個問題。設(shè)你設(shè)置了一個非常好的索引,任何傻瓜都知道應(yīng)該使用它,但是Oracle 卻偏偏不用,那么,需要做的第一件事情,是審視你的 sql 語句。 

  Oracle 要使用一個索引,有一些最基本的條件: 

  1, where 子句中的這個字段,必須是復(fù)合索引的第一個字段; 

  2, where 子句中的這個字段,不應(yīng)該參與任何形式的計算 

  具體來講,假設(shè)一個索引是按 f1, f2, f3的次序建立的,現(xiàn)在有一個 sql 語句, where 子句是 f2 = : var2, 則因為 f2 不是索引的第1個字段,無法使用該索引。 

  第2個問題,則在我們之中非常嚴重。以下是從 實際系統(tǒng)上面抓到的幾個例子: 


  以上的例子能很容易地進行改進。請注意這樣的語句每天都在我們的系統(tǒng)中運行,消耗我們有限的cpu 和 內(nèi)存資源。 

  除了1,2這兩個我們必須牢記于心的原則外,還應(yīng)盡量熟悉各種操作符對 Oracle 是否使用索引的影響。這里我只講哪些操作或者操作符會顯式(explicitly)地阻止 Oracle 使用索引。以下是一些基本規(guī)則: 

  1, 如果 f1 和 f2 是同一個表的兩個字段,則 f1>f2, f1>=f2, f1 

  2, f1 is null, f1 is not null, f1 not in, f1 !=, f1 like ‘%pattern%'; 

  3, Not exist 

  4, 某些情況下,f1 in 也會不用索引; 

  對于這些操作,別無辦法,只有盡量避免。比如,如果發(fā)現(xiàn)你的 sql 中的 in 操作沒有使用索引,也許可以將 in 操作改成 比較操作 + union all。筆者在實踐中發(fā)現(xiàn)很多時候這很有效。 

  但是,Oracle 是否真正使用索引,使用索引是否真正有效,還是必須進行實地的測驗。合理的做法是,對所寫的復(fù)雜的 sql, 在將它寫入應(yīng)用程序之前,先在產(chǎn)品數(shù)據(jù)庫上做一次explain . explain 會獲得Oracle 對該 sql 的解析(plan),可以明確地看到 Oracle 是如何優(yōu)化該 sql 的。 

  如果經(jīng)常做 explain, 就會發(fā)現(xiàn),喜愛寫復(fù)雜的 sql 并不是個好習(xí)慣,因為過分復(fù)雜的sql 其解析計劃往往不盡如人意。事實上,將復(fù)雜的 sql 拆開,有時候會極大地提高效率,因為能獲得很好的優(yōu)化。當(dāng)然這已經(jīng)是題外話了。 

 

上一頁     

上一頁  [1] [2] 

標簽:南平 嘉峪關(guān) 通化 池州 聊城 襄陽 南平 股票投資

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Oracle Index 的三個問題》,本文關(guān)鍵詞  Oracle,Index,的,三個,問題,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle Index 的三個問題》相關(guān)的同類信息!
  • 本頁收集關(guān)于Oracle Index 的三個問題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产精品99导航| 国产香蕉97碰碰久久人人| 精品99久久久久成人网站免费| 鲁大师私人影院在线观看| 免费a级在线播放| 欧美一级做一级爱a做片性| 北岛玲精品视频在线观看| 国产男女裸体做爰爽爽| 婷婷夜色潮精品综合在线| 77777少妇光屁股久久一区| 亚洲精品成人悠悠色影视| ...av二区三区久久精品| 精品伦精品一区二区三区视频密桃| 99reav| 最近日韩中文字幕中文| 欧美日韩国产影片| 免费国产高清| 91精品国产网站| 欧美一区视频| 在线 丝袜 欧美 日韩 制服| 免费a在线观看| 日韩欧美一区二区三区| 欧州一区二区三区| 亚洲午夜成aⅴ人片| 久久久综合精品| 韩国一区二区在线播放| 国产美女高潮久久白浆| 国产网红在线| 亚洲韩国精品一区| 午夜精品一区二区三区在线视| 91在线高清视频| 亚洲第一黄色| 亚洲国产精品久久卡一| 91日韩在线专区| 国产精品15p| 日本一区二区在线不卡| 免费 成 人 黄 色| 日本一区二区视频在线播放| 日本欧美视频| 欧美18av| 欧美日在线观看| 97精品人妻一区二区三区在线| 一本色道**综合亚洲精品蜜桃冫| 在线观看污污网站| 国语对白在线视频| 一区二区三区免费在线看| 亚洲国产精品免费在线观看| 最好看的2019年中文视频| eeuss影院www在线观看手机| 国产亚洲欧美色| 精品亚洲va在线va天堂资源站| 免费看成人片| 亚洲国产另类久久久精品极度| 亚洲国产精品va| 精品福利网址导航| 性疯狂做受xxxx高清视频| 一级黄色片网址| 在线观看一区二区三区三州| 欧美二区在线视频| 日本a在线观看| 少妇大叫太大太粗太爽了a片小说| 美女扒开尿口让男人操亚洲视频网站| 成人网欧美在线视频| 国产麻豆精品theporn| 欧美日韩精品一区二区三区视频| 久久成人国产精品| 国产精品加勒比| 亚洲欧美另类小说| 日韩黄在线观看| 久久99热精品| 久久99精品久久久野外观看| 日本午夜一区二区| 九九热这里只有精品免费看| www日韩在线| 小小影院久久| av理论在线观看| 亚洲精品国产高清久久伦理二区| 中文字幕在线免费视频| 国产乱码一区二区三区| 国产69精品久久久久久久| 91视频91自| 国产一区二区三区精品在线| 日韩网站在线免费观看| 99精品在免费线中文字幕网站一区| 尤蜜粉嫩av国产一区二区三区| 日韩avxxx| 国产在线播放一区| 久久九九影视网| 激情久久一区| 国产精品乱人伦一区二区| 99re热这里只有精品免费视频| 国产66精品| 96sao精品免费视频观看| 日本少妇裸体做爰| 黄色一级片免费播放| 玖玖在线精品| 欧美成人综合色| 在线播放国产精品| 欧亚洲嫩模精品一区三区| 久久噜噜亚洲综合| 永久免费av片在线观看全网站| 国产手机免费视频| 69xxx免费视频| 69av成年福利视频| 久久久精品国产一区二区三区| 欧美午夜精品一区二区三区| 国产精品高清乱码在线观看| 国产日产亚洲系列最新| 麻豆网在线观看| 免费看ww视频网站入口| 亚洲一区二区三区乱码aⅴ蜜桃女| 久久91精品久久久久久秒播| 久草免费资源| 中文在线第一页| 国产手机精品在线| 欧美 日韩 综合| 成人高潮片免费视频| 欧美日韩中文字幕在线播放| 男女h黄动漫啪啪无遮挡软件| 日p在线观看| 久久久精品三级| 久久精品国产69国产精品亚洲| 欧美一区二区啪啪| 亚洲欧美偷拍另类a∨色屁股| 99精品国产高清一区二区麻豆| 亚洲天堂第一页| 日本韩国一区二区| 懂色av中文字幕一区二区三区| 欧美精品18videosex性欧美| 好爽好深好紧好大| 97福利电影| 亚洲成年人电影| 美女被内谢流白浆高视频| 国产免费黄色录像| 在线免费观看av影视天堂| 日韩欧美中文| 黄色欧美网站| 国产精品偷伦视频免费观看国产| www.亚洲天堂.com| 亚洲91在线| 国产人成网在线播放va免费| 一区二区三区电影网| 色综合天天综合网天天狠天天| 国产精品一区二区x88av| 欧日韩精品视频| eeuss影院www| 希岛爱理一区二区三区av高清| 国模吧一区二区| 国产原创在线观看| 成人精品免费在线观看| 图片婷婷一区| 欧美日本高清视频| 中日韩精品视频在线观看| 亚洲欧美视频一区二区三区| 黄污视频在线观看| 久久综合国产精品| 日本在线视频www鲁啊鲁| 精品国产乱码久久久久久久| 国产亚洲激情在线| 久久久久国产精品免费网站| 91国内视频| 日韩欧美亚洲视频| 久久精品国产亚洲av麻豆色欲| 精品一区国产| 国产日本欧美一区二区三区在线| 亚洲国产精品自拍视频| 精品91在线| а√最新版在线天堂| 国产精品9191| 欧美日韩另类图片| 免费无码国产v片在线观看| zzzwww在线看片免费| 一区二区三区国产豹纹内裤在线| 天天草天天草| 欧美午夜激情视频| 国产精品区一区二区三在线播放| 欧美一区二区三区在线看| 免费在线成人av| 免费xxxxx网站中文字幕| 国产成人精品免费视频| 三级av免费看| 毛葺葺老太做受视频| 拍拍拍999自拍偷| 亚洲精品中文字幕有码专区| 一区二区三区四区五区视频在线观看| 91在线观看污| 欧美成人中文| 影音先锋国产资源| 综合激情网五月| 国产一区二区精品免费| 久久av少妇| 99热在这里有精品免费| 精品少妇一区二区| 成人免费在线观看入口| 欧美a级片免费看| 黄色网在线免费看| 日韩乱码人妻无码中文字幕久久| 国产黄色美女视频| 色一情一乱一伦一视频免费看| 在线视频日本亚洲性| 欧美在线一区二区三区| 亚洲电影第三页| 波多野结衣av在线播放| 国产精品色噜噜| 在线视频国产区| 日韩激情综合网| www.av在线播放| 亚欧激情乱码久久久久久久久| caoporn国产精品免费视频| 久久久中精品2020中文| 免费看一级一片| 精品国产免费久久久久久尖叫| ●精品国产综合乱码久久久久| 免费福利在线| 亚洲熟妇无码av在线播放| 中国av在线播放| 青青草娱乐视频| 成人免费观看视频大全| 91麻豆精品91久久久久久清纯| 中文字幕有码在线| 又黄又免费的网站| caoporn视频在线| 午夜精品福利在线视频| 在线观看视频亚洲| 久久久久久久久久国产| 欧美国产1区2区| 老司机99精品99| 秋霞在线一区| 欧美一级手机免费观看片| 亚洲青青青在线视频| 日韩人妻精品一区二区三区| 精品999日本久久久影院| 91精品国产一区| 欧美图片第一页| 精品无码m3u8在线观看| 在线观看xxxx| 日韩电影中文 亚洲精品乱码| mm131丰满少妇人体欣赏图| 日韩中文字幕视频| 亚洲女性喷水在线观看一区| 日韩精品有码在线观看| 综合图区亚洲白拍在线| 亚洲欧美天堂网| 国内一卡2卡三卡四卡在线| 人人影院免费大片| 色94色欧美sute亚洲13| 五月天亚洲婷婷| 国产精品久久久久久影院8一贰佰| 国产免费高清一区| 国产真实乱人偷精品视频| 精品日韩美女的视频高清| 亚洲黄色小说视频| 波多野结衣三级在线| 日本精品久久中文字幕佐佐木| 色狠狠一区二区| 日本一区二区免费高清| 日韩日本欧美亚洲| 日韩成人伦理电影在线观看| 成人久久久精品乱码一区二区三区| 久久久国产精品人人片| 九色精品国产蝌蚪| 日本精品在线视频| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 国产裸体无遮挡| 亚洲中文字幕无码av| 一本色道久久综合亚洲91| 亚洲影院在线观看| 国产成人精品无码播放| 国产乱码在线观看| 国产在线视视频有精品| 中文字幕在线观看的网站| 亚洲 日韩 国产第一| 麻豆国产va免费精品高清在线| 成人午夜高潮视频| 日韩电影大全网站| 成人一区二区| av不卡中文字幕| 国产精品手机在线观看| 日韩午夜激情av| 国产主播福利在线| 日本精品免费| 麻豆成人免费视频| 亚洲v片在线观看| 精品亚洲国产成人av制服丝袜| 自拍亚洲欧美老师丝袜| 久久日文中文字幕乱码| 中文字幕在线观看一区二区三区| 国产99精品国产| 欧美xxxx性xxxxx高清视频| 高清国语自产拍免费一区二区三区| 久久国产视频一区| 国产精品合集一区二区| 日韩在线观看免| 亚洲啪啪综合av一区二区三区| 色视频一区二区三区| 日韩欧美在线观看| www.色国产| 精品国产精品| 69ww免费视频播放器| 亚洲最大的黄色网| 99久久99热这里只有精品| 欧美成人做性视频在线播放| 动漫精品一区二区| 中文字幕+乱码+中文乱码91| 天天干免费视频| 97在线视频一区| 91麻豆精品激情在线观看最新| 日韩精品卡通动漫网站| 欧美无人高清视频在线观看| 亚州av一区| 国产xxxxx在线观看| 成人在线观看一区| 亚洲一级特黄| 欧美一区二区福利在线| 欧美bbbbxxxx| 欧美视频一区二区三区在线观看| 91麻豆精品激情在线观看最新| 亚洲国产日韩欧美在线99| 亚洲播播91| 国产午夜在线| 国产午夜精品视频一区二区三区| 久久亚洲春色中文字幕| 一区二区电影在线观看| 日本一二三区在线视频| 国内精品免费**视频| 国户精品久久久久久久久久久不卡| 天天操夜夜操夜夜操| 依依成人综合视频|