當前位置:首頁 » 操作系統 » 查看資料庫性能

查看資料庫性能

發布時間: 2025-01-14 00:06:03

① 如何檢查oracle資料庫性能

這種問題要回答好要求知識比較全面。
1 從操作系統層次上看
看CPU 內存 swqp(交換分區)等使用率
2 從磁碟上看
主要看磁碟讀寫。可以用dd測磁碟讀寫的速度 也可以在業務高峰期檢測磁碟的速率。
3 從資料庫本身來看。
先要看資料庫各個參數的值 。 如sga的大小,process的大小,redo日誌的個數與大小等這些關繫到性能的參數是否設置合理。
長期觀察的方式就是看各個時期的AWR報告。裡面有各種性能指標,以及按執行時間或資源排列的sql ,以及各種等待時間的排名。從這裡面可以掌握資料庫的長期的性能變化。
即時觀察的方式就是利用各種sql 查詢 資料庫在當前時間的各個性能指標(AWR報告裡面的各種指標也都是通過sql查詢出來的)
還有對資料庫整體的一個檢查:
如 表的大小,表是否需要分區而沒有分區,索引是否創建,索引是否失效,開發人員寫的sql是否正確使用到了索引,頻繁使用的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性能監控,大家可以在網上搜索相關知識進行學習。


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

熱點內容
struts源碼學習 發布:2025-01-14 04:02:28 瀏覽:685
李根資料庫 發布:2025-01-14 03:44:52 瀏覽:341
php資料庫刪除 發布:2025-01-14 03:35:51 瀏覽:293
上傳進度條代碼 發布:2025-01-14 03:32:01 瀏覽:638
電腦怎樣創建文件夾 發布:2025-01-14 03:31:20 瀏覽:658
王朝腳本 發布:2025-01-14 03:26:08 瀏覽:175
dcloud源碼 發布:2025-01-14 03:26:00 瀏覽:301
梅林IPTV腳本 發布:2025-01-14 03:23:46 瀏覽:633
c語言if語句執行順序 發布:2025-01-14 03:22:19 瀏覽:990
浙江大學c語言答案 發布:2025-01-14 03:18:53 瀏覽:666