亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

Oracle中SQL語句執行效率的查找與解決

2024-08-29 13:52:39
字體:
來源:轉載
供稿:網友
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:類型,例如:表、視圖、索引等等

ID:指明某一步驟在執行計劃中的位置。

PARENT_ID:指明從某一操作中取得信息的前一個操作。通過對與ID和PARENT_ID使用Connect By操作,我們可以查詢整個執行計劃樹。

C)EXPLAIN搜索路徑解釋

•全表掃描(Full Table Scans)(無可用索引,大量數據,小表 ,全表掃描hints,HWM(High Water Mark), Rowid掃描)

•索引掃描

索引唯一掃描(Index Unique Scans)

索引范圍掃描(Index Range Scans)

索引降序范圍掃描(Index Range Scans Descending)

索引跳躍掃描(Index Skip Scans)

全索引掃描(Full Scans)

快速全索引掃描(Fast Full Index Scans)

索引連接(Index Joins)

位圖連接(Bitmap Joins)

•如何選擇訪問路徑: CBO首先檢查WHERE子句中的條件以及FROM子句,確定有哪些訪問路徑是可用的。然后CBO使用這個訪問路徑產生一組可能的執行計劃,再通過索引、表的統計信息評估每個計劃的成本,最后優化器選擇成本最低的一個。

•表的連接方式:

Nested Loops會循環外表(驅動表),逐個比對和內表的連接是否符合條件。在驅動表比較小,內表比較大,而且內外表的連接列有索引的時候比較好。當SORT_AREA空間不足的時候,Oracle也會選擇使用NL?;贑ost的Oracle優化器(CBO)會自動選擇較小的表做外表。(優點:嵌套循環連接比其他連接方法有優勢,它可以快速地從結果集中提取第一批記錄,而不用等待整個結果集完全確定下來。缺點:如果內部行源表(讀取的第二張表(內表)已連接的列上不包含索引,或者索引不是高度可選時, 嵌套循環連接效率是很低的。如果驅動行源表(從驅動表中提取的記錄)非常龐大時,其他的連接方法可能更加有效。)

SORT- merge JOIN,將兩表的連接列各自排序然后合并,只能用于連接列相等的情況,適合兩表大小相若的情況(在缺乏數據的選擇性或者可用的索引時,或者兩個源表都過于龐大(超過記錄數的5%)時,排序合并連接將比嵌套循環連更加高效。但是,排列合并連接只能用于等價連接(WHERE D.deptno=E.dejptno,而不是WHERE D.deptno>=E.deptno)。排列合并連接需要臨時的內存塊,以用于排序(如果SORT_AREA_SIZE設置得太小的話)。這將導致在臨時表空間占用更多的內存和磁盤I/O。)

HASH JOIN在其中一表的連接列上作散列,因此只有另外一個表做排序合并,理論上比SORT JOIN會快些,需?/td>

"FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或FULL。

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

Object_name:Database Object名

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

ID:指明某一步驟在執行計劃中的位置。

PARENT_ID:指明從某一操作中取得信息的前一個操作。通過對與ID和PARENT_ID使用Connect By操作,我們可以查詢整個執行計劃樹。

C)EXPLAIN搜索路徑解釋

•全表掃描(Full Table Scans)(無可用索引,大量數據,小表 ,全表掃描hints,HWM(High Water Mark), Rowid掃描)

•索引掃描

索引唯一掃描(Index Unique Scans)

索引范圍掃描(Index Range Scans)

索引降序范圍掃描(Index Range Scans Descending)

索引跳躍掃描(Index Skip Scans)

全索引掃描(Full Scans)

快速全索引掃描(Fast Full Index Scans)

索引連接(Index Joins)

位圖連接(Bitmap Joins)

• 如何選擇訪問路徑: CBO首先檢查WHERE子句中的條件以及FROM子句,確定有哪些訪問路徑是可用的。然后CBO使用這個訪問路徑產生一組可能的執行計劃,再通過索引、表的統計信息評估每個計劃的成本,最后優化器選擇成本最低的一個。

• 表的連接方式:

