freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

oracle數(shù)據(jù)庫優(yōu)化培訓(xùn)-資料下載頁

2025-02-09 13:49本頁面
  

【正文】 例:表 table1共有 100萬條記錄,一個(gè) number型字段 A并建索引。 A=0 30萬條 A=1 30萬條 A=2 39萬條 A=3 1萬條 低效率: SELECT * FROM TABLE1 WHERE A 2。 高效率: SELECT * FROM TABLE1 WHERE A = 3。 執(zhí)行 A2與 A=3的效果就有很大的區(qū)別了,因?yàn)?A2時(shí) ORACLE會(huì)先找出為 2的記錄索引再進(jìn)行比較,而 A=3時(shí) ORACLE則直接找到 =3的記錄索引。 說明: 在使用 (大于)操作時(shí),應(yīng)盡量的考慮用 =(大于等于)來代替 ◎ Copyright new doone All right reserved 查詢優(yōu)化實(shí)例及分析 ——ORACLE為什么不使用索引 ? 檢查被索引的列或組合索引的首列是否出現(xiàn)在 WHERE條件中,這是“執(zhí)行計(jì)劃”能用到相關(guān)索引的必要條件。 ? 看采用了哪種類型的連接方式。 ORACLE的共有 Sort Merge Join( SMJ)、 Hash Join( HJ)和 Nested Loop Join( NL)。 在兩張表連接,且內(nèi)表的目標(biāo)列上建有索引時(shí),只有 Nested Loop才能有效地利用到該索引。 SMJ即使相關(guān)列上建有索引,最多只能因索引的存在,避免數(shù)據(jù)排序過程。 HJ由于須做 HASH運(yùn)算,索引的存在對(duì)數(shù)據(jù)查詢速度幾乎沒有影響。 ? 看連接順序是否允許使用相關(guān)索引。假設(shè)表 STAFF_INFO的 DEPT_NODE列上有索引,表DEPT_TREE的列 DEPT_NODE上無索引, WHERE語句有 = 。 在做 NL連接時(shí), STAFF_INFO做為外表,先被訪問,由于連接機(jī)制原因,外表的數(shù)據(jù)訪問方式是全表掃描, 是用不上,最多在其上做索引全掃描或索引快速全掃描。 ? 是否用到系統(tǒng)數(shù)據(jù)字典表或視圖。由于系統(tǒng)數(shù)據(jù)字典表都未被分析過,可能導(dǎo)致極差的 “執(zhí)行計(jì)劃 ”。但是不要擅自對(duì)數(shù)據(jù)字典表做分析,否則可能導(dǎo)致死鎖,或系統(tǒng)性能下降。 ? 索引列是否函數(shù)的參數(shù)。如是,索引在查詢時(shí)用不上。 ? 是否存在潛在的數(shù)據(jù)類型轉(zhuǎn)換。如將字符型數(shù)據(jù)與數(shù)值型數(shù)據(jù)比較, ORACLE會(huì)自動(dòng)將字符型用 to_number()函數(shù)進(jìn)行轉(zhuǎn)換,從而導(dǎo)致上一種現(xiàn)象的發(fā)生。 ? 是否為表和相關(guān)的索引搜集足夠的統(tǒng)計(jì)數(shù)據(jù)。對(duì)數(shù)據(jù)經(jīng)常有增、刪、改的表最好定期對(duì)表和索引進(jìn)行分析,可用 SQL語句 “analyze table xxxx pute statistics for all indexes?!?。ORACLE掌握了充分反映實(shí)際的統(tǒng)計(jì)數(shù)據(jù),才有可能做出正確的選擇。 ? 索引列的選擇性不高。 ? 索引列值是否可為空( NULL)。如果索引列值可以是空值,在 SQL語句中那些要返回NULL值的操作,將不會(huì)用到索引,如 COUNT( *),而是用全表掃描。這是因?yàn)樗饕写鎯?chǔ)值不能為全空。 ? 看是否有用到并行查詢( PQO)。并行查詢將不會(huì)用到索引。 ◎ Copyright new doone All right reserved 查詢優(yōu)化實(shí)例及分析 ——hint的使用 ? 使用注釋 (ment)來為一個(gè)語句添加 hint,一個(gè)語句塊只能有一個(gè)注釋,而且注釋只能放在 SELECT, UPDATE, or DELETE關(guān)鍵字的后面。 使用 hint的語法: {DELETE|INSERT|SELECT|UPDATE} /*+ hint [text] [hint[text]]... */ or {DELETE|INSERT|SELECT|UPDATE} + hint [text] [hint[text]]... 注解: 1) DELETE、 INSERT、 SELECT和 UPDATE是標(biāo)識(shí)一個(gè)語句塊開始的關(guān)鍵字,包含提示的注釋只能出現(xiàn)在這些關(guān)鍵字的后面,否則提示無效。 2) “+”號(hào)表示該注釋是一個(gè) hint,該加號(hào)必須立即跟在 “/*”的后面,中間不能有空格。 3) hint是介紹的具體提示之一,如果包含多個(gè)提示,則每個(gè)提示之間需要用一個(gè)或多個(gè)空格隔開。 4) text 是其它說明 hint的注釋性文本 注意: 沒有正確的指定 hint, Oracle將忽略該 hint,并且不會(huì)給出任何錯(cuò)誤。在語句中表用別名的話 ,那么 hint中必須使用表的別名 ,否則 hint將不會(huì)生效。 ◎ Copyright new doone All right reserved 查詢優(yōu)化實(shí)例及分析 ——hint的關(guān)鍵詞 ? 連接有關(guān) ( 1) use_nl(t1,t2):表示對(duì)表 t t2關(guān)聯(lián)時(shí)采用嵌套循環(huán)連接。 ( 2) use_merge(t1,t2):表示對(duì)表 t t2關(guān)聯(lián)時(shí)采用排序合并連接。 ( 3) use_hash(t1,t2):表示對(duì)表 t t2關(guān)聯(lián)時(shí)采用哈希連接。 ( 4) leading(t):表示在進(jìn)行表連接時(shí),選擇 t為驅(qū)動(dòng)表。 ( 5) ordred:要求優(yōu)化器按 from列出的表順序進(jìn)行連接。 ? 索引有關(guān) ( 1) index(tab,idx):表示對(duì) tab表強(qiáng)制指定引用 idx索引。 ( 2) no_index(tab,idx):表示對(duì) tab表強(qiáng)制指定不引用 idx索引。 ? 優(yōu)化模式有關(guān) ( 1) rule:表示該語句進(jìn)行按 rule訪問( RBO) ( 2) first rows: ( 3) all rows:( RBO) ◎ Copyright new doone All right reserved Oracle數(shù)據(jù)庫優(yōu)化培訓(xùn) 為了企業(yè)的明天 ,我們一起努力 ! ◎ Copyright new doone All right reserved 演講完畢,謝謝觀看!
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1