來源:https://zhidao.baidu.com/question/1382950893572331580.html
共同點:
1)都存儲了sql內容
2) 記錄的都是位於內存中的sql內容
3) 因爲是內存,所以都不保留歷史記錄
不同點:
1)存儲的爲止不都是相同。其中v$sql和v$sqlarea存儲的sql都是位於shared sql area中的sql,而v$sqltext是位於sga中的sql。但文檔沒有明確說明這裏的sga是否還包含了psa(私有sql區域--共享服務器模式下)。
2)存儲sql的方式也不同,v$sql和v$sqlarea都是用一行來存儲sql全文,而v$sqltext用一行存儲sql的一行。
3)v$sql不存儲包含
group
by
的sql語句。通常這個視圖,在每個查詢執行完成後更新,但對於執行很久的sql,它是每5秒更新一次,這點對於查看sql執行狀態是有意義的。
4)存儲的明細不同--這是最基本的。
V$SQL在子游標級別上列出了在共享sql區域的統計信息,他將原始sql文本展現爲一行。V$SQL中的視圖信息一般在sql執行的最後進行更新。然而,對於長時間執行的sql,每5秒會更新一次v$sql視圖。這使得很容易查看長時間執行的sql在運行過程中帶來的影響。
v$sql列說明,如沒有特別說明,均指子游標,存儲的是具體的SQL 和執行計劃相關信息,實際上,v$sqlarea 可以看做 v$sql 根據 sqltext 等 做了
group
by
之後的信息
SQL>
desc
v$sql
Name
Null
? Type
SQL_TEXT
SQL_FULLTEXT
SQL_ID
SHARABLE_MEM
PERSISTENT_MEM
RUNTIME_MEM
SORTS
LOADED_VERSIONS
USERS_OPENING
FETCHES
EXECUTIONS
FIRST_LOAD_TIME
PARSE_CALLS
DISK_CALLS
DIRECT_WRITES
BUFFER_GETS
APPLICATION_WAIT_TIME
CONCURRENCY_WAIT_TIME
USER_IO_WAIT_TIME
ROWS_PROCESSED SQL
OPTIMIZER_MODE
OPTIMIZER_COST
PARSING_USER_ID
HASH_VALUES
CHILD_NUMBER
SERVICE
CPU_TIME
ELAPSED_TIME
INVALIDATIONS
MODULE
ACTION
IS_OBSOLETE
is_bind_sensitive
is_bind_aware
is_shareable
SQL>
desc
v$sqlarea
Name
Null
? Type
SQL_TEXT VARCHAR2(1000)
SHARABLE_MEM NUMBER
PERSISTENT_MEM NUMBER
RUNTIME_MEM NUMBER
SORTS NUMBER
VERSION_COUNT NUMBER
LOADED_VERSIONS NUMBER
OPEN_VERSIONS NUMBER
USERS_OPENING NUMBER
FETCHES NUMBER
EXECUTIONS NUMBER
USERS_EXECUTING NUMBER
LOADS NUMBER
FIRST_LOAD_TIME VARCHAR2(38)
INVALIDATIONS NUMBER
PARSE_CALLS NUMBER
DISK_READS NUMBER
BUFFER_GETS NUMBER
ROWS_PROCESSED NUMBER
COMMAND_TYPE NUMBER
OPTIMIZER_MODE VARCHAR2(25)
PARSING_USER_ID NUMBER
PARSING_SCHEMA_ID NUMBER
KEPT_VERSIONS NUMBER
ADDRESS RAW(4)
HASH_VALUE NUMBER
MODULE VARCHAR2(64)
MODULE_HASH NUMBER
ACTION
VARCHAR2(64)
ACTION_HASH NUMBER
SERIALIZABLE_ABORTS NUMBER
CPU_TIME NUMBER
ELAPSED_TIME NUMBER
IS_OBSOLETE VARCHAR2(1)
CHILD_LATCH NUMBER
v$sqltext
本視圖包括Shared pool中SQL語句的完整文本,一條SQL語句可能分成多個塊被保存於多個記錄內。
注:V$SQLAREA和v$sql中的SQL_TEXT字段只包括頭1000個字符, SQL_FULLTEXT以CLOB方式包含了所有的字符
V$SQLTEXT列說明
HASH_VALUE SQL語句的Hash值
ADDRESS sql語句在SGA中的地址
SQL_TEXT SQL文本。
PIECE SQL語句塊的序號
SQL_ID SQL id
COMMAND_TYPE 命令類型,如
select
、
insert
等