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

正文內(nèi)容

oracle培訓(xùn)sql性能優(yōu)化-資料下載頁(yè)

2025-02-05 07:30本頁(yè)面
  

【正文】 :此方法時(shí),并不執(zhí)行 sql語(yǔ)句,所以只會(huì)列出執(zhí)行計(jì)劃,不會(huì)列出統(tǒng)計(jì)信息,并且執(zhí)行計(jì)劃只存在 plan_table中。所以該語(yǔ)句比起 setautotracetraceonly可用性要差。需要用下面的命令格式化輸出,所以這種方式我用的不多: 如何產(chǎn)生執(zhí)行計(jì)劃 setlinesize150setpagesize500colPLANLINEfora120SELECTEXECORDEXEC_ORDER,PLANLINEFROM(SELECTPLANLINE,ROWNUMEXECORD,ID,RIDFROM(SELECTPLANLINE,ID,RID,LEVFROM(SELECTlpad(39。39。,2*(LEVEL),rpad(39。39。,80,39。39。))||OPERATION||39。39。||OperationDECODE(OPTIONS,NULL,39。39。,39。(39。||OPTIONS||39。)39。)||OptionsDECODE(OBJECT_OWNER,null,39。39。,39。OF39。39。39。||OBJECT_OWNER||39。.39。)||OwnerDECODE(OBJECT_NAME,null,39。39。,OBJECT_NAME||39。39。39。39。)||ObjectNameDECODE(OBJECT_TYPE,null,39。39。,39。(39。||OBJECT_TYPE||39。)39。)||ObjectTypeDECODE(ID,0,39。OPT_MODE:39。)||OptimizerDECODE(OPTIMIZER,null,39。39。,39。ANALYZED39。,39。39。,OPTIMIZER)||DECODE(NVL(COST,0)+NVL(CARDINALITY,0)+NVL(BYTES,0),0,null,39。(COST=39。||TO_CHAR(COST)||39。,CARD=39。||TO_CHAR(CARDINALITY)||39。,BYTES=39。||TO_CHAR(BYTES)||39。)39。)PLANLINE,ID,LEVELLEV,(SELECTMAX(ID)FROMPLAN_TABLEPL2CONNECTBYPRIORID=PARENT_IDANDPRIORSTATEMENT_ID=STATEMENT_IDSTARTWITHID=ANDSTATEMENT_ID=)RIDFROMPLAN_TABLEPL1CONNECTBYPRIORID=PARENT_IDANDPRIORSTATEMENT_ID=STATEMENT_IDSTARTWITHID=0ANDSTATEMENT_ID=39。aaa39。)ORDERBYRID,LEV))ORDERBYID。2).用 explainplan命令 以上 2種方法只能為在本會(huì)話中正在運(yùn)行的語(yǔ)句產(chǎn)生執(zhí)行計(jì)劃,即我們需要已經(jīng)知道了哪條語(yǔ)句運(yùn)行的效率很差,我們是有目的只對(duì)這條 SQL語(yǔ)句去優(yōu)化。在很多情況下,我們只會(huì)聽(tīng)一個(gè)客戶抱怨說(shuō)現(xiàn)在系統(tǒng)運(yùn)行很慢,而我們不知道是哪個(gè) SQL引起的。此時(shí)有許多現(xiàn)成的語(yǔ)句可以找出耗費(fèi)資源比較多的語(yǔ)句,如: SELECTADDRESS,substr(SQL_TEXT,1,20)Text,buffer_gets,executions,buffer_gets/executionsAVGFROMv$sqlareaWHEREexecutions0ANDbuffer_gets100000ORDERBY5。從而對(duì)找出的語(yǔ)句進(jìn)行進(jìn)一步優(yōu)化。還可以為一個(gè)正在運(yùn)行的會(huì)話中運(yùn)行的所有 SQL語(yǔ)句生成執(zhí)行計(jì)劃,這需要對(duì)該會(huì)話進(jìn)行跟蹤,產(chǎn)生 trace文件,然后對(duì)該文件用 tkprof程序格式化一下,這種得到執(zhí)行計(jì)劃的方式很有用,因?yàn)樗渌~外信息,如 SQL語(yǔ)句執(zhí)行的每個(gè)階段 (如 Parse、 Execute、 Fetch)分別耗費(fèi)的各個(gè)資源情況 (如 CPU、 DISK、 elapsed等 )。 如何產(chǎn)生執(zhí)行計(jì)劃 n 通過(guò)執(zhí)行計(jì)劃如何判斷驅(qū)動(dòng)表: 在執(zhí)行計(jì)劃中,需要知道哪個(gè)操作是先執(zhí)行的,哪個(gè)操作是后執(zhí)行的,這對(duì)于判斷哪個(gè)表為驅(qū)動(dòng)表有用處。判斷之前,如果對(duì)表的訪問(wèn)是通過(guò) rowid,且該 rowid的值是從索引掃描中來(lái)得,則將該索引掃描先從執(zhí)行計(jì)劃中暫時(shí)去掉。然后在執(zhí)行計(jì)劃剩下的部分中,判斷執(zhí)行順序的指導(dǎo)原則就是: 最右、最上的操作先執(zhí)行 。具體解釋如下: 得到去除妨礙判斷的索引掃描后的執(zhí)行計(jì)劃: 168。 ExecutionPlan168。 168。 0 SELECTSTATEMENTOptimizer=CHOOSE168。 1 0 MERGEJOIN168。 2 1 SORT(JOIN)168。 3 2 NESTEDLOOPS168。 4 3 TABLEACCESS(FULL)OF39。B39。168。 5 3 TABLEACCESS(BYINDEXROWID)OF39。A39。168。 7 1 SORT(JOIN)168。 8 7 TABLEACCESS(FULL)OF39。C39。如何分析執(zhí)行計(jì)劃 n 如何使用 hints: Hints只應(yīng)用在它們所在 sql語(yǔ)句塊 (statementblock,由 select、 update、delete關(guān)鍵字標(biāo)識(shí) )上,對(duì)其它 SQL語(yǔ)句或語(yǔ)句的其它部分沒(méi)有影響。如:對(duì)于使用 union操作的 2個(gè) sql語(yǔ)句,如果只在一個(gè) sql語(yǔ)句上有 hints,則該hints不會(huì)影響另一個(gè) sql語(yǔ)句。 可以使用注釋 (ment)來(lái)為一個(gè)語(yǔ)句添加 hints,一個(gè)語(yǔ)句塊只能有一個(gè)注釋,而且注釋只能放在 SELECT,UPDATE,orDELETE關(guān)鍵字的后面。使用 hints的語(yǔ)法: {DELETE|INSERT|SELECT|UPDATE}/*+hint[text][hint[text]]...*/or{DELETE|INSERT|SELECT|UPDATE}+hint[text][hint[text]]...n 注解: 168。 1)DELETE、 INSERT、 SELECT和 UPDATE是標(biāo)識(shí)一個(gè)語(yǔ)句塊開(kāi)始的關(guān)鍵字,包含提示的注釋只能出現(xiàn)在這些關(guān)鍵字的后面,否則提示無(wú)效。 168。 2)“+”號(hào)表示注釋是一個(gè) hints,加號(hào)必須立即跟在 ”/*”后面,中間不能有空格。 168。 3)hint是下面介紹的具體提示之一,如果包含多個(gè)提示,則每個(gè)提示之間需要用一個(gè)或多個(gè)空格隔開(kāi)。 168。 4)text是其它說(shuō)明 hint的注釋性文本 168。 如果你沒(méi)有正確的指定 hints, Oracle將忽略該 hints,并且不會(huì)給出任何錯(cuò)誤。 如何干預(yù)執(zhí)行計(jì)劃 n 指示存儲(chǔ)路徑的 hints: 1. FULL/*+FULL(table)*/指定該表使用全表掃描 1. ROWID/*+ROWID(table)*/指定對(duì)該表使用 rowid存取方法,該提示用的較少 1. INDEX/*+INDEX(table[index])*/使用該表上指定的索引對(duì)表進(jìn)行索引掃描 1. INDEX_FFS/*+INDEX_FFS(table[index])*/使用快速全 索引 掃描 1. NO_INDEX/*+NO_INDEX(table[index])*/168。 不使用該表上指定的索引進(jìn)行存取,仍然可以使用其它的索引進(jìn)行索引掃描 SELECT/*+FULL(e)*/employee_id,last_nameFROMemployeeseWHERElast_nameLIKE:b1。SELECT/*+ROWID(employees)*/*FROMemployeesWHERErowid39。AAAAtkAABAAAFNTAAA39。ANDemployee_id=155。SELECT/*+INDEX(Asex_index)usesex_indexbecausetherearefewmalepatients*/,,1. FROMpatientsAWHERE=’m’。SELECT/*+NO_INDEX(employeesemp_empid)*/employee_idFROMemployees1. WHEREemployee_id200。如何干預(yù)執(zhí)行計(jì)劃 n 指示連接類型的 hints: 168。 USE_NL/*+USE_NL(table[,table,...])*/使用嵌套連接 168。 USE_MERGE/*+USE_MERGE(table[,table,...])*/使用排序 合并連接 168。 USE_HASH/*+USE_HASH(table[,table,...])*/使用 HASH連接 如何干預(yù)執(zhí)行計(jì)劃 ?注意:如果表有 alias(別名 ),則上面的 table指的是表的別名,而不是真實(shí)的表名。演講完畢,謝謝觀看!
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1