Nested Loops會循環外表(驅動表),逐個比對和內表的連接是否符合條件。在驅動表比較小,內表比較大,而且內外表的連接列有索引的時候比較好。當SORT_AREA空間不足的時候,Oracle也會選擇使用NL?;贑ost的Oracle優化器(CBO)會自動選擇較小的表做外表。(優點:嵌套循環連接比其他連接方法有優勢,它可以快速地從結果集中提取第一批記錄,而不用等待整個結果集完全確定下來。缺點:如果內部行源表(讀取的第二張表(內表)已連接的列上不包含索引,或者索引不是高度可選時, 嵌套循環連接效率是很低的。如果驅動行源表(從驅動表中提取的記錄)非常龐大時,其他的連接方法可能更加有效。)

SORT- merge JOIN,將兩表的連接列各自排序然后合并,只能用于連接列相等的情況,適合兩表大小相若的情況(在缺乏數據的選擇性或者可用的索引時,或者兩個源表都過于龐大(超過記錄數的5%)時,排序合并連接將比嵌套循環連更加高效。但是,排列合并連接只能用于等價連接(WHERE D.deptno=E.dejptno,而不是WHERE D.deptno>=E.deptno)。排列合并連接需要臨時的內存塊,以用于排序(如果SORT_AREA_SIZE設置得太小的話)。這將導致在臨時表空間占用更多的內存和磁盤I/O。)

HASH JOIN在其中一表的連接列上作散列,因此只有另外一個表做排序合并,理論上比SORT JOIN會快些,需要有足夠的內存,而且打開了SORT_JOIN_ENABLE參數。(當缺少有用的索引時,哈希連接比嵌套循環連接更加有效。哈希連接可能比排序合并連接更快,因為在這種情況下只有一張源表需要排序。哈希連接也可能比嵌套循環連接更快,因為處理內存中的哈希表比檢索B_樹索引更加迅速。和排序合并連接、群集連接一樣,哈希連接只能用于等價連接。和排序合并連接一樣,哈希連接使用內存資源,并且當用于排序內存不足時,會增加臨時表空間的I/O(這將使這種連接方法速度變得極慢)。最后,只有基于代價的優化器才可以使用哈希連接。)

BNo2: AUTOTRACE

•set autotrace 使用步驟:

1、以system登錄

2、創建plustrace角色; /sqlplus/admin/plustrce.sql

3、向常規用戶授予權限:grant plustrace to

4、如果沒有plan_table也要創建: /rdbms/admin/utlxplan.sql

• set autotrace 選項

on 顯示查詢結果,執行計劃,統計數據

on statistics 顯示查詢結果,統計數據,不顯示執行計劃

on explain 顯示查詢結果,執行計劃,不顯示統計數據

traceonly 顯示執行計劃和統計結果,但不包括查詢結果

traceonly statistics 僅顯示統計數據

recursive calls 在用戶級別和系統級別上生成的遞歸調用的數量。Oracle維護了一些用于內部處理的表。當oracle需要對這些表進行更改時,它就會在內部生成一個SQL語句,然后這個語句再生成一個遞歸調用。

db block gets 請求一個CURRENT塊的次數

consistent gets 為一塊請求consistent read的次數

physical reads 從磁盤讀取得數據塊總數。這個數量等于“直接物理讀取”的值加上讀入緩沖區的所有數據塊

redo size 生成的重做的總數量(以字節為單位)

bytes sent via SQL * Net to client 從前臺進程發送給客戶的總字節數

bytes received via SQL * Net from client 通過Oracle Net從客戶接收的總字節數

SQL*Net roundtrips to/from client 發送給客戶和從客戶接收的Oracle Net消息的總數

sorts (memory) 完全在內存中執行并且不需要任何磁盤寫入的排序操作的數量

>

db block gets 請求一個CURRENT塊的次數

consistent gets 為一塊請求consistent read的次數

physical reads 從磁盤讀取得數據塊總數。這個數量等于“直接物理讀取”的值加上讀入緩沖區的所有數據塊

redo size 生成的重做的總數量(以字節為單位)

bytes sent via SQL * Net to client 從前臺進程發送給客戶的總字節數

bytes received via SQL * Net from client 通過Oracle Net從客戶接收的總字節數

SQL*Net roundtrips to/from client 發送給客戶和從客戶接收的Oracle Net消息的總數

sorts (memory) 完全在內存中執行并且不需要任何磁盤寫入的排序操作的數量


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩电视剧在线观看免费网站| 日本高清+成人网在线观看| 亚洲男女自偷自拍图片另类| 97视频免费看| 一区二区三区亚洲| 美日韩精品免费观看视频| 国产精品久久久久久av下载红粉| 欧美老女人性生活| 亚洲一区中文字幕| 欧美黄色小视频| 美乳少妇欧美精品| 日韩在线观看免费网站| 日韩经典中文字幕| 精品久久久久久久久中文字幕| 久久全球大尺度高清视频| 日韩在线观看成人| 欧美在线观看一区二区三区| 另类少妇人与禽zozz0性伦| 欧美日韩美女视频| 亚洲欧美在线免费观看| 欧美重口另类videos人妖| 亚洲午夜国产成人av电影男同| 久久深夜福利免费观看| 国产精品视频地址| 色天天综合狠狠色| 久久亚洲精品国产亚洲老地址| 欧美伊久线香蕉线新在线| 成人免费视频xnxx.com| 精品久久久久久中文字幕| 伦理中文字幕亚洲| 欧美xxxx做受欧美| 欧美丰满少妇xxxxx| 亚洲黄页视频免费观看| 九九久久精品一区| 国产国语videosex另类| 岛国av在线不卡| 九色精品美女在线| 国产偷亚洲偷欧美偷精品| 一区二区成人av| 亚洲国产精品va在线看黑人动漫| www.亚洲人.com| 欧美日韩亚洲精品一区二区三区| 青青草国产精品一区二区| 韩国视频理论视频久久| 日韩精品免费一线在线观看| 国产精品白嫩美女在线观看| 欧美精品一区在线播放| 97免费视频在线| 色偷偷888欧美精品久久久| 亚洲最大的网站| 亚洲欧洲中文天堂| 亚洲女人被黑人巨大进入al| 91香蕉嫩草神马影院在线观看| 亚洲电影免费观看高清完整版| 国产色综合天天综合网| 国产在线精品一区免费香蕉| 日韩有码视频在线| 91精品久久久久久久久久| 神马久久桃色视频| 91精品国产综合久久久久久久久| 国产主播欧美精品| 全色精品综合影院| 国产精品直播网红| 亚洲成年网站在线观看| 国产精品福利观看| 91精品中文在线| 亚洲偷熟乱区亚洲香蕉av| 91精品国产色综合久久不卡98| 欧美巨猛xxxx猛交黑人97人| 中文字幕欧美日韩| 亚洲国产黄色片| 在线看日韩欧美| 亚洲精品一区二区久| 欧美激情视频一区| 亚洲伦理中文字幕| 成人福利在线视频| 久久久精品一区二区| 亚洲欧美日本伦理| 亚洲欧美激情四射在线日| 最近2019中文字幕一页二页| 欧美精品电影免费在线观看| 一本大道香蕉久在线播放29| 欧洲美女7788成人免费视频| 九九视频这里只有精品| 精品视频偷偷看在线观看| 国外成人免费在线播放| 91精品国产乱码久久久久久久久| 日韩有码在线视频| 欧美久久精品一级黑人c片| 91超碰中文字幕久久精品| 国产精品日韩欧美| 国产精品狼人色视频一区| 欧美极品少妇xxxxⅹ喷水| 亚洲自拍欧美色图| 亚洲欧洲日本专区| 国产精品第一视频| 亚洲成人1234| 欧美在线观看视频| 国产成人精品视频| 国产精品爽爽爽爽爽爽在线观看| 超碰91人人草人人干| 成人福利网站在线观看11| 亚洲精品电影网| 国产精品igao视频| 中文日韩在线观看| 日韩精品视频观看| 韩国19禁主播vip福利视频| 91视频免费网站| 欧美裸体xxxx极品少妇| 亚洲国语精品自产拍在线观看| 国产欧美在线视频| 69视频在线免费观看| 国产精品成人免费视频| 九九热r在线视频精品| 久久久久久噜噜噜久久久精品| 午夜精品久久久久久99热软件| 国内外成人免费激情在线视频网站| 菠萝蜜影院一区二区免费| 欧美人与性动交a欧美精品| www.日本久久久久com.| 97视频免费在线观看| 欧美另类交人妖| 国产日韩欧美在线播放| 国产成人精品一区二区| 久久久久久久影视| 色天天综合狠狠色| 国产视频在线观看一区二区| 久久精品国产欧美亚洲人人爽| 日本午夜人人精品| 亚洲视频在线观看视频| 久久中文字幕视频| 亚洲国产91色在线| 国产精品精品久久久| 亚洲风情亚aⅴ在线发布| 欧美日韩精品二区| 国产精品一香蕉国产线看观看| 中文字幕日韩精品有码视频| 国产精品福利片| 粗暴蹂躏中文一区二区三区| 最近2019年中文视频免费在线观看| 国产又爽又黄的激情精品视频| 欧美激情在线播放| 欧美黄色www| 日韩av在线精品| 亚洲天堂av女优| 91av视频在线免费观看| 九九热这里只有在线精品视| 亚洲精品美女久久| 国产精品福利在线观看| 中文字幕亚洲无线码在线一区| 精品久久久久人成| 亚洲天堂成人在线视频| 久久99久久99精品中文字幕| 欧美成人精品三级在线观看| 亚洲自拍偷拍色图| 2023亚洲男人天堂| 久久久久久久久久亚洲| 日韩成人黄色av| 日韩欧美成人区| 91嫩草在线视频| 国产91精品久久久久久久| 欧美老少做受xxxx高潮| 国产主播在线一区| 国产欧美日韩视频|