oracle優化

最近項目在作性能測試,在系統知足TPS及併發要求時,數據庫服務器的CPU和內存使用率居高不下,考慮到多是SQL引發的問題,因此執行下面操做linux

1  linux服務器執行TOP命令, 找到佔據內存多的PIDsql

數據庫

SQL>服務器

SELECT 
sql_text
FROM v$sqltext a
WHERE (a.hash_value, a.address) IN
(SELECT DECODE(sql_hash_value, 0, prev_hash_value, sql_hash_value),
DECODE(sql_hash_value, 0, prev_sql_addr, sql_address)
FROM v$session b
WHERE b.paddr =
(SELECT addr FROM v$process c WHERE c.spid = '&pid'))
ORDER BY piece ASCsession

其中&pid 是使用top 查看系統中進程佔用CPU極高的PID
找到SQL語句進行相應的調整優化併發

總結:因爲一個業務場景中,執行了屢次刪除再插入操做,而並無添加索引,形成CPU90%以上性能

在添加完索引後,CPU降低到20%左右測試

相關文章
相關標籤/搜索