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

正文內(nèi)容

oracle語句優(yōu)化30個(gè)規(guī)則詳解-免費(fèi)閱讀

2025-05-10 08:14 上一頁面

下一頁面
  

【正文】 EMP39?! ∨e例:  DEPTNO上有一個(gè)非唯一性索引,EMP_CAT也有一個(gè)非唯一性索引?! ∪绻嗤碇袃蓚€(gè)想同等級(jí)的索引將被引用, WHERE子句中最先被引用的索引將有最高的優(yōu)先級(jí)。由于LODGING表的LODING列上有一個(gè)索引, 而且WORKER表中沒有相比較的索引, WORKER表將被作為查詢中的基礎(chǔ)表?! HERE子句中, 如果索引列所對(duì)應(yīng)的值的第一個(gè)字符由通配符(WILDCARD)開始, 索引將不被采用。  下面SQL只需要INDEX UNIQUE SCAN 操作。 索引需要空間來存儲(chǔ),也需要定期維護(hù),每當(dāng)有記錄在表中增減或索引列被修改時(shí), 索引本身也會(huì)被修改。 當(dāng)ORACLE找出執(zhí)行查詢和Update語句的最佳路徑時(shí), ORACLE優(yōu)化器將使用索引。PK_DEPT39。EMP39。生成的trace文件是不可讀的,所以要用TKPROF工具對(duì)其進(jìn)行轉(zhuǎn)換,TKPROF有許多執(zhí)行參數(shù)?! ?譯者按: 在RBO的情況下,前者的執(zhí)行路徑包括FILTER,后者使用NESTED LOOP)  21. 用EXISTS替換DISTINCT  當(dāng)提交一個(gè)包含一對(duì)多表信息(比如部門表和雇員表)的查詢時(shí),避免在SELECT子句中使用DISTINCT. 一般可以考慮用EXIST替換  例如:  低效:   SELECTDISTINCTDEPT_NO,DEPT_NAMEFROMDEPTD,EMPE=  高效:  SELECTDEPT_NO,DEPT_NAMEFROMDEPTDWHEREEXISTS(SELECT‘X’FROMEMPE=)。RETURN(NVL(ENAME,’?’))。CLOSEC1?! 「咝В骸? UPDATEEMPSET(EMP_CAT,SAL_RANGE)=(SELECTMAX(CATEGORY),MAX(SAL_RANGE)FROMEMP_CATEGORIES)WHEREEMP_DEPT=0020。FETCHC1INTOENAME。BEGINOPENC1?! ±纾骸 〉托В骸 ELECTREGION,AVG(LOG_SIZE)FROMLOCATIONGROUPBYREGIONHAVINGREGIONREGION!=‘SYDNEY’ANDREGION!=‘PERTH’  高效:   SELECTREGION,AVG(LOG_SIZE)FROMLOCATIONWHEREREGIONREGION!=‘SYDNEY’ANDREGION!=‘PERTH’GROUPBYREGION  15. 減少對(duì)表的查詢  在含有子查詢的SQL語句中,要特別注意減少對(duì)表的查詢。 如果你沒有COMMIT事務(wù),ORACLE會(huì)將數(shù)據(jù)恢復(fù)到刪除之前的狀態(tài)(準(zhǔn)確地說是恢復(fù)到執(zhí)行刪除命令之前的狀況)  而當(dāng)運(yùn)用TRUNCATE時(shí), 回滾段不再存放任何可被恢復(fù)的信息。  你可以用DECODE函數(shù)高效地得到相同結(jié)果  SELECTCOUNT(DECODE(DEPT_NO,0020,’X’,NULL))D0020_COUNT,COUNT(DECODE(DEPT_NO,0030,’X’,NULL))D0030_COUNT,SUM(DECODE(DEPT_NO,0020,SAL,NULL))D0020_SAL,SUM(DECODE(DEPT_NO,0030,SAL,NULL))D0030_SALFROMEMPWHEREENAMELIKE‘SMITH%’。OPENC1(291)?! ?. 減少訪問數(shù)據(jù)庫的次數(shù)  當(dāng)執(zhí)行每條SQL語句時(shí), ORACLE在內(nèi)部執(zhí)行了許多工作: 解析SQL語句, 估算索引的利用率, 綁定變量 , 讀數(shù)據(jù)塊等等?! ±纾?EMP表描述了LOCATION表和CATEGORY表的交集。selectpin,namefrompeoplewherepin=:?! 『拖铝忻恳粋€(gè)都不同   SELECT*fromEMP?! ?. 共享SQL語句  為了不重復(fù)解析相同的SQL語句,在第一次解析之后, ORACLE將SQL語句存放在內(nèi)存中?! 榱耸褂没诔杀镜膬?yōu)化器(CBO, CostBased Optimizer) , 你必須經(jīng)常運(yùn)行analyze 命令,以增加數(shù)據(jù)庫中的對(duì)象統(tǒng)計(jì)信息(object statistics)的準(zhǔn)確性。 ORACLE采用一次讀入多個(gè)數(shù)據(jù)塊(database block)的方式優(yōu)化全表掃描?! ∵@里需要注明的是,ORACLE對(duì)兩者采取的是一種嚴(yán)格匹配,要達(dá)成共享,SQL語句必須完全相同(包括空格,換行等)。 不能 每個(gè)用戶都有一個(gè)private synonym sal_limit , 它們是不同的對(duì)象  select count(*0 from work_city where sdesc like 39。當(dāng)ORACLE處理多個(gè)表時(shí),會(huì)運(yùn)用排序及合并的方式連接它們。  6. SELECT子句中避免使用 ‘ * ’  當(dāng)你想在SELECT子句中列出所有的COLUMN時(shí),使用動(dòng)態(tài)SQL列引用 ‘*’ 是一個(gè)方便的方法。方法2 (次低效)  DECLARECURSORC1(E_NONUMBER)ISSELECTEMP_NAME,SALARY,GRADEFROMEMPWHEREEMP_NO=E_NO。  注意:  在SQL*Plus , SQL*Forms和Pro*C中重新設(shè)置ARRAYSIZE參數(shù), 可以增加每次數(shù)據(jù)庫訪問的檢索數(shù)據(jù)量 ,建議值為200.  8. 使用DECODE函數(shù)來減少處理時(shí)間  使用DECODE函數(shù)可以避免重復(fù)掃描相同記錄或重復(fù)連接相同的表?! ∩厦娴?個(gè)查詢可以被合并成一個(gè):   ,FROMCATC,DPTD,EMPE,DUALXWHERENVL(‘X’,)=NVL(‘X’,(+))ANDNVL(‘X’,)=NVL(‘X’,(+))ANDNVL(‘X’,)=NVL(‘X’,(+))(+)=1234(+)=10(+)=‘RD’。 例如 COUNT(EMPNO)  (譯者按: 在CSDN論壇中,曾經(jīng)對(duì)此有過相當(dāng)熱烈的討論, 作者的觀點(diǎn)并不十分準(zhǔn)確,通過實(shí)際的測(cè)試,上述三種方法并沒有顯著的性能差別)  14. 用Where子句替換HAVING子句  避免使用HAVING子句, HAVING 只會(huì)在檢索出所有記錄之后才對(duì)結(jié)果集進(jìn)行過濾。  通過調(diào)用下面的函數(shù)可以提高效率。FUNCTIONLOOKUP_EMP(EMPINNUMBER)RETURNVARCHAR2ASENAMEVARCHAR2(3
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1