Oracle中獲取最低效的 topSQL的語句 (引用)
oracle提供了很多工具來查詢最低效的SQL,但是,本質上就是透過如下SQL語句,從相關係統檢視中獲取最低效的SQL:
select rownum as rank, a.*
from (select PARSING_SCHEMA_NAME RUN_USER, --執行使用者
SQL_FULLTEXT, --SQL文字,全,帶格式
sql_text, --SQL文字前面部分
elapsed_Time , --單位是微秒,語句執行完的總時間,包括CPU時間和等待時間
cpu_time , --CPU時間,語句執行的時間
elapsed_Time - cpu_time wait_time,
trunc((elapsed_Time - cpu_time)*100/elapsed_Time,2) "wait_time_per%",--等待時間所佔百分比
executions, --執行次數
elapsed_Time/(executions+1) Per_Time, --每次執行平均時間,
buffer_gets, --
disk_reads, --磁碟讀
hash_value, --SQL的hash_value,以備獲取完整SQL
USER_IO_WAIT_TIME,
SORTS --排序次數
from v$sqlarea t
where elapsed_time > 20000 and PARSING_SCHEMA_NAME<>'SYS'
order by elapsed_time desc) a
where rownum < 21
order by elapsed_time desc
Responsce time = service time + wait time
一個操作的響應時間 = 必要的服務(計算)時間 + 各種等待時間
而在V$SQL中
elapsed_time 代表了執行完畢的時間 , 也就是響應時間,response time,
而cpu_time 代表了執行時消耗的CPU 時間,也就是計算時間,服務時間,service time
所以
elapsed_time = cpu_time + wait_time
有時候可以透過這兩個值的差來衡量這個SQL的wait Time.
當然,有時候可能關心elapsed_time ,有時候則關心cpu_time ,也有時候關心wait Time,取決於實際需求。
這個SQL,務必儲存,掌握這些SQL,比使圖形化工具,要高效方便的多得多! [@more@]
select rownum as rank, a.*
from (select PARSING_SCHEMA_NAME RUN_USER, --執行使用者
SQL_FULLTEXT, --SQL文字,全,帶格式
sql_text, --SQL文字前面部分
elapsed_Time , --單位是微秒,語句執行完的總時間,包括CPU時間和等待時間
cpu_time , --CPU時間,語句執行的時間
elapsed_Time - cpu_time wait_time,
trunc((elapsed_Time - cpu_time)*100/elapsed_Time,2) "wait_time_per%",--等待時間所佔百分比
executions, --執行次數
elapsed_Time/(executions+1) Per_Time, --每次執行平均時間,
buffer_gets, --
disk_reads, --磁碟讀
hash_value, --SQL的hash_value,以備獲取完整SQL
USER_IO_WAIT_TIME,
SORTS --排序次數
from v$sqlarea t
where elapsed_time > 20000 and PARSING_SCHEMA_NAME<>'SYS'
order by elapsed_time desc) a
where rownum < 21
order by elapsed_time desc
Responsce time = service time + wait time
一個操作的響應時間 = 必要的服務(計算)時間 + 各種等待時間
而在V$SQL中
elapsed_time 代表了執行完畢的時間 , 也就是響應時間,response time,
而cpu_time 代表了執行時消耗的CPU 時間,也就是計算時間,服務時間,service time
所以
elapsed_time = cpu_time + wait_time
有時候可以透過這兩個值的差來衡量這個SQL的wait Time.
當然,有時候可能關心elapsed_time ,有時候則關心cpu_time ,也有時候關心wait Time,取決於實際需求。
這個SQL,務必儲存,掌握這些SQL,比使圖形化工具,要高效方便的多得多! [@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24237320/viewspace-1059095/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle中獲取TABLE的DDL語句的方法Oracle
- Oracle獲取資料庫中的物件建立語句Oracle資料庫物件
- Laravel 獲取執行的sql語句LaravelSQL
- oracle中的條件語句Oracle
- 獲取oracle sql語句詳細些執行計劃OracleSQL
- 被oracle搞死的部分語句(持續更新中)Oracle
- Mysql 獲取表設計查詢語句MySql
- ORACLE中sql語句----運算子的優先順序OracleSQL
- ORACLE常用語句:Oracle
- php一句話獲取獲取檔案目錄的方法PHP
- PostgreSQL獲取建表語句儲存過程SQL儲存過程
- jQuery獲取class相同的div中的最後一個jQuery
- ?快速掌握vue3新語法(三) - setup中獲取元素引用(ref)Vue
- Oracle 建立序列語句Oracle
- Oracle基本SQL語句OracleSQL
- 找到Oracle資料庫中效能最差的查詢語句BSOracle資料庫
- python中for語句讀取生成器Python
- Mysql中的DQL語句MySql
- JavaScript中的switch語句JavaScript
- Javascript中的label語句JavaScript
- Oracle常用的系統查詢語句整理Oracle
- 查詢Oracle正在執行的sql語句及執行該語句的使用者OracleSQL
- 獲取當前js檔案被引用的路徑JS
- Oracle中如何查詢未使用繫結變數的SQL語句?Oracle變數SQL
- SQL語句在oracle資料庫中的初級應用(上)SQLOracle資料庫
- ORACLE 資料庫 查詢語句與DML語句Oracle資料庫
- SQL查詢語句 (Oracle)SQLOracle
- php中return語句的使用PHP
- java中的switch case語句Java
- MySQL中explain語句的使用MySqlAI
- MYSQL---SQL語句的資料快取MySql快取
- SQL Server中獲取資料庫名、表名、欄位名和欄位註釋的SQL語句SQLServer資料庫
- 18 與Oracle Data Guard 相關的SQL語句OracleSQL
- 利用WITH MOVE語句獲取資料庫邏輯檔名BG資料庫
- Oracle中獲取主機名和IP地址Oracle
- 解決程式碼中重複的捕獲 promise 錯誤的 try catch 語句Promise
- oracle檢視物件DDL語句Oracle物件
- oracle資料庫常用語句Oracle資料庫
- 【LOB】Oracle lob管理常用語句Oracle