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

正文內(nèi)容

oracle執(zhí)行計(jì)劃和sql調(diào)優(yōu)-展示頁(yè)

2025-02-15 18:35本頁(yè)面
  

【正文】 distinct 子句 ? Union 或 minus 操作 ? 優(yōu)化器調(diào)用 sort merge join 操作 ? 創(chuàng)建索引 SQL優(yōu)化器 ? 概念:是一個(gè)為所有的 sql語(yǔ)句創(chuàng)建執(zhí)行計(jì)劃的工具。通過(guò)首先存取特定的表,即將該表作為驅(qū)動(dòng)表,這樣可以先應(yīng)用某些限制條件,從而得到一個(gè)較小的 row source,使連接的效率較高,這也就是我們常說(shuō)的要先執(zhí)行限制條件的原因。在可選擇性高的列上進(jìn)行查詢(xún)時(shí),返回的數(shù)據(jù)就較少,比較適合使用索引查詢(xún)。 可選擇性 (selectivity) ? 比較一下列中唯一鍵的數(shù)量和表中的行數(shù),就可以判斷該列的可選擇性。當(dāng)我們進(jìn)行查詢(xún)時(shí)可以使用” where col1 = ? ”,也可以使用” where col1 = ? and col2 = ?”,這樣的限制條件都會(huì)使用索引,但是” where col2 = ? ”查詢(xún)就不會(huì)使用該索引。 組合索引 (concatenated index) ? 由多個(gè)列構(gòu)成的索引,如 create index idx_emp on emp(col1, col2, col3, ……),則我們稱(chēng) idx_emp索引為組合索引。在我們從驅(qū)動(dòng)表中得到具體一行的數(shù)據(jù)后,在該表中尋找符合連接條件的行。在執(zhí)行計(jì)劃中,應(yīng)該為靠上的那個(gè) row source,后面會(huì)給出具體說(shuō)明。注意此處雖然翻譯為驅(qū)動(dòng)表,但實(shí)際上翻譯為驅(qū)動(dòng)行源 (driving row source)更為確切。這個(gè)概念用于嵌套與 HASH連接中。 Row Source and Predicate ? Row Source(行源 ):用在查詢(xún)中,由上一操作返回的符合條件的行的集合,即可以是表的全部行數(shù)據(jù)的集合;也可以是表的部分行數(shù)據(jù)的集合;也可以為對(duì)上 2個(gè) row source進(jìn)行連接操作 (如 join連接 )后得到的行數(shù)據(jù)集合。當(dāng)然 DML語(yǔ)句也都可能引起 recursive SQL。當(dāng)需要的數(shù)據(jù)字典信息沒(méi)有在共享內(nèi)存中時(shí),經(jīng)常會(huì)發(fā)生 Recursive calls,這些 Recursive calls會(huì)將數(shù)據(jù)字典信息從硬盤(pán)讀入內(nèi)存中。 Recursive SQL概念 ? 有時(shí)為了執(zhí)行用戶(hù)發(fā)出的一個(gè) sql語(yǔ)句, Oracle必須執(zhí)行一些額外的語(yǔ)句,我們將這些額外的語(yǔ)句稱(chēng)之為‘ recursive calls’或‘ recursive SQL statements’。不過(guò)你可以像使用其它列那樣使用它,但是不能刪除改列,也不能對(duì)該列的值進(jìn)行修改、插入。ORACLE 執(zhí)行計(jì)劃和 SQL調(diào)優(yōu) 內(nèi)容安排 ? 第一部分:背景知識(shí) ? 第二部分: SQL調(diào)優(yōu) ? 第三部分:工具介紹 第一部分 背景知識(shí) 執(zhí)行計(jì)劃的相關(guān)概念 Rowid的概念 ? rowid是一個(gè)偽列,既然是偽列,那么這個(gè)列就不是用戶(hù)定義,而是系統(tǒng)自己給加上的。對(duì)每個(gè)表都有一個(gè) rowid的偽列,但是表中并不物理存儲(chǔ) ROWID列的值。一旦一行數(shù)據(jù)插入數(shù)據(jù)庫(kù),則 rowid在該行的生命周期內(nèi)是唯一的,即即使該行產(chǎn)生行遷移,行的 rowid也不會(huì)改變。如當(dāng)一個(gè) DDL語(yǔ)句發(fā)出后, ORACLE總是隱含的發(fā)出一些 recursive SQL語(yǔ)句,來(lái)修改數(shù)據(jù)字典信息,以便用戶(hù)可以成功的執(zhí)行該 DDL語(yǔ)句。用戶(hù)不比關(guān)心這些 recursive SQL語(yǔ)句的執(zhí)行情況,在需要的時(shí)候, ORACLE會(huì)自動(dòng)的在內(nèi)部執(zhí)行這些語(yǔ)句。簡(jiǎn)單的說(shuō),我們可以將觸發(fā)器視為 recursive SQL。 ? Predicate(謂詞 ):一個(gè)查詢(xún)中的 WHERE限制條件 Driving Table ? Driving Table(驅(qū)動(dòng)表 ):該表又稱(chēng)為外層表 (OUTER TABLE)。如果該row source返回較多的行數(shù)據(jù),則對(duì)所有的后續(xù)操作有負(fù)面影響。一般說(shuō)來(lái),是應(yīng)用查詢(xún)的限制條件后,返回較少行源的表作為驅(qū)動(dòng)表,所以如果一個(gè)大表在 WHERE條件有有限制條件 (如等值限制 ),則該大表作為驅(qū)動(dòng)表也是合適的,所以并不是只有較小的表可以作為驅(qū)動(dòng)表,正確說(shuō)法應(yīng)該為應(yīng)用查詢(xún)的限制條件后,返回較少行源的表作為驅(qū)動(dòng)表。 Probed Table ? Probed Table(被探查表 ):該表又稱(chēng)為內(nèi)層表 (INNER TABLE)。所以該表應(yīng)當(dāng)為大表 (實(shí)際上應(yīng)該為返回較大 row source的表 )且相應(yīng)的列上應(yīng)該有索引。在組合索引中有一個(gè)重要的概念:引導(dǎo)列 (leading column),在上面的例子中, col1列為引導(dǎo)列。所以限制條件中包含先導(dǎo)列時(shí),該限制條件才會(huì)使用該組合索引。如果該列的”唯一鍵的數(shù)量 /表中的行數(shù)”的比值越接近 1,則該列的可選擇性越高,該列就越適合創(chuàng)建索引,同樣索引的可選擇性也越高。 oracle訪問(wèn)數(shù)據(jù)的存取方法 ? 全表掃描( Full Table Scans, FTS) ? 通過(guò) ROWID的表存取 (Table Access by ROWID ) ? 索引掃描( Index Scan) 索引掃描( Index Scan) ? 索引唯一掃描 (index unique scan) ? 索引范圍掃描 (index range scan) ? 索引全掃描 (index full scan) ? 索引快速掃描 (index fast full scan) 表訪問(wèn)方式 ? 全表掃描:讀取表中每一條記錄,順序讀?。? ? 散列獲?。菏褂梅?hào)散列主鍵來(lái)為帶有匹配散列值表中的記錄創(chuàng)建 ROWID ; ? ROW
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1