Oracle數(shù)據(jù)庫11g:SQL計(jì)劃管理(三)(1)
來源:易賢網(wǎng) 閱讀:965 次 日期:2015-10-10 14:57:11
溫馨提示:易賢網(wǎng)小編為您整理了“Oracle數(shù)據(jù)庫11g:SQL計(jì)劃管理(三)(1)”,方便廣大網(wǎng)友查閱!

Oracle數(shù)據(jù)庫11gR1提供一套新工具集—SQL計(jì)劃管理(SPM),它讓每個(gè)Oracle DBA都可以為任何SQL語句捕獲并保存最有效的執(zhí)行計(jì)劃。本文是本系列中的最后一篇,主要講述如何使用SPM限制現(xiàn)有SQL語句第一次遇到Oracle11g的基本成本的優(yōu)化器(CBO)時(shí)性能突然倒退,同時(shí),也一并介紹一下幾個(gè)允許非常細(xì)粒度的SQL管理庫(SMB)的管理的SQL計(jì)劃管理特色。

本系列前面的文章探討了Oracle數(shù)據(jù)庫11g新的SQL計(jì)劃管理(SPM)特色,它可以用于Oracle10g升級(jí)到Oracle11g時(shí)捕獲和載入SQL計(jì)劃基線,以便在數(shù)據(jù)庫升級(jí)過程中消除SQL語句性能倒退,前面的文章也講述了如何保證新應(yīng)用程序代碼在部署到生產(chǎn)環(huán)境之前,為SQL語句選擇最有效的執(zhí)行計(jì)劃。

本文將講述如何使用SPM:

◆當(dāng)它們嘗試?yán)肙racle11g新的優(yōu)化器特色時(shí),限制SQL語句性能不必要的倒退。

◆通過手工方法捕獲特定SQL語句的SQL計(jì)劃基線。

◆控制現(xiàn)有SQL計(jì)劃基線的演變。

◆管理SQL計(jì)劃管理基線(SMB)的內(nèi)容,包括如何清除過時(shí)的或不希望有的SQL計(jì)劃基線。

SPM情景#3:依靠前面的優(yōu)化器版本使用SQL性能分析器(SPA)

在前面文章中的第一個(gè)情景講述了如何使用SPM為SQL語句捕獲SQL計(jì)劃基線,該SQL語句的性能在實(shí)施Oracle10g升級(jí)到Oracle11g的過程中可能倒退。那個(gè)情景實(shí)際上涉及到在一個(gè)現(xiàn)有的Oracle10g數(shù)據(jù)庫中執(zhí)行該SQL語句組成的SQL工作負(fù)載。解決這個(gè)問題的一個(gè)可選的方法是在一個(gè)現(xiàn)有的Oracle11g數(shù)據(jù)庫環(huán)境中通過控制初始化參數(shù)OPTIMIZER_FEATURES_ENABLE的值模擬一個(gè)Oracle10g環(huán)境。

模擬準(zhǔn)備

要說明這個(gè)情景,我將利用前面文章中SPM情景#2中SQL調(diào)整集STS_SPM_200中捕獲的相同的SQL語句,在我執(zhí)行任何新的分析之前,我將從SQL管理庫(SMB)中移除早先創(chuàng)建的所有SQL計(jì)劃基線,我將使用函數(shù)DBMS_SPM.DROP_SQL_PLAN_BASELINE移除那些標(biāo)記有注釋字符串“SPM_2”的語句(查看列表3.1),然后,我會(huì)準(zhǔn)備一個(gè)新的名叫SPA_SPM_300的SQL性能分析器(SPA)任務(wù),它將分析STS_SPM_200 SQL調(diào)整集中的SQL工作負(fù)載的性能(查看列表3.2)。

分析SQL工作負(fù)載

接下來,我將瞄準(zhǔn)SPA任務(wù)SPA_SPM_300,評(píng)估在Oracle10gR2和Oracle11gR1數(shù)據(jù)庫環(huán)境之間模擬的工作負(fù)載性能,首先我會(huì)清除我的Oracle11g的庫緩存和數(shù)據(jù)庫緩存,確保提供一個(gè)干凈的性能評(píng)估起點(diǎn)。然后,我會(huì)設(shè)置初始化參數(shù)OPTIMIZER_FEATURES_ENABLE的值為10.0.0.0,欺騙優(yōu)化器相信它是一個(gè)Oracle10g數(shù)據(jù)庫,最后,我會(huì)通過執(zhí)行SPA_SPM_300一次測(cè)試分析那個(gè)模式下的性能,一旦這個(gè)順序完成了,我將設(shè)置OPTIMIZER_FEATURES_ENABLE的值為11.1.0.6,然后重復(fù)相同的分析,SPA將在Oracle11g環(huán)境下評(píng)估工作負(fù)載,這里用到的代碼在列表3.3中。

比較相關(guān)的工作負(fù)載性能

一旦這兩個(gè)工作負(fù)載執(zhí)行測(cè)試完成,我下一個(gè)任務(wù)是判斷是否有SQL語句因?yàn)閮?yōu)化器設(shè)置改變而性能倒退了,我使用的代碼在列表3.4中,它們比較兩個(gè)工作負(fù)載模擬情況,然后生成一個(gè)關(guān)于哪些SQL語句性能下降了的報(bào)告。為了在這里展示SQL性能分析器的靈活性,我避開使用一個(gè)相對(duì)變化的優(yōu)化成本作為我的度量值,相反,我選擇基于估計(jì)執(zhí)行時(shí)間進(jìn)行SQL語句比較。

為性能倒退的SQL語句捕獲SQL計(jì)劃基線

與分析報(bào)告顯示的結(jié)果一樣,在模擬從10.2.0.1升級(jí)到11.1.0.6時(shí),有兩條SQL語句產(chǎn)生了負(fù)面的影響(性能降低了),我將捕獲這些語句的執(zhí)行計(jì)劃到SQL計(jì)劃基線中,這將防止CBO使用11g優(yōu)化器設(shè)置運(yùn)行這些SQL語句,它會(huì)因這些語句引起有害的性能,列表3.5中的代碼說明了如何實(shí)現(xiàn)這個(gè)。

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看數(shù)據(jù)庫
易賢網(wǎng)手機(jī)網(wǎng)站地址:Oracle數(shù)據(jù)庫11g:SQL計(jì)劃管理(三)(1)
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)