I .數據庫性能優化工具
Oracle9i用於分析和優化數據庫性能的工具包括動態故障排除、統計視圖工具和企業管理器包。
這些工具用於收集事件(如等待事件)的性能統計信息和診斷記錄,您可以使用它們來查找和診斷性能問題。
Oracle view提供故障排除和性能優化信息。這些觀點包括:
1.動態性能視圖
Oracle在動態性能視圖中記錄系統統計信息和故障排除信息。例如,V$SYSTAT視圖包括系統統計信息。
2.數據字典視圖
Oracle在數據字典視圖(如DBA_CLUSTERS視圖)中記錄數據存儲統計信息。這些視圖使您能夠監控和優化數據存儲以提高性能。
您可以使用以下統計信息收集工具來獲取有關數據庫性能的更多信息。
1.BSTAT/ESTAT
BSTAT/ESTAT工具由utlbstat.sql和utlestat.sql腳本組成,這些腳本用於收集單個指定時間段內的性能統計信息,並基於這些統計信息生成報告。
2.STATSPACK
STATSPACK工具是對BSTAT/ESTAT工具的增強,它允許您比較不同時間段的統計信息,並分析消耗資源的SQL指令的性能。
Oracle企業管理器(OEM)包括診斷軟件包和優化軟件包。這兩個包包含GUI工具,比如Performance Manager,它負責性能管理和優化。
Oracle提供了等待事件的實時記錄,每當線程被迫等待資源時就會發生這些事件。這些記錄對於識別資源瓶頸非常有用。
Oracle還在預警日誌和跟蹤日誌中記錄所有錯誤。這使您能夠檢測和診斷數據庫中的問題。
數據庫管理員和軟件開發人員可以編寫定制的腳本,使用ORACLE現有的工具來收集特定的統計數據,並制定性能優化操作計劃。
例如,該腳本可以使用Oracle Enterprise Manager (OEM)事件服務來檢測性能問題,並在出現問題時觸發OEM作業服務來運行優化腳本。
2.使用數據字典視圖幫助優化
DBMS_STATS軟件包是PL/SQL過程的集合,優化器使用它來收集和存儲統計信息。
DBMS_STATS將這些統計信息存儲在壹個數據字典中,該字典可用於分析存儲性能。
DBMS_STATS軟件包可以收集索引統計、數據表統計、直方圖統計和模式統計。
通過運行以下過程,可以收集DBMS_STATS的各種統計信息:
1.收集_表格_統計數據
2.收集指數統計數據
3.收集系統統計數據
4.收集模式統計數據
5.收集數據庫統計數據
運行DBMS_STATS過程時,這些過程將當前統計信息放入以下視圖:
1.DBA _ clusters: DBA _ clusters視圖包含每個集群的數據存儲信息,以及塊和擴展層。
2.DBA_TABLES和DBA_TAB_COLUMNS: DBA _ tables視圖和DBA_TAB_COLUMNS視圖提供了表和列的存儲和所有權信息,包括唯壹性和數據類型等信息。
3.DBA _ INDEX _ STATS:DBA _ INDEXS _ STATS:DBA _ indexes視圖描述了每個索引是如何存儲的,以及哪些表與它相關聯。INDEX_STATS視圖包含關於索引的結構、使用和性能的詳細信息。
4.INDEX_HISTOGRAM和DBA_TAB_HISTOGRAMS:INDEX _ HISTOGRAM視圖和DBA _ TAB _ HISTOGRAMS視圖包含每個索引列和未索引列的數據分布統計信息。
DBMS_STATS軟件包是PL/SQL過程的集合,優化器使用它來收集和存儲統計信息。
您可以使用ANALYZE命令而不是DBMS_STATS包來收集系統統計信息。區別在於ANALYZE命令收集諸如表和索引的結構完整性之類的數據,而DBMS_STATS軟件包不收集。然而,這個命令是有限的和不準確的,所以它不應該用於收集基於成本的優化統計數據。
三。使用動態性能視圖
動態性能視圖包含有關當前系統性能的統計信息。ORACLE在實例啟動時加載這些視圖;當實例關閉時,Oracle將清除這些視圖。當數據庫運行時,Oracle會實時更新這些視圖。
動態性能視圖是SYS用戶擁有的V$視圖。這些視圖基於動態更新的X$表。
雖然您可以直接查詢底層的X$表來訪問V$視圖中出現的相同信息。但是,X$表和列的名稱通常都是縮寫和不明確的,所以使用的視圖很容易理解。
因為動態性能視圖是基於實例的,所以只要實例啟動,即使數據庫關閉,也可以隨時訪問它們。
只有當您將TIMED_STATISTICS的初始化參數值設置為TRUE時,動態性能視圖中的統計信息才會添加實時信息。
動態信息視圖提供以下相關信息:
1.實例和數據庫性能:V$INSTANCE,$DATABASE,V$PARAMETER,V$PROCESS,V$WAITSTAT和V$SYSTEM_EVENT視圖包括有關實例和數據庫性能的數據。
2.內存使用情況:V$BUFFER _ POOL _ STATISTICS、V$DB _ OBJECT _ CACHE、V$LIBRARY _ CACHE、V$row CACHE、V$SYSSTAT和V$SGASTAT視圖包含有關內存使用情況的數據。
3.磁盤性能:V$DATAFILE、V$FILESTAT、V$LOG、V$LOG_HISTORY、V$DBFILE、V$TEMPFILE和V$TEMPSTAT視圖包括有關磁盤性能的數據。
4.資源爭用:V$LOCK、V$ROLLSTAT、V$WAITSTAT、V$LATCH和V$UNDOSTAT視圖包括關於資源爭用的數據。
5.會話性能:V$SESSION、V $ session、V$PROCESS、V$LOCK、V$OPEN_CURSOR、V$TRANSACTION、V$SESSION_EVENT和V$SESSION_WAIT視圖包含有關會話性能的數據。
V$STATNAME視圖列出了所有可用的統計信息。它顯示了這些變量的統計數據的名稱和數量,並指出由每個統計數據監控的活動或過程的類型。
V$SYSSTAT視圖列出了所有可用的統計數據及其當前值。
V$STATNAME和V$SYSSTAT視圖顯示了每個統計信息屬於哪個統計信息類。* * *有八個統計信息類別,每個統計信息類別涉及優化的壹個方面:
1.Class1: Class1統計數據與常規實例活動相關。
2.第2類:第2類統計信息與恢復日誌緩沖活動相關。
3.第4類:第4類統計與擁塞有關。
4.第8類:第4類統計信息與數據庫緩沖區活動相關。
5.Class 16: Class 4統計信息與操作系統活動相關。
6.第32類:第4類統計涉及並行性。
7.第64類:第4類統計與表訪問相關。
8.Class 128: Class 4統計信息與調試過程相關。
您可以使用V$SESSTAT視圖查看特定會話的統計信息。此視圖列出了所有當前打開的會話的所有統計數據。該視圖使用V$STATNAME視圖中的會話ID和統計信息的數量來表示每個統計值。
例如,您可以使用V$SESSTAT視圖找出會話3中第138個統計值。
為了能夠看到統計信息的名稱而不是統計信息的數量,您可以通過連接V$STATNAME和V $ sessitat視圖來獲得更清晰的結果。
四。等待事件
當兩個或多個進程競爭同壹個資源時,結果必然是至少有壹個進程需要等待資源變得可用,然後Oracle記錄壹個等待事件。
有必要監控等待事件,並嘗試減少等待的頻率和持續時間,以提高系統性能。
等待事件的示例包括緩沖區臨時占用等待、連續讀取等待和等待鎖釋放。
Oracle在V$EVENT _ NAME視圖中提供了等待事件類別的列表。該視圖列出了與每個事件相關的編號、名稱和其他三個相關參數。
Oracle將有關等待事件的統計信息存儲在V$SYSTEM _ EVENT、V$SESSION _ EVENT和V$SESSION _ WAIT視圖中。
V$SYSTEM_EVENT視圖列出了自當前實例啟動以來發生的所有等待事件,但會話除外。
對於每個等待事件類別,V$SYSTEM_EVENT視圖顯示自實例啟動以來發生的事件數量、超時總數、總等待時間以及每個等待事件的平均等待時間。
V$SESSION_EVENT視圖顯示特定會話期間發生的等待事件的信息。它顯示會話期間發生的每壹類等待事件的相關會話ID(SID)和統計信息。
V$SESSION_WAIT視圖為正在等待的當前會話提供有關資源和事件的信息。同時,它顯示SID、用於標識等待的序列號、等待事件的類別和所有相關參數、等待的持續時間以及等待事件是否仍在進行中。
提示:要查看關於等待時間的信息,需要確保TIMED_STATISTICS初始化參數的值設置為TRUE。
動詞 (verb的縮寫)警報日誌和跟蹤文件
警報日誌是記錄錯誤和更改數據庫結構的語句的日誌文件,如RECOVER和ALTER DATABASE語句。
當實例啟動時,Oracle會用所有非默認的初始化參數值更新預警日誌。
當實例運行時,Oracle用內部錯誤和塊損壞錯誤更新預警日誌,並在數據庫中記錄更改。
如果LOG_CHECKPOINTS_TO_ALERT的初始參數值設置為TRUE,警報日誌將記錄以下檢查點信息:
1.檢查點開始和結束的時間
2.不完整的檢查點
3.恢復的開始和結束時間
4.歸檔時間
5.死鎖和超時錯誤
應定期檢查警報日誌,以便在潛在錯誤對系統性能造成嚴重影響之前檢測到這些錯誤。您還可以使用預警日誌作為診斷工具,幫助您確定當前數據庫問題的原因。
要維護報警日誌,您應該定期從日誌中刪除不再相關的信息,以便日誌能夠始終保持壹個可操作的容量。
除了提供警報日誌,Oracle還創建跟蹤文件,其中包含後臺進程檢測到的錯誤信息。
這些後臺進程的跟蹤文件通常不包含對性能優化有用的信息。但是,Oracle支持人員可以使用這些跟蹤文件來解決數據庫問題。
您可以啟用服務器跟蹤進程來跟蹤在特定會話或實例期間執行的所有SQL指令。為此,需要將SQL_TRACE初始化參數值設置為TRUE。Oracle會將此跟蹤信息記錄在用戶的跟蹤文件中。
不及物動詞摘要
1.Oracle9i提供了動態性能視圖和數據字典視圖、統計信息收集工具、Oracle Enterprise Manager (OEM)軟件包和錯誤記錄。
2.2號。DBMS_STATS軟件包為基於成本的優化收集統計信息。您可以使用DBMS_STATS軟件包來收集表和索引中的數據存儲信息,以及數據分布直方圖。
3.動態性能視圖是壹個基於表的視圖,它記錄了與ORACLE當前性能相關的統計信息。您可以查詢這些視圖來收集有關內存使用、資源爭用、磁盤性能和壹般實例性能的信息。用戶可以使用特定的動態性能視圖(如V$SESSTAT視圖)來收集特定會話中的性能信息。
4.當進程競爭同壹個資源時,至少有壹個進程必須等待資源變得可用。此時,Oracle記錄了壹個等待事件。您可以使用這些等待事件信息來查看性能瓶頸。
5.Oracle在警報日誌中記錄內部錯誤和塊中斷錯誤。後臺進程還跟蹤文件中記錄錯誤。您可以使用警報日誌記錄來檢測和診斷數據庫錯誤,也可以選擇使用跟蹤文件來記錄用戶的SQL查詢。