• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    數據庫進階:Oracle中SQL語句執行效率的查找與解決

    發布: 2008-5-07 10:19 | 作者: GOD | 來源: 希賽網 | 查看: 153次 | 進入軟件測試論壇討論

    領測軟件測試網  Oracle中SQL語句執行效率問題的查找與解決:

      一、識別占用資源較多的語句的方法(4種方法)

      1.測試組和最終用戶反饋的與反應緩慢有關的問題。

      2.利用V_$SQLAREA視圖提供了執行的細節。(執行、讀取磁盤和讀取緩沖區的次數)

      • 數據列

      EXECUTIONS:執行次數

      DISK_READS:讀盤次數

      COMMAND_TYPE:命令類型(3:select,2:insert;6:update;7delete;47:pl/sql程序單元)

      OPTIMIZER_MODE:優化方式

      SQL_TEXT:Sql語句

      SHARABLE_MEM:占用shared pool的內存多少

      BUFFER_GETS:讀取緩沖區的次數

      • 用途

      1、幫忙找出性能較差的SQL語句

      2、幫忙找出最高頻率的SQL

      3、幫忙分析是否需要索引或改善聯接

      監控當前Oracle:family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的session,如出現時鐘的標志,表示此進程中的sql運行時間較長。

      4. Trace工具:

      a)查看數據庫服務的初始參數:timed_statistics、user_dump_dest和max_dump_file_size

      b)Step 1: alter session set sql_trace=true

      c)Step 2: run sql;

      d)Step 3: alter session set sql_trace=false

      e)Step 4:使用 “TKPROF”轉換跟蹤文件

      f)Parse,解析數量大通常表明需要增加數據庫服務器的共享池大小,

      query或current提取數量大表明如果沒有索引,語句可能會運行得更有效,

      disk提取數量表明索引有可能改進性能,

      library cache中多于一次的錯過表明需要一個更大的共享池大小

      二、如何管理語句處理和選項

      •基于成本(Cost Based) 和基于規則(Rule Based) 兩種優化器, 簡稱為CBO 和RBO

      •Optimizer Mode參數值:

      Choose:如果存在訪問過的任何表的統計數據 ,則使用基于成本的Optimizer,目標是獲得最優的通過量。如果一些表沒有統計數據,則使用估計值。如果沒有可用的統計數據,則將使用基于規則的Optimizer。

      All_rows:總是使用基于成本的Optimizer,目標是獲得最優的通過量。

      First_rows_n:總是使用基于成本的Optimizer,目標是對返回前N行(“n”可以是1,10,100或者1000)獲得最優的響應時間。

      First_rows:用于向后兼容。使用成本與試探性方法的結合,以便快速傳遞前幾行。

      RULE:總是使用基于規則的Optimizer

      三、使用數據庫特性來獲得有助于查看性能的處理統計信息(解釋計劃和AUTOTRACE)

      No1: Explain Plan

      A)使用Explain工具需要創建Explain_plan表,這必須先進入相關應用表、視圖和索引的所有者的帳戶內. (@D:\oracle\ora92\rdbms\admin\utlxplan)

      B) 表結構:

      STATEMENT_ID:為一條指定的SQL語句確定特定的執行計劃名稱。如果在EXPLAN PLAN語句中沒有使用SET STATEMENT_ID,那么此值會被設為NULL。

      OPERATION:在計劃的某一步驟執行的操作名稱,例如:Filters,Index,Table,Marge Joins and Table等。

      OPTION:對OPERATION操作的補充,例如:對一個表的操作,OPERATION可能是TABLE ACCESS,但OPTION可能為by ROWID或FULL。

      Object_Owner:擁有此database Object的Schema名或Oracle帳戶名。

      Object_name:Database Object名

      Object_type:類型,例如:表、視圖、索引等等

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: oracle ORACLE Oracle sql SQL Sql 進階 數據庫 語句

    31/3123>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>