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

正文內(nèi)容

sql優(yōu)化策略ppt課件-展示頁

2025-05-14 18:25本頁面
  

【正文】 錄在滾回段,可恢復(fù),速度慢; ? truncate刪除整個表的數(shù)據(jù),不可恢復(fù),速度快 (直接重置 HWM) 減少對表的查詢 在含有子查詢的 SQL語句中 ,要特別注意減少對表的查詢 . 例如 : 低效 SELECT TAB_NAME FROM TABLES WHERE TAB_NAME = ( SELECT TAB_NAME FROM TAB_COLUMNS WHERE VERSION = 604) AND DB_VER= ( SELECT DB_VER FROM TAB_COLUMNS WHERE VERSION = 604) 高效 SELECT TAB_NAME FROM TABLES WHERE (TAB_NAME,DB_VER) = ( SELECT TAB_NAME,DB_VER) FROM TAB_COLUMNS WHERE VERSION = 604) Update 多個 Column 例子 : 低效 : UPDATE EMP SET EMP_CAT = (SELECT MAX(CATEGORY) FROM EMP_CATEGORIES), SAL_RANGE = (SELECT MAX(SAL_RANGE) FROM EMP_CATEGORIES) WHERE EMP_DEPT = 0020。 ? 用 EXISTS替代 IN、用 NOT EXISTS替代 NOT IN – 使用 Not in 或者 in時,子句 內(nèi)部會先執(zhí)行一個全表遍歷,效率較低。 ? 多表連接時,盡量 使用表的別名 (Alias) – 當(dāng)在 SQL語句中連接多個表時,請使用表的別名并把別名前綴于每個 Column上。 ? SELECT子句中避免使用 39。 ? 2)通過 ROWID的表存?。?TableAccessbyROWID或 rowidlookup) ? 3)索引掃描( IndexScan或 indexlookup) – 一次 I/O只能讀取一個數(shù)據(jù)塊 ? 表之間的連接 – 表之間的連接順序?qū)τ诓樵兊男视蟹浅4蟮挠绊?,一般以較小的 rowsource來驅(qū)動較大的rowsource. – 嵌套循環(huán) (NestedLoops, NL) – 哈希連接 (HashJoin, HJ) SQL優(yōu)化原則 ? 選擇最有效率的表名順序 (只在基于規(guī)則的優(yōu)化器中有效 ) – ORACLE的解析器按照從右到左的順序處理 FROM子句中的表名, FROM子句中寫在最后的表 (基礎(chǔ) 表 )將被最先處理,在 FROM子句中包含多個表的情況下, 盡量 選擇記錄條數(shù)最少的表作為基礎(chǔ)表。(數(shù)據(jù)庫塊是最小的 IO單位,即使只讀一行數(shù)據(jù),也會將整塊的數(shù)據(jù)讀到內(nèi)存中) ? 1)全表掃描( FullTableScans, FTS) – Oracle會順序分配給表的每個數(shù)據(jù)塊,直到最高水平線( HWM)。 ? 訪問路徑 (方法 ) (accesspath) – 優(yōu)化器在形成執(zhí)行計劃時需要做的一個重要選擇是如何從數(shù)據(jù)庫查詢出需要的數(shù)據(jù)。比如當(dāng)我們發(fā)送一個 DDL請求時, oracle會隱含的執(zhí)行 RecursiveSql來修改相關(guān)的數(shù)據(jù)字典信息 ? Row Source(行源 ) – 相當(dāng)于 SQL操作的中間結(jié)果,比如 上一操作返回的符合條件的行的集合 (可以是表的全部行數(shù)據(jù)或者部分行數(shù)據(jù)) ? Driving Table(驅(qū)動表 ) – 即前面說的基礎(chǔ)表,我們應(yīng)該盡量使用在 應(yīng)用查詢的限制條件后,返回較少行源的表作為驅(qū)動表 。 ? Rowid的概念 – Rowid是訪問 表中的給定的行
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1