資料庫中的索引雖然可以大大提升查詢的性能,但是大量冗余的索引和沒使用的索引不僅會導致DML性能降低,而且會造成空間的浪費,Oracle中可以通過索引跟蹤的方法來監控哪些索引是沒被使用的,同樣在pg中我們可以使用下面兩個腳本來對索引進行監控,
1、監控沒被使用的索引
```sql
SELECT
PSUI.indexrelid::regclass AS IndexName
,PSUI.relid::regclass AS TableName
FROM pg_stat_user_indexes AS PSUI
JOIN pg_index AS PI
ON PSUI.IndexRelid = PI.IndexRelid
WHERE PSUI.idx_scan = 0
AND PI.indisunique IS FALSE;
2、監控列上重復的索引
由于pg中允許在同一個列創建多個索引,而大部分情況下都是不需要的,
SELECT
indrelid::regclass AS TableName
,array_agg(indexrelid::regclass) AS Indexes
FROM pg_index
GROUP BY
indrelid
,indkey
HAVING COUNT(*) > 1;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/272054.html
標籤:其他
上一篇:Orcale系統函式的使用集合
下一篇:例外:org.apache.ibatis.exceptions.PersistenceException的出現與解決
