當前位置:首頁 » 編程語言 » oracle查看sql執行效率
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle查看sql執行效率

發布時間: 2022-04-25 19:11:56

⑴ oracle sql的執行效率問題

能具體一點或者
有具體的sql語句嗎?
getName(a.id)
是在分頁條件之前就執行了。
select
t2.*,getName(a.id)
from
(select
t1.*,
rownum
rn
from
(select
a.id
from
a,
where
a.year
=
'2012'
order
by
a.time)
t1
where
rownum
<=
80)
t2
where
t2.rn
>=
61

⑵ oracle資料庫sql語句執行效率問題

方法1.如果表中的數據量較大,可以通過time建立分區,再通過條件建立內部索引。
方法2.建立一張和該表一模一樣的表(表2),用來存放每個業務的最大業務時間。建立觸發器,沒次插入數據時更新表2中的業務發生最大時間,最後關聯查詢。

⑶ 如何測試oracle sql的執行效率

要分析SQL的效能,最好是看看執行計劃什麼怎麼走的,根據你具體業務邏輯以及表中數據量來具體分析.在pl/sql developer 里是按f5

⑷ 誰教我怎麼在PLSQL看執行計劃還有看執行效率

不知道你使用的是什麼執行工具

如果是si object browser 的話,就在執行的右邊有一個按鈕。先點一下這個按鈕。然後再實行。下面會有執行的效果分析。比如cost,byte數,但是這些只是作為一個參考,關鍵還是在具體的應用中,根據實際的執行時間來判斷哪些index的效率高。千萬別以為cost高就是花費的時間多,這是誤區。

⑸ oracle 一個簡單的sql語句執行效率的比較

比較一下的話,語句一查詢次數是兩次,而語句二隻有一次,我們盡量減少查詢次數。
語句一其實就是二的另一種實現,其效果是和語句一相同,但多了很多中間不必要的步驟,所以肯定優先選擇二。

至於SQL效率問題多看看別人總結的經驗會很快了解,多看執行計劃。
查看執行計劃在SQL PLUS下可以用:explain sql語句;
PLSQL DEVELOPTER下可以寫好語句直接按F5;

我們通常知道使用索引要比全表好,使用索引的時候,ORACLE先通過索引快速找到記錄的物理地址,然後再通過物理地址找到記錄。全表則是直接掃描所有記錄,找到想要的,看起來慢多了,但它少了通過索引查找物理地址這一步,所以在有些情況下可能要比索引快,比如表裡的記錄很少。

綁定變數,你可以參考:
http://..com/question/298893776?&oldq=1

還有子查詢,group by,in,not in,很多人都說盡量不用,其實這些都不能一概而論,要看具體的實際情況,參考執行計劃,根據需要去選擇,千萬別有偏見

⑹ oracle怎麼查看sql語句效率

最直接的辦法就是打開sql_trace:
alter
session
set
sql_trace=true;(要dba許可權)
然後到伺服器上追蹤文件裡面查看這個session執行了哪些sql,不過這是session級的.
也可以使用系統級的.
對系統性能有影響

⑺ oracle怎麼查看sql執行計劃

一般需要藉助第三方工具來查看執行計劃。

工具:PL/SQL

步驟:

1、打開第三方工具PL/SQL,並登錄到指定資料庫。

⑻ oracle如何查出歷史記錄中執行效率低的SQL語句

如果你用的是oracle 10g的話,這個有種很簡單的方法就是查看awr報告。

很簡單,你登陸到伺服器的操作系統,進入到$ORACLE_HOME/rdbms/admin目錄下。然後sqlplus "/as sysdba"登陸到資料庫,執行
@awrrpt.sql;
然後按照提示一步一步做,注意格式選html(這樣方便你閱讀)。最後會讓你命名這個文件。

完了之後,你把那個文件拷貝到本地用IE打開就看到了。裡面有很詳細的,包括這段時間佔CPU,IO,等等最嚴重的SQL排行。很好很強大。
-------------------------

至於你說查看當前的sql,你在v$session里查看長期blocking別人的session ID,然後根據這個session id從v$text里就能查到這個sql了。

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

很明確了吧

⑼ 如何查詢oracle 資料庫性能,sql資源佔用

作為一個開發/測試人員,或多或少都得和資料庫打交道,而對資料庫的操作歸根到底都是SQL語句,所有操作到最後都是操作數據,那麼對sql性能的掌控又成了我們工作中一件非常重要的工作。下面簡單介紹下一些查看oracle性能的一些實用方法:

1、查詢每台機器的連接數

selectt.MACHINE,count(*)fromv$sessiontgroupbyt.MACHINE

這里所說的每台機器是指每個連接oracle資料庫的伺服器,每個伺服器都有配置連接資料庫的連接數,以websphere為例,在數據源中,每個數據源都有配置其最大/最小連接數。

