對於現在的一些發行版本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