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

正文內(nèi)容

oracle執(zhí)行計劃和sql調(diào)優(yōu)知識概述(完整版)

2025-03-05 18:49上一頁面

下一頁面
  

【正文】 ( hash join)速度比嵌套循環(huán)連接( nested loop)快; ? 在兩個表非常大的情況下,經(jīng)常使用嵌套循環(huán)連接( nested loop); ? 生成大型結(jié)果集的查詢、不使用 where子句的大表連接或表中無可用索引的查詢,經(jīng)常使用排序合并連接( srot merge); ? 對于多個小的維表和一個大的事實表的情況下(數(shù)據(jù)倉庫),經(jīng)常使用星型連接 (star); 不同表連接方法的相對速度 星型連接 嵌套循環(huán)連接 散列連接 排序合并連接 連接速度 連接表中記錄的數(shù)目 少 多 慢 快 調(diào)整 SQL子查詢 子查詢類型 ? 標準子查詢: 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)部不會引用外部的數(shù)據(jù)表; …from table1 a where … (select …from table2 b …);內(nèi)部子查詢只執(zhí)行一次; 子查詢調(diào)整原則 ? 只要可能的話,盡可能的避免使用子查詢,而用標準的連接操作來代替,這樣可以使用提示來更改執(zhí)行計劃; ? 先考慮子查詢的合法性,再考慮進行改寫; ? 使用一個關(guān)聯(lián)子查詢時, in與 exists子句的子查詢的執(zhí)行計劃基本相同; ? 在外部查詢返回相對較少的記錄時,關(guān)聯(lián)子查詢比非關(guān)聯(lián)子查詢執(zhí)行得更快; 子查詢調(diào)整原則(續(xù)) ? 在內(nèi)部子查詢只有少量的記錄時,非關(guān)聯(lián)子查詢比關(guān)聯(lián)子查詢執(zhí)行得更快; ? 關(guān)聯(lián)子查詢使用 in子句是多余的;而非關(guān)聯(lián)子查詢使用 exists子句是不恰當?shù)?。依賴于表和索引的統(tǒng)計資料;/*+ first_rows */ 提示之二:表連接提示 ? Use_hash:對指定的表執(zhí)行一個散列連接;如果有一個表較小,通??煊谇短籽h(huán)連接;在兩個表非常大的情況下,散列連接經(jīng)常與并行查詢連接結(jié)合使用; select /*+ use_hash(a,b) parallel(a,4) parallel(b,4) */。 ? 查看執(zhí)行方案: select decode (id,0,’ ’ ,lpad(‘ ’ ,2*(level1)||level||’ .’ ||position)||’ ’ ||operation||’ ’ ||options||’ ’ ||object_name||’ ’ ||object_type||’ ‘ ||decode(id,0,’ cost= ‘ ||postion) query_plan From plan_table connect by prior_id=parent_id and statement_id=upper(‘ select1’ ) start with id=0 and statement_id=upper(‘ select1’ )。 ? Hash_aj, Merge_aj:在 not in子查詢的字段中不存在空值的時候,根據(jù)連接的類型,考慮使用這兩個提示之一,可以在很大程度上提高not in子查詢的性能; /*+ hash_aj */ 提示之四:索引提示 ? Index:優(yōu)化器將使用指定的索引;如果沒有指定索引,優(yōu)化器將使用表中最佳的索引;/*+ index(table,index) */ ? Index_join:要求優(yōu)化器使用索引連接作為訪問路徑; ? And_equal:如果表擁有非唯一的單獨字段索引,而且期望使用多個索引服務(wù)于該查詢,那么使用該提示將合并這些索引;至少兩個索引名,但不能超過五個; /*+ and_equal(table,index1,index2,…) */ 索引提示(續(xù)) ? Index_asc:要求在范圍掃描中使用升序索引;優(yōu)化器的默認行為,不常用; ? No_index:強制優(yōu)化器忽略索引得存在。 改寫后: Select distinct /* + rule */ ename From emp,bad_credit Where = and bad_credit_datesysdate365。 ? 在 SQL中添加提示 /*+ rule/all_rows/first_rows */ ? 設(shè)置 choose模式時候,將根據(jù)是否存在表或索引的統(tǒng)計資料來決定選擇 RBO或 CBO; 第二部分 SQL 調(diào)整 SQL 調(diào)整的目標 ? 去掉不必要的大表全表掃描; ? 緩存小表全表掃描; ? 盡量使用主機變量代替直接量,減少 SQL語句的解析時間; ? 優(yōu)化索引的使用; ? 優(yōu)化表連接方法; ? 優(yōu)化子查詢; 常見可能導(dǎo)致全表掃描的操作 ? 使用 null條件的查詢: where xxx is null。通過首先存取特定的表,即將該表作為驅(qū)動表,這樣可以先應(yīng)用某些限制條件,從而得到一個較小的 row source,使連接的效率較高,這也就是我們常說的要先執(zhí)行限制條件的原因。 組合索引 (concatenated index) ? 由多個列構(gòu)成的索引,如 create index idx_emp on emp(col1, col2, col3, ……),則我們稱 idx_emp索引為組合索引。這個概念用于嵌套與 HA
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1