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 末日風情 閱讀(527) 評論(0)  編輯  收藏 所屬分類: oracle
          <2010年8月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 天等县| 武威市| 南漳县| 奉化市| 成武县| 汪清县| 德保县| 大埔区| 厦门市| 蓬安县| 罗城| 将乐县| 康定县| 泾阳县| 社会| 烟台市| 宁陵县| 永胜县| 云安县| 利川市| 新田县| 邵阳县| 仁怀市| 岳池县| 青阳县| 五常市| 晴隆县| 绩溪县| 加查县| 潮安县| 缙云县| 阜城县| 日照市| 靖边县| 高阳县| 崇仁县| 黎平县| 合阳县| 开阳县| 云南省| 浪卡子县|