posts - 104,  comments - 34,  trackbacks - 0

          v$sqltext
          存儲的是完整的SQL,SQL被分割

          SQL> desc v$sqltext
          Name                                      Null? Type
          ----------------------------------------- -------- ----------------------------
          ADDRESS                                            RAW(4) ---------
          HASH_VALUE                                         NUMBER ---------   和 address 一起唯一標志一條sql
          COMMAND_TYPE                                     NUMBER
          PIECE                                           NUMBER ----------   分片之后的順序編號
          SQL_TEXT                                        VARCHAR2(64) --------------   注意長度



          v$sqlarea ---------   存儲的SQL 和一些相關的信息,比如累計的執行次數,邏輯讀,物理讀等統計信息
          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$sql     ----------   存儲的是具體的SQL 和執行計劃相關信息,實際上,v$sqlarea 可以看做 v$sql 根據 sqltext 等 做了 group by 之后的信息


          SQL> desc v$sql
          Name                                      Null? Type
          ----------------------------------------- -------- ----------------------------
          SQL_TEXT                                        VARCHAR2(1000)
          SHARABLE_MEM                                     NUMBER
          PERSISTENT_MEM                                  NUMBER
          RUNTIME_MEM                                     NUMBER
          SORTS                                           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(10)
          OPTIMIZER_COST                                  NUMBER
          PARSING_USER_ID                                  NUMBER
          PARSING_SCHEMA_ID                               NUMBER
          KEPT_VERSIONS                                      NUMBER
          ADDRESS                                            RAW(4)
          TYPE_CHK_HEAP                                      RAW(4)
          HASH_VALUE                                         NUMBER
          PLAN_HASH_VALUE                                  NUMBER
          CHILD_NUMBER                                     NUMBER ----------   注意這個  
          MODULE                                           VARCHAR2(64)
          MODULE_HASH                                     NUMBER
          ACTION                                           VARCHAR2(64)
          ACTION_HASH                                     NUMBER
          SERIALIZABLE_ABORTS                                NUMBER
          OUTLINE_CATEGORY                                   VARCHAR2(64)
          CPU_TIME                                        NUMBER
          ELAPSED_TIME                                     NUMBER
          OUTLINE_SID                                     NUMBER --------------   注意這里跟 outline 有關
          CHILD_ADDRESS                                      RAW(4)
          SQLTYPE                                            NUMBER
          REMOTE                                           VARCHAR2(1)
          OBJECT_STATUS                                      VARCHAR2(19)
          LITERAL_HASH_VALUE                               NUMBER
          LAST_LOAD_TIME                                  VARCHAR2(38)
          IS_OBSOLETE                                     VARCHAR2(1)
          CHILD_LATCH                                     NUMBER

          補充:
          1、查一下這些視圖的定義你就能理解,它們的源都是一個。
          SELECT view_definition FROM v$fixed_view_definition        WHERE view_name='GV$SQL';
          SELECT view_definition FROM v$fixed_view_definition        WHERE view_name='GV$SQL_AREA';

          2、實際上最模糊的是v$sql與v$sqlarea,區別與聯系還有:

          a、v$sql_area相當于是按INST_ID, KGLNAOBJ, KGLHDPAR, KGLNAHSH, KGLNATIM, GLOBTS0,GLOBT19, KGLOBTS1, KGLOBT20,DECODE(KGLOBT33, 1, 'Y', 'N'),KGLHDCLT這些列的自v$sql的group by,也就是說v$sql的每一行表示的是每一個sql語句的一個versiion,而v$sqlarea存放的是相同語句不同version一個匯總。

          b、 v$sql與v$sqlarea的源都是一個:X$KGLCURSOR

          c、實際調優中建議使用v$sql,相對來說比v$sqlarea快,而且還不會產生share pool latch的爭用。

          3、因v$sql及v$sqlarea存放著統計信息在調優時使用居多,但其sql是不全的,如果想獲得完整的sql就要用v$sqltext了。


          另外注意這個
          QL> desc v$sql_plan
          Name                                      Null? Type
          ----------------------------------------- -------- ----------------------------
          ADDRESS                                            RAW(4)
          HASH_VALUE                                         NUMBER
          CHILD_NUMBER                                     NUMBER ------------ 注意這個和 v$sql 里面的相同字段
          OPERATION                                        VARCHAR2(60)
          OPTIONS                                            VARCHAR2(60)
          OBJECT_NODE                                     VARCHAR2(20)
          OBJECT#                                            NUMBER
          OBJECT_OWNER                                     VARCHAR2(30)
          OBJECT_NAME                                     VARCHAR2(64)
          OPTIMIZER                                        VARCHAR2(40)
          ID                                              NUMBER
          PARENT_ID                                        NUMBER
          DEPTH                                           NUMBER
          POSITION                                        NUMBER
          SEARCH_COLUMNS                                  NUMBER
          COST                                               NUMBER
          CARDINALITY                                     NUMBER
          BYTES                                           NUMBER
          OTHER_TAG                                        VARCHAR2(70)
          PARTITION_START                                  VARCHAR2(10)
          PARTITION_STOP                                  VARCHAR2(10)
          PARTITION_ID                                     NUMBER
          OTHER                                           VARCHAR2(4000)
          DISTRIBUTION                                     VARCHAR2(40)
          CPU_COST                                        NUMBER
          IO_COST                                            NUMBER
          TEMP_SPACE                                         NUMBER
          ACCESS_PREDICATES                               VARCHAR2(4000)
          FILTER_PREDICATES                               VARCHAR2(4000)


          實際上,看起來同樣的一句SQL ,往往具有不同的執行計劃
          如果是不同的數據庫用戶,那么相應的涉及的 對象 可能都不一樣,注意v$sql 中
          OBJECT#                                            NUMBER
          OBJECT_OWNER                                     VARCHAR2(30)
          OBJECT_NAME                                     VARCHAR2(64)
          OPTIMIZER                                        VARCHAR2(40)

          即使是相同的數據庫用戶,若 session 的優化模式、session 級的參數 等不一樣,執行計劃也能不同。所以即使相同的sql,也可能具有不同的執行計劃!

          v$sql join   to   v$sql_plan   就代表了具體的sql的執行計劃,通過下面3個字段做連接

          ADDRESS                                            RAW(4)
          HASH_VALUE                                         NUMBER
          CHILD_NUMBER                                     NUMBER


          而v$SQLAREA 忽略了   執行計劃 等差異,只是在形式上sql文本看起來一樣!相當于做了個聚合,是多個不同執行計劃的sql的聚合和累計信息

          posted on 2010-08-14 16:44 末日風情 閱讀(521) 評論(0)  編輯  收藏 所屬分類: oracle
          <2010年8月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 永丰县| 营山县| 汪清县| 霍州市| 洛隆县| 屯留县| 蓝山县| 周口市| 苍梧县| 广州市| 云阳县| 丰都县| 建平县| 孟村| 绵阳市| 汨罗市| 定州市| 临潭县| 怀远县| 彰化县| 武宁县| 玛曲县| 临沭县| 会泽县| 阳原县| 云和县| 平南县| 巫山县| 中宁县| 平泉县| 宜兴市| 许昌县| 绵阳市| 正安县| 昆明市| 钦州市| 宿松县| 呼玛县| 双江| 余庆县| 新密市|