Oracle還是比較常用的,于是我研究了一下Oracle可選擇性,本文比較一下列中唯一鍵的數(shù)量和表中的行數(shù),就可以判斷該列的Oracle可選擇性,在這里拿出來和大家分享一下,希望對大家有用。Wic中華會計(jì)網(wǎng)(www.91jiaoyu.com)—會計(jì)職稱-注冊會計(jì)師-注冊稅務(wù)師-會計(jì)培訓(xùn)
如果該列的“唯一鍵的數(shù)量/表中的行數(shù)”的比值越接近1,則該列的Oracle可選擇性越高,該列就越適合創(chuàng)建索引,同樣索引的Oracle可選擇性也越高。在Oracle可選擇性高的列上進(jìn)行查詢時(shí),返回的數(shù)據(jù)就較少,比較適合使用索引查詢。Wic中華會計(jì)網(wǎng)(www.91jiaoyu.com)—會計(jì)職稱-注冊會計(jì)師-注冊稅務(wù)師-會計(jì)培訓(xùn)
有了這些背景知識后就開始介紹執(zhí)行計(jì)劃。為了執(zhí)行語句,Oracle可能必須實(shí)現(xiàn)許多步驟。這些步驟中的每一步可能是從數(shù)據(jù)庫中物理檢索數(shù)據(jù)行,或者用某種方法準(zhǔn)備數(shù)據(jù)行,供發(fā)出語句的用戶使用。Wic中華會計(jì)網(wǎng)(www.91jiaoyu.com)—會計(jì)職稱-注冊會計(jì)師-注冊稅務(wù)師-會計(jì)培訓(xùn)
Oracle用來執(zhí)行語句的這些步驟的組合被稱之為執(zhí)行計(jì)劃。執(zhí)行計(jì)劃是SQL優(yōu)化中最為復(fù)雜也是最為關(guān)鍵的部分,只有知道了Oracle在內(nèi)部到底是如何執(zhí)行該SQL語句后,我們才能知道優(yōu)化器選擇的執(zhí)行計(jì)劃是否為最優(yōu)的。執(zhí)行計(jì)劃對于DBA來說,就象財(cái)務(wù)報(bào)表對于財(cái)務(wù)人員一樣重要。所以我們面臨的問題主要是:如何得到執(zhí)行計(jì)劃;如何分析執(zhí)行計(jì)劃,從而找出影響性能的主要問題。下面先從分析樹型執(zhí)行計(jì)劃開始介紹,然后介紹如何得到執(zhí)行計(jì)劃,再介紹如何分析執(zhí)行計(jì)劃。Wic中華會計(jì)網(wǎng)(www.91jiaoyu.com)—會計(jì)職稱-注冊會計(jì)師-注冊稅務(wù)師-會計(jì)培訓(xùn)
舉例:Wic中華會計(jì)網(wǎng)(www.91jiaoyu.com)—會計(jì)職稱-注冊會計(jì)師-注冊稅務(wù)師-會計(jì)培訓(xùn)
這個(gè)例子顯示關(guān)于下面SQL語句的執(zhí)行計(jì)劃。Wic中華會計(jì)網(wǎng)(www.91jiaoyu.com)—會計(jì)職稱-注冊會計(jì)師-注冊稅務(wù)師-會計(jì)培訓(xùn)
SELECT ename, job, sal, dnameWic中華會計(jì)網(wǎng)(www.91jiaoyu.com)—會計(jì)職稱-注冊會計(jì)師-注冊稅務(wù)師-會計(jì)培訓(xùn)
FROM emp, deptWic中華會計(jì)網(wǎng)(www.91jiaoyu.com)—會計(jì)職稱-注冊會計(jì)師-注冊稅務(wù)師-會計(jì)培訓(xùn)
WHERE emp.deptno = derpt.deptnoWic中華會計(jì)網(wǎng)(www.91jiaoyu.com)—會計(jì)職稱-注冊會計(jì)師-注冊稅務(wù)師-會計(jì)培訓(xùn)
AND NOT EXISTSWic中華會計(jì)網(wǎng)(www.91jiaoyu.com)—會計(jì)職稱-注冊會計(jì)師-注冊稅務(wù)師-會計(jì)培訓(xùn)
( SELECT * FROM salgrade WHERE emp.sal BETWEEN losal AND hisal );Wic中華會計(jì)網(wǎng)(www.91jiaoyu.com)—會計(jì)職稱-注冊會計(jì)師-注冊稅務(wù)師-會計(jì)培訓(xùn)
此語句查詢薪水不在任何建議薪水范圍內(nèi)的所有雇員的名字,工作,薪水和部門名。Wic中華會計(jì)網(wǎng)(www.91jiaoyu.com)—會計(jì)職稱-注冊會計(jì)師-注冊稅務(wù)師-會計(jì)培訓(xùn)