熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

通過Oracle動態性能視圖采集查詢調優數

2013-11-13 15:37:22  來源: Oracle 

  對於現在的一些發行版本DBA(Database Administrator數據庫管理員)和開發員可以訪問的已經有三種動態性能視圖了分別為V$SQLV$SQLAREA還有V$SQLTEXT

  這些視圖可以用來采集有關SQL命令執行的統計信息在Oracle g Release 還增加了第四個動態性能視圖V$SQLSTATS通過它能更方便地訪問這類數據

  和靜態數據字典視圖(static dictionary view也就是前綴為USER_ALL_或者DBA_的視圖)不同動態性能視圖會隨著系統的運行而不斷更新這使得有可能在SQL語句執行之時監視其性能

  和靜態視圖一樣的是要使用它們你要先獲得許可對於非數據庫管理員用戶(如典型的開發環境下)可賦予SELECT_CATALOG_ROLE權限讓他們可以從中選擇它們

  下面是各個視圖所提供功能的一些簡要描述要獲得更多信息請參考Oracle Database g 指南


V$SQL:這個視圖使用一個CLOB(character large object字符型巨對象)column(欄也就是視圖中的屬性字段)以提供SQL語句的完整文本此外還有一列最多存放個VARCHAR字符(存放SQL語句的前個字符)的對象這方便了使用可訪問的統計數據相當廣泛包括解析語句(parse)和非法語句的數目磁盤的讀寫次數運行時間等待時間還有optimizer(優化器)數據你還可以從中知道創建語句的用戶和schema(部署對象)以及當前有多少用戶正在執行它
V$SQLAREA:這個視圖包含許多和V$SQL相同的統計信息可是V$SQL對每條初始SQL語句及其子語句(child)都要包含一行統計信息而這個視圖只對實際輸入的SQL字串產生一條統計信息
V$SQLSTATS:這是gR版中新加入的視圖這個視圖比V$SQL和V$SQLAREA更快更方便它只包含其它視圖column的子集一般來說它不連接用戶信息它的每一行對應一條SQL語句及其執行計劃的hash value(雜湊值)它的額外的優點是這個視圖中的紀錄入口比其它視圖更為持久因此雖然某一條語句已經在共享池中過期失效(這導致它從V$SQLAREA中消失)但你仍然可以通過該視圖找到它
V$SQLTEXT:有時候你會想得到分開的每一行SQL語句而不是V$SQL中給出的一個巨對象那麼V$SQL可以讓你如願你可以通過COMMAND_TYPE欄中的代號選擇特定的某種類型的語句(比如選擇INSERT語句或者SELECT語句)SQL_TEXT column中存放的是單個語句而PIECE column則給語句編上號碼以便通過 ORDER BY來排序另外有一個叫V$SQLTEXT_WITH_NELINES的變量會保留原來的換行符以改善可讀性(V$SQLTEXT會用空格替代換行符)V$SQLTEXT和V$SQLTEXT_WITH_NEWLINES都不會告訴你是誰執行了這條語句或者是誰在提供給你這些統計信息如果要獲得那類信息你還得通過V$SQL和V$SQLAREA視圖中的ADDRESS和HASH_VALUE column實現

  這四個視圖工具合到一起共同為你提供了原始資料幫助你檢測你的SQL數據庫執行狀況如何

  Bob Watkins(OCPMCDBAMCSEMCT)作為計算機專家有著年做技術培訓師顧問以及數據庫管理員的經驗


From:http://tw.wingwit.com/Article/program/Oracle/201311/17023.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.