執行SQL後,可以看到每個伺服器連接oracle資料庫的連接數,若某個伺服器的連接數非常大,或者已經達到其最大連接數,那麼這台伺服器上的應用可能有問題導致其連接不能正常釋放。

2、查詢每個連接數的sql_text

v$session表裡存在的連接不是一直都在執行操作,如果sql_hash_value為空或者0,則該連接是空閑的,可以查詢哪些連接非空閑,web3是機器名,就是WebSphereApplicationServer的主機名。

selectt.sql_hash_value,t.*fromv$sessiontwheret.MACHINE='web3'andt.sql_hash_value!=0

這個SQL查詢出來的結果不能看到具體的SQL語句,需要看具體SQL語句的執行下面的方法。

3、查詢每個活動的連接執行什麼sql

selectsid,username,sql_hash_value,b.sql_text

fromv$sessiona,v$sqltextb

wherea.sql_hash_value=b.HASH_VALUEanda.MACHINE='web3'

orderbysid,username,sql_hash_value,b.piece

orderby這句話的作用在於,sql_text每條記錄不是保存一個完整的sql,需要以sql_hash_value為關鍵id,以piece排序,如圖

Username是執行SQL的資料庫用戶名,一個sql_hash_value下的SQL_TEXT組合成一個完整的SQL語句。這樣就可以看到一個連接執行了哪些SQL。

4、.從V$SQLAREA中查詢最佔用資源的查詢

selectb.usernameusername,a.disk_readsreads,a.executionsexec,

a.disk_reads/decode(a.executions,0,1,a.executions)rds_exec_ratio,

a.sql_textStatement

fromv$sqlareaa,dba_usersb

wherea.parsing_user_id=b.user_id

anda.disk_reads>100000

orderbya.disk_readsdesc;

用buffer_gets列來替換disk_reads列可以得到佔用最多內存的sql語句的相關信息。

V$SQL是內存共享SQL區域中已經解析的SQL語句。

該表在SQL性能查看操作中用的比較頻繁的一張表,關於這個表的詳細信息大家可以去http://apps.hi..com/share/detail/299920#上學習,介紹得比較詳細。我這里主要就將該表的常用幾個操作簡單介紹一下:

1、列出使用頻率最高的5個查詢:

selectsql_text,executions

from(selectsql_text,executions,

rank()over

(orderbyexecutionsdesc)exec_rank

fromv$sql)

whereexec_rank<=5;

該查詢結果列出的是執行最頻繁的5個SQL語句。對於這種實用非常頻繁的SQL語句,我們需要對其進行持續的優化以達到最佳執行性能。

2、找出需要大量緩沖讀取(邏輯讀)操作的查詢:

selectbuffer_gets,sql_text

from(selectsql_text,buffer_gets,

dense_rank()over

(orderbybuffer_getsdesc)buffer_gets_rank

fromv$sql)

wherebuffer_gets_rank<=5;

這種需要大量緩沖讀取(邏輯讀)操作的SQL基本是大數據量且邏輯復雜的查詢中會遇到,對於這樣的大數據量查詢SQL語句更加需要持續的關注,並進行優化。

3、持續跟蹤有性能影響的SQL。

SELECT*FROM(

SELECTPARSING_USER_ID,EXECUTIONS,SORTS,

COMMAND_TYPE,DISK_READS,sql_textFROMv$sqlarea

ORDERBYdisk_readsDESC

)

WHEREROWNUM<10

這個語句在SQL性能查看中用的比較多,可以明顯的看出哪些SQL會影響到資料庫性能。

本文主要介紹了使用SQL查詢方式查看oracle資料庫SQL性能的部分常用方法。此外還有許多工具也能實現SQL性能監控,大家可以在網上搜索相關知識進行學習。


轉載僅供參考,版權屬於原作者

⑽ oracle sql的執行計劃如何查看

方法/步驟

打開PL/SQL Developer軟體,請確保plsql能夠成功連接到一個oracle資料庫。

在PL/SQL Developer中寫好一段SQL代碼,按F5,或者點擊「執行執行計劃」圖標,PL/SQL Developer會自動打開執行計劃窗口,顯示該SQL的執行計劃。

可以看到窗口上方是sql語句,下方顯示執行計劃表格。表格的列主要包含描述、用戶、對象、成本花費、IO開銷等,表格,當然表格列還可以自定義。表格的行包含了查詢邏輯的執行順序和各個步驟信息。

執行計劃表格內容的執行順序是:按照從左至右,從上至下的步驟執行,具體是指執行計劃按照層次逐步縮進,從左至右看,縮進最多的那一步最先執行,如果縮進量相同,則按照從上而下的方法判斷執行順序。

通過查看執行計劃表格的cost列,即成本花費能夠知道哪個步驟花費的成本高,通過查看執行計劃表格的行中的objectname列,能夠知道是否使用到表中的索引。
步驟閱讀
6
本文先簡單介紹在plsql中的使用方法,後續會逐步完成各種理論和技巧的使用方法,例如優化器、表連接訪問方法、索引等