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

正文內(nèi)容

oracle執(zhí)行計(jì)劃和sql調(diào)優(yōu)知識(shí)概述(文件)

2025-02-21 18:49 上一頁面

下一頁面
 

【正文】 null子句刪除多余的記錄;或者盡量替換成not exists子查詢,因?yàn)樗鼘⒄{(diào)用相關(guān)聯(lián)的子查詢; ? 半連接子查詢可以重新書寫成標(biāo)準(zhǔn)等連接,用 select distinct子句刪除重復(fù)的記錄; 表連接調(diào)整原則(續(xù)) ? 如果驅(qū)動(dòng)表較小,可以完全裝入hash_area_size內(nèi)存中,使用散列連接( hash join)速度比嵌套循環(huán)連接( nested loop)快; ? 在兩個(gè)表非常大的情況下,經(jīng)常使用嵌套循環(huán)連接( nested loop); ? 生成大型結(jié)果集的查詢、不使用 where子句的大表連接或表中無可用索引的查詢,經(jīng)常使用排序合并連接( srot merge); ? 對于多個(gè)小的維表和一個(gè)大的事實(shí)表的情況下(數(shù)據(jù)倉庫),經(jīng)常使用星型連接 (star); 不同表連接方法的相對速度 星型連接 嵌套循環(huán)連接 散列連接 排序合并連接 連接速度 連接表中記錄的數(shù)目 少 多 慢 快 調(diào)整 SQL子查詢 子查詢類型 ? 標(biāo)準(zhǔn)子查詢: in 和 exists; ? 反連接子查詢: not in 和 not exists; ? 關(guān)聯(lián)子查詢:指在子查詢內(nèi)部引用外部數(shù)據(jù)表; …from table1 a where … (select…from table2 b Where = …);對于外部數(shù)據(jù)集的每一條記錄,都將重新執(zhí)行一次內(nèi)部子查詢; ? 非關(guān)聯(lián)子查詢:指在子查詢內(nèi)部不會(huì)引用外部的數(shù)據(jù)表; …from table1 a where … (select …from table2 b …);內(nèi)部子查詢只執(zhí)行一次; 子查詢調(diào)整原則 ? 只要可能的話,盡可能的避免使用子查詢,而用標(biāo)準(zhǔn)的連接操作來代替,這樣可以使用提示來更改執(zhí)行計(jì)劃; ? 先考慮子查詢的合法性,再考慮進(jìn)行改寫; ? 使用一個(gè)關(guān)聯(lián)子查詢時(shí), in與 exists子句的子查詢的執(zhí)行計(jì)劃基本相同; ? 在外部查詢返回相對較少的記錄時(shí),關(guān)聯(lián)子查詢比非關(guān)聯(lián)子查詢執(zhí)行得更快; 子查詢調(diào)整原則(續(xù)) ? 在內(nèi)部子查詢只有少量的記錄時(shí),非關(guān)聯(lián)子查詢比關(guān)聯(lián)子查詢執(zhí)行得更快; ? 關(guān)聯(lián)子查詢使用 in子句是多余的;而非關(guān)聯(lián)子查詢使用 exists子句是不恰當(dāng)?shù)?。在懷?CBO使用了非優(yōu)化的執(zhí)行計(jì)劃時(shí),使用 rule提示;它將忽略表和索引的統(tǒng)計(jì)資料;/*+ rule */ ? All_rows:基于成本的優(yōu)化方法。依賴于表和索引的統(tǒng)計(jì)資料;/*+ first_rows */ 提示之二:表連接提示 ? Use_hash:對指定的表執(zhí)行一個(gè)散列連接;如果有一個(gè)表較小,通??煊谇短籽h(huán)連接;在兩個(gè)表非常大的情況下,散列連接經(jīng)常與并行查詢連接結(jié)合使用; select /*+ use_hash(a,b) parallel(a,4) parallel(b,4) */。如果沒有指定索引作參數(shù),優(yōu)化器將自動(dòng)選擇最佳的位圖索引; /*+ table(bitmap1,bitmap2) */ ? Index_ffs:強(qiáng)制使用快速完全索引掃描;如果大表中不存在被查詢字段的高層索引主鍵,比如需要選擇復(fù)合索引中第二個(gè)字段的值時(shí),那么快速完全索引掃描總是比全表掃描速度更快;/*+ index_ffs(table,index) */ 索引提示(續(xù)) ? Use_concat:要求為查詢中所有 or條件使用 union all執(zhí)行計(jì)劃;一般用在 where子句中存在大量的 or條件; 提示之五:并行提示 ? Parallel:要求表查詢以并行模式執(zhí)行;一般用在多個(gè) cpu的服務(wù)器上,與 full提示一起使用; /*+ full(table) parallel(table,8) */ ? Noparallel:不希望對全表掃描使用并行機(jī)制,如對小表執(zhí)行的全表掃描時(shí),使用該提示; 提示之六:表訪問提示 ? Full:要求避開索引,調(diào)用全表掃描;讀取表中大量的數(shù)據(jù)塊時(shí);與 parallel一起使用; ? Hash:選擇散列掃描來訪問指定的簇表; /*+ hash */ ? Cluster:選擇簇掃描來訪問指定的簇表; /*+ cluster */ ? Nocache:指定為 keep池分配的表數(shù)據(jù)塊放置在 default池的中點(diǎn);很少使用; 表訪問提示(續(xù)) ? Ordered:要求表按照 from子句指定的順序進(jìn)行連接;對連接多于 4個(gè)表的查詢非常有用,可以節(jié)省 sql解析的時(shí)間; /*+ ordered */ ? Ordered_predicates:用來指定 where子句中布爾條件評估的順序; ? Push_subq:要求查詢數(shù)據(jù)塊中的所有子查詢在執(zhí)行計(jì)劃中盡可能早的被執(zhí)行;用在子查詢相對來說不很昂貴,并且在很大程度上降低返回到記錄數(shù);如果子查詢使用的是排序合并連接或調(diào)用遠(yuǎn)程表,提示將不起作用; 調(diào)整索引 常見的索引類型 ? 普通索引:最常見到的索引, create index idx1 on table1 (f1)。 ? 查看執(zhí)行方案: select decode (id,0,’ ’ ,lpad(‘ ’ ,2*(level1)||level||’ .’ ||position)||’ ’ ||operation||’ ’ ||options||’ ’ ||object_name||’ ’ ||object_type||’ ‘ ||decode(id,0,’ cost= ‘ ||postion) query_pla
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1