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

正文內(nèi)容

oracle培訓(xùn)sql性能優(yōu)化-wenkub

2023-02-24 07:30:56 本頁(yè)面
 

【正文】 嵌入的排序的深度會(huì)大大影響查詢的效率 .通常 ,每個(gè)查詢需要執(zhí)行一次排序 ,BY會(huì)觸發(fā)嵌入排序 (NESTEDDISTINCT需要一次排序操作 ,exists(select=df_money_filesuf,n在編寫(xiě) SQL語(yǔ)句時(shí)我們應(yīng)清楚優(yōu)化器根據(jù)何種原則來(lái)使用索引,這有助于寫(xiě)出高性能的 SQL語(yǔ)句。table... cache;●count(*)fromcount(key)fromtab數(shù)據(jù)重復(fù)量大的列不要建立二叉樹(shù)索引,可以采用位圖索引;組合索引的列順序盡量與查詢條件列順序保持一致;對(duì)于數(shù)據(jù)操作頻繁的表,索引需要定期重建,以減少失效的索引和碎片。應(yīng)盡量建立主鍵,盡量根據(jù)實(shí)際需要調(diào)整數(shù)據(jù)表的 PCTFREE和 PCTUSED參數(shù);大數(shù)據(jù)表刪除,用 truncate 在不影響業(yè)務(wù)的前提下減小事務(wù)的粒度;優(yōu)化概括課程 Oracle數(shù)據(jù)庫(kù) SQL語(yǔ)句優(yōu)化的總體策略。TABLE 減少服務(wù)器資源消耗(主要是磁盤(pán) IO);n 設(shè)計(jì)方面:168。update, 良好的硬件配置;正確合理的數(shù)據(jù)庫(kù)及中間件參數(shù)配置;合理的數(shù)據(jù)庫(kù)設(shè)計(jì);良好的 sql編程;運(yùn)行期的性能優(yōu)化SQL168。 Oracle采用索引實(shí)現(xiàn)了數(shù)據(jù)和存放數(shù)據(jù)的物理位置 (ROWID)之間的聯(lián)系 block)的方式優(yōu)化全表掃描。為避免那些不必要的全表掃描,必須盡量避免使用CHOOSE優(yōu)化器,而直接采用基于規(guī)則或者基于成本的優(yōu)化器。MODE參數(shù)的各種聲明進(jìn)行選擇,如 RULE、 COST、CHOOSE、 ALL_概述概述Oracle的優(yōu)化器共有 3種模式: RULE減少解析2.forceEXECsql_stmt:sqlstr。SQLvaluesinto使用綁定變量的語(yǔ)句 :sqlstrEXECnum2)insertwhere*user_files%39。39。v$db_object_cache168。n 檢查:168。WHERESELECT=FROM少排序n不造成死鎖為什么要 bind注意事項(xiàng)SQL語(yǔ)句優(yōu)化的過(guò)程語(yǔ)句優(yōu)化的過(guò)程n定位有問(wèn)題的語(yǔ)句n檢查執(zhí)行計(jì)劃n檢查執(zhí)行過(guò)程中優(yōu)化器的統(tǒng)計(jì)信息n分析相關(guān)表的記錄數(shù)、索引情況n改寫(xiě) SQL語(yǔ)句、使用 HINT、調(diào)整索引、表分析n有些 SQL語(yǔ)句不具備優(yōu)化的可能,需要優(yōu)化處理方式n達(dá)到最佳執(zhí)行計(jì)劃什么是好的什么是好的 SQL語(yǔ)句?語(yǔ)句?n盡量簡(jiǎn)單,模塊化n易讀、易維護(hù)n節(jié)省資源168。有效的應(yīng)用設(shè)計(jì)4.SQL語(yǔ)句執(zhí)行的過(guò)程、 ORACLE優(yōu)化器,表之間的關(guān)聯(lián),如何得到 SQL執(zhí)行計(jì)劃,如何分析執(zhí)行計(jì)劃等內(nèi)容,從而由淺到深的方式了解 SQL優(yōu)化的過(guò)程,使大家逐步掌握 SQL優(yōu)化。目錄目錄1.SQL語(yǔ)句的處理過(guò)程5.內(nèi)存168。variables?n 字符級(jí)的比較 :168。USER_FILES‘10001234’。*USER_NOselectwhereselect什么叫做重編譯問(wèn)題什么叫做重編譯?下面這個(gè)語(yǔ)句每執(zhí)行一次就需要在 SHAREfromcontract_nointovaluesSQLEXECtest(:v1,PREPAREEXECUSINGSQL還是 similar有些帶 動(dòng)態(tài)內(nèi)存調(diào)整3.(基于規(guī)則 )、 COST(基于成本 )、 CHOOSE(基于選擇 )。ROWS、 FIRST_為了使用基于成本的優(yōu)化器 (CBO, Cost—Based如果數(shù)據(jù)庫(kù)的優(yōu)化器模式 設(shè)置 為基于選擇,那么實(shí)際的優(yōu)化器模式將和是否運(yùn)行過(guò) analyze命令有關(guān)。訪問(wèn)數(shù)據(jù)表的方式訪問(wèn)數(shù)據(jù)表的方式① ② 通常索引提供 了快速訪問(wèn) ROWID的方法,因此那些基于索引列的查詢就可以得到性能的提高。OS參數(shù)配置 ,ORACLE參數(shù)配置 。Tunningdelete, 盡量依賴(lài) oracle的優(yōu)化器,并為其提供條件;168。SCAN;168。以這些優(yōu)化策略為指導(dǎo),通過(guò)經(jīng)驗(yàn)總結(jié),我們可以不斷地豐富優(yōu)化方案,進(jìn)而指導(dǎo)我們進(jìn)行應(yīng)用系統(tǒng)的數(shù)據(jù)庫(kù)性能優(yōu)化。table代替 delete。優(yōu)化概括●wheretab;盡量少嵌套子查詢,這種查詢會(huì)消耗大量的 CPU資源;對(duì)于有比較多or運(yùn)算的查詢,建議分成多個(gè)查詢,用 union在 Oracle中動(dòng)態(tài)執(zhí)行 SQL,盡量用 execute方式,不用dbms_sql包。nSQL語(yǔ)句的編寫(xiě)原則和 SQL語(yǔ)句的優(yōu)化,請(qǐng)跟我一起學(xué)習(xí)以下幾方面:避免復(fù)雜的多表關(guān)聯(lián)select=and…)???很難優(yōu)化,隨著數(shù)據(jù)量的增加性能的風(fēng)險(xiǎn)很大。而其他的至少需要執(zhí)行兩次排序 .例如 ,一個(gè) UNION查詢 ,其中每個(gè)查詢都帶有 GROUPSORT)然后在執(zhí)行 UNION時(shí) ,帶有 UNION,DISTINCTEWHEREDEPT_NO,DEPT_NAMEFROM(EWHERE用 EXISTS替換 DISTINCT用 UNIONALLpossible)當(dāng) SQL語(yǔ)句需要 UNION兩個(gè)查詢結(jié)果集合時(shí) ,這兩個(gè)結(jié)果集合會(huì)以UNIONALL的方式被合并 ,低效:   DEBIT_TRANSACTIONSWHEREACCT_NUM,=DEBIT_TRANSACTIONSWHEREALLSELECTTRAN_DATEENAMEFROM2326ACCESSEMPUNIQUE只有在它的第一個(gè)列 (leadingtablenumber,created.SQLonsetselectmultiindexusage1。STATEMENT10ACCESSOF(RANGEMULTINDEX39。*whereExecution0Optimizer=CHOOSE(FULL)當(dāng)僅引用索引的第二個(gè)列時(shí) ,優(yōu)化器使用了全表掃描而忽略了索引避免在索引列上使用函數(shù)WHERE子句中,如果索引列是函數(shù)的一部分.優(yōu)化器將不使用索引而使用全表掃描.舉例 :低效:SELECT*高效 :SELECT如果索引列所對(duì)應(yīng)的值的第一個(gè)字符由通配符 (WILDCARD)開(kāi)始 ,FROMLIKE在這種情況下, ORACLE將使用全表掃描 .避免在索引列上使用 NOT通常,我們要避免在索引列上使用 NOT,=高效 :SELECTFROMWHERE避免在索引列上使用 NULL避免在索引中使用任何可以為空的列, ORACLE將無(wú)法使用該索引 ,null或 isORACLE自動(dòng)對(duì)列進(jìn)行簡(jiǎn)單的類(lèi)型轉(zhuǎn)換 .假設(shè) USER_NO是一個(gè)字符類(lèi)型的索引列 .SELECT=TO_NUMBER(USER_NO)這個(gè)索引將不會(huì)被用到 !=TO_NUMBER.39。=39。1)減少訪問(wèn)數(shù)據(jù)庫(kù)的次數(shù)當(dāng)執(zhí)行每條 SQL語(yǔ)句時(shí) ,綁定變量 減少訪問(wèn)數(shù)據(jù)庫(kù)的次數(shù) WHERELIKE  ‘SMITH%’。SELECTFROM  EMPDEPT_NO你可以用 DECODE函數(shù)高效地得到相同結(jié)果SELECTD0020_SAL,SUM(DECODE(DEPT_NO,0030,SAL,NULL))ENAMETAB_NAME(TAB_COLUMNSWHEREDB_VERFROMWHERE高效TAB_NAME =TAB_COLUMNSVERSION當(dāng)在 WHERE子句中有多個(gè)表聯(lián)接時(shí), WHERE子句中排在最后的表應(yīng)當(dāng)是返回行數(shù)可能最少的表,有過(guò)濾條件的子句應(yīng)放在 WHERE子句中的最后。emp=30*dand—— 函數(shù)、表達(dá)式使用n最好不要在 WHERE子句中使用函或表達(dá)式,如果要使用的話,最好統(tǒng)一使用相同的表達(dá)式或函數(shù),這樣便于以后使用合理的索引。BY語(yǔ)句決定了 Oracle如何將返回的查詢結(jié)果排序。by語(yǔ)句的非索引項(xiàng)或者有計(jì)算表達(dá)式都將降低查詢速度。by語(yǔ)句以使用索引,也可以為所使用的列建立另外一個(gè)索引,同時(shí)應(yīng)絕對(duì)避免在 order employss||last_name employee=39。last_name帶通配符( %)的 like語(yǔ)句 fromlike在很多情況下可能無(wú)法避免這種情況,但是一定要心中有底,通配符如此使用會(huì)降低查詢速度。employee39。HAVING低效 :REGION‘PERTH’REGION‘PERTH’BYWHEREHAVING用 NOTIN在子查詢中 ,NOT(因?yàn)樗鼘?duì)子查詢中的表執(zhí)行了一個(gè)全表遍歷 ).子句可以有效地利用索引。EXISTS要比 NOT168。FROMNOTFROM 語(yǔ)句 2deptnoNOTFROM=因?yàn)?1中對(duì) emp進(jìn)行了 full table scan,這是很浪費(fèi)時(shí)間的操作。通常 ,通過(guò)索引查詢數(shù)據(jù)比全表掃描要快 .另一個(gè)使用索引的好處是 ,它提供了主鍵 (primary當(dāng)然 ,你也會(huì)發(fā)現(xiàn) ,每當(dāng)有記錄在表中增減或索引列被修改時(shí) ,DELE
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1