ORACLE 10053事件詳解

來源:互聯網
上載者:User

本次我們主要講解oracle 10053事件和實驗,好多朋友可能對這個事件不是很熟悉,因為在日常營運中用到的不是很多。Oracle 10046和10053都是非官方trace sql的方法,在官方文檔上是找不到相關資料的,但在MOS上可以找到。sql_trace是官方推薦的trace sql的方法,在官方文檔上是可以查詢出來的。

10053事件:用來描述oracle如何選擇執行計畫的過程,然後輸出到trace檔案裡,共我們參考,因為我們經常看執行計畫怎麼執行的消耗了哪些資源,而不是常看執行計畫怎麼選擇出來了的。

10053情境:當SQL語句執行時走的是錯誤的執行計畫,而又找不到原因時,這時請用10053來分析一下原因。

10053特點:

(1)只可以瞭解oracle執行計畫的選擇過程

(2)無法獲知代價的計算公式,因為這是oracle內部的商業機密,而且每個oracle版本的最佳化器計算公式都不相同差距還是蠻大的,不同版本的同一個語句的代價也不一樣,最佳化器現在還不是很成熟,還有待完善。

(3)在這個裡面我們重點要瞭解的是“代價”是如何計算出來的,然後我們才能瞭解執行計畫是如何選擇的。

(4)在10053中可以瞭解哪些因素影響sql的執行代價

(5)oracle 8i cost等價IO資源消耗   9i以後cost等價IO+CPU+網路+等待事件+其他代價

一般IO資源的權重比較大CPU權重較小

10053內容:

參數區:初始化參數,隱含參數,這些參數可以左右oracle工作方式

SQL區:執行的SQL語句,是否使用綁定變數,是否進行了轉換操作

系統資訊區:作業系統統計資訊  cpu主頻CPU執行時間IO定址時間單塊讀時間多塊讀時間

對象統計資訊區:

資料訪問方式:訪問方式不一樣計算代價的方法也不一樣,全表掃描走索引多表關聯代價都不同

關聯查詢:把每張表都作為驅動表去組合,擇優選擇“代價”最小的關聯方式,與哪個表在前無關係

代價的最後修正:oracle會對選擇出來的代價再進行最後的修正,使其更準確一些,更合理一些

選擇出最終執行計畫:這個過程是非常快速的,毫秒級就搞定啦

實驗環境

LEO1@LEO1> select * from v$version;                     這是我的oracle edition

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for Linux: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production

1.驗證全表掃描的成本計算公式,貼出執行計畫和計算公式。

LEO1@LEO1> col sname for a20

LEO1@LEO1> col pname for a20

LEO1@LEO1> col pual1 for a30

LEO1@LEO1> col pual2 for a30

LEO1@LEO1> select * from sys.aux_stats$;   查看作業系統統計資訊

SNAME              PNAME                  PVAL1    PVAL2

本欄目更多精彩內容:http://www.bianceng.cn/database/Oracle/

-------------------- -------------------- ---------- ---------------------------------------------------

SYSSTATS_INFO        STATUS                             COMPLETED

SYSSTATS_INFO        DSTART                             08-15-2009 00:49

SYSSTATS_INFO        DSTOP                              08-15-2009 00:49

SYSSTATS_INFO        FLAGS                         1

SYSSTATS_MAIN        CPUSPEEDNW            2657.0122

SYSSTATS_MAIN        IOSEEKTIM                    10

SYSSTATS_MAIN        IOTFRSPEED                 4096

SYSSTATS_MAIN        SREADTIM

SYSSTATS_MAIN        MREADTIM

SYSSTATS_MAIN        CPUSPEED

SYSSTATS_MAIN        MBRC

SYSSTATS_MAIN        MAXTHR

SYSSTATS_MAIN        SLAVETHR

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.