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

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、循化網(wǎng)站維護、網(wǎng)站推廣。
1、查詢每臺機器的連接數(shù)
select?t.MACHINE,count(*)?from?v$session?t?group?by?t.MACHINE
這里所說的每臺機器是指每個連接oracle數(shù)據(jù)庫的服務(wù)器,每個服務(wù)器都有配置連接數(shù)據(jù)庫的連接數(shù),以websphere為例,在數(shù)據(jù)源中,每個數(shù)據(jù)源都有配置其最大/最小連接數(shù)。
執(zhí)行SQL后,可以看到每個服務(wù)器連接oracle數(shù)據(jù)庫的連接數(shù),若某個服務(wù)器的連接數(shù)非常大,或者已經(jīng)達到其最大連接數(shù),那么這臺服務(wù)器上的應用可能有問題導致其連接不能正常釋放。
2、查詢每個連接數(shù)的sql_text
v$session表里存在的連接不是一直都在執(zhí)行操作,如果sql_hash_value為空或者0,則該連接是空閑的,可以查詢哪些連接非空閑,?web3?是機器名,就是WebSphere?Application?Server?的主機名。
select?t.sql_hash_value,t.*??from?v$session?t?where?t.MACHINE='web3'?and?t.sql_hash_value!=0
這個SQL查詢出來的結(jié)果不能看到具體的SQL語句,需要看具體SQL語句的執(zhí)行下面的方法。
3、查詢每個活動的連接執(zhí)行什么sql
select?sid,username,sql_hash_value,b.sql_text
from?v$session?a,v$sqltext?b
where?a.sql_hash_value?=?b.HASH_VALUE?and?a.MACHINE='web3'
order?by?sid,username,sql_hash_value,b.piece
order?by這句話的作用在于,sql_text每條記錄不是保存一個完整的sql,需要以sql_hash_value為關(guān)鍵id,以piece排序,如圖
Username是執(zhí)行SQL的數(shù)據(jù)庫用戶名,一個sql_hash_value下的SQL_TEXT組合成一個完整的SQL語句。這樣就可以看到一個連接執(zhí)行了哪些SQL。
4、.從V$SQLAREA中查詢最占用資源的查詢
select?b.username?username,a.disk_reads?reads,?a.executions?exec,
a.disk_reads/decode(a.executions,0,1,a.executions)?rds_exec_ratio,
a.sql_text?Statement
from??v$sqlarea?a,dba_users?b
where?a.parsing_user_id=b.user_id
and?a.disk_reads??100000
order?by?a.disk_reads?desc;
用buffer_gets列來替換disk_reads列可以得到占用最多內(nèi)存的sql語句的相關(guān)信息。
V$SQL是內(nèi)存共享SQL區(qū)域中已經(jīng)解析的SQL語句。
該表在SQL性能查看操作中用的比較頻繁的一張表,關(guān)于這個表的詳細信息大家可以去?上學習,介紹得比較詳細。我這里主要就將該表的常用幾個操作簡單介紹一下:
1、列出使用頻率最高的5個查詢:
select?sql_text,executions
from?(select?sql_text,executions,
rank()?over
(order?by?executions?desc)?exec_rank
from?v$sql)
where?exec_rank?=5;
該查詢結(jié)果列出的是執(zhí)行最頻繁的5個SQL語句。對于這種實用非常頻繁的SQL語句,我們需要對其進行持續(xù)的優(yōu)化以達到最佳執(zhí)行性能。
2、找出需要大量緩沖讀取(邏輯讀)操作的查詢:
select?buffer_gets,sql_text
from?(select?sql_text,buffer_gets,
dense_rank()?over
(order?by?buffer_gets?desc)?buffer_gets_rank
from?v$sql)
where?buffer_gets_rank=5;
這種需要大量緩沖讀取(邏輯讀)操作的SQL基本是大數(shù)據(jù)量且邏輯復雜的查詢中會遇到,對于這樣的大數(shù)據(jù)量查詢SQL語句更加需要持續(xù)的關(guān)注,并進行優(yōu)化。
3、持續(xù)跟蹤有性能影響的SQL。
SELECT?*?FROM?(
SELECT?PARSING_USER_ID,EXECUTIONS,SORTS,
COMMAND_TYPE,DISK_READS,sql_text?FROM?v$sqlarea
ORDER?BY?disk_reads?DESC
)
WHERE?ROWNUM10
這個語句在SQL性能查看中用的比較多,可以明顯的看出哪些SQL會影響到數(shù)據(jù)庫性能。
本文主要介紹了使用SQL查詢方式查看oracle數(shù)據(jù)庫SQL性能的部分常用方法。此外還有許多工具也能實現(xiàn)SQL性能監(jiān)控,大家可以在網(wǎng)上搜索相關(guān)知識進行學習。
轉(zhuǎn)載僅供參考,版權(quán)屬于原作者
首先 數(shù)據(jù)庫的性能有很多種 1:速度性能2:并發(fā)性能3:事務(wù)性能 在速度性能上,首先你需要首先確定你的測試環(huán)境。舉個例子,比如你的軟件可能的用戶群是一群使用586電腦的客戶,那么肯定是mysql的效率要高出oracle.這個是為什么呢,mysql在事務(wù)策略和安全策略上做的工作遠沒有oracle做出的多。如果軟件不需要這方面的高要求,那么完全可以使用mysql,這樣機器的配置可以比較低,但是表現(xiàn)出的性能會更加優(yōu)越。 前面是題外話,在測試前你需要首先頂一下你的測試環(huán)境,為了能讓oracle充分的表現(xiàn)出他的性能,你應該選取一些強勁的小型機或者服務(wù)器來作為測試環(huán)境(雖然這樣的環(huán)境對于mysql來說可能浪費了,但是這樣才能確保2個數(shù)據(jù)庫都充分的發(fā)揮的自己的特性)。 其次,測試訪問速度,你可以通過對數(shù)據(jù)庫的大批量寫入來看出效果。所謂大批量寫入應該嘗試使用存儲過程一次讀入了10M的數(shù)據(jù)文件然后寫入并且記錄時間(同時記錄cpu,內(nèi)存等占用情況)。然后對于至少2個超過10萬的數(shù)據(jù)表做笛卡爾積查詢(全連接),查看查詢的時間。
這種問題要回答好要求知識比較全面。
1 從操作系統(tǒng)層次上看
看CPU 內(nèi)存 swqp(交換分區(qū))等使用率
2 從磁盤上看
主要看磁盤讀寫。可以用dd測磁盤讀寫的速度 也可以在業(yè)務(wù)高峰期檢測磁盤的速率。
3 從數(shù)據(jù)庫本身來看。
先要看數(shù)據(jù)庫各個參數(shù)的值 。 如sga的大小,process的大小,redo日志的個數(shù)與大小等這些關(guān)系到性能的參數(shù)是否設(shè)置合理。
長期觀察的方式就是看各個時期的AWR報告。里面有各種性能指標,以及按執(zhí)行時間或資源排列的sql ,以及各種等待時間的排名。從這里面可以掌握數(shù)據(jù)庫的長期的性能變化。
即時觀察的方式就是利用各種sql 查詢 數(shù)據(jù)庫在當前時間的各個性能指標(AWR報告里面的各種指標也都是通過sql查詢出來的)
還有對數(shù)據(jù)庫整體的一個檢查:
如 表的大小,表是否需要分區(qū)而沒有分區(qū),索引是否創(chuàng)建,索引是否失效,開發(fā)人員寫的sql是否正確使用到了索引,頻繁使用的sql是否有綁定變量,有頻繁大批量增刪改的表是否存在高水位。。。
額 總之,這個話題涉及的知識非常多,盡可能多的學習一些東西,祝你好運。
本文題目:怎么判斷oracle性能 oracle cpu使用率
當前路徑:http://chinadenli.net/article46/hjoehg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、移動網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、定制開發(fā)、響應式網(wǎng)站、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)