檢視資料庫中有無多餘的索引

2021-04-17 19:42:04 字數 1293 閱讀 5018

檢視資料庫中有無多餘的索引,即乙個索引的字段為另乙個索引的前幾個字段。如index1的定義為test(filed1,filed2),index2的定義為test(filed1,filed2,filed3),則認為index1是多餘的。(摘自ixora

)

column redundant_index format a39

column sufficient_index format a39

select /*+ ordered */

o1.name||'.'||n1.name redundant_index,

o2.name||'.'||n2.name sufficient_index

from

(select

obj#,

bo#,

count(*) cols,

max(decode(pos#, 1, intcol#)) leadcol#

from

sys.icol$

group by

obj#,

bo#) ic1,

sys.icol$ ic2,

sys.ind$ i1,

sys.obj$ n1,

sys.obj$ n2,

sys.user$ o1,

sys.user$ o2

where

ic2.obj# != ic1.obj# and

ic2.bo# = ic1.bo# and

ic2.pos# = 1 and

ic2.intcol# = ic1.leadcol# and

i1.obj# = ic1.obj# and

bitand(i1.property, 1) = 0 and

ic1.cols * (ic1.cols + 1) / 2 =

( select

sum(xc1.pos#)

from

sys.icol$ xc1,

sys.icol$ xc2

where

xc1.obj# = ic1.obj# and

xc2.obj# = ic2.obj# and

xc1.pos# = xc2.pos# and

xc1.intcol# = xc2.intcol#

) and

n1.obj# = ic1.obj# and

n2.obj# = ic2.obj# and

o1.user# = n1.owner# and

o2.user# = n2.owner#

/

管理調優 檢視資料庫中有無多餘的索引SQL

檢視資料庫中有無多餘的索引,即乙個索引的字段為另乙個索引的前幾個字段。如 index1的定義為 test filed1,filed2 index2的定義為 test filed1,filed2,filed3 則認為 index1是多餘的。摘自 ixora column redundant index...

資料庫 資料庫索引

索引是儲存引擎用於快速找到記錄的一種資料結構。索引以檔案的形式儲存在磁碟中。索引可以包含乙個或多個列的值。儲存引擎查詢資料的時候,先在索引中找對應值,然後根據匹配的索引記錄找到對應的資料行。1.b tree索引 2.雜湊索引 myisam和innodb儲存引擎 只支援btree索引,也就是說預設使用...

資料庫mysql索引 資料庫 mysql索引

mysql 索引 mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。打個比方,如果合理的設計且使用索引的mysql是一輛蘭博基尼的話,那麼沒有設計和使用索引的mysql就是乙個人力三輪車。索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可...