找出冗餘索引的指令碼
檢視資料庫中有無多餘的索引,即一個索引的欄位為另一個索引的前幾個欄位。如index1的定義為test(filed1,filed2),index2的定義為test(filed1,filed2,filed3),則認為index1是多餘的。
[@more@]檢視資料庫中有無多餘的索引,即一個索引的欄位為另一個索引的前幾個欄位。如index1的定義為test(filed1,filed2),index2的定義為test(filed1,filed2,filed3),則認為index1是多餘的。
-------------------------------------------------------------------------------
--
-- Script: redundant_indexes.sql
-- Purpose: to find any redundant indexes
-- For: 8.0 and 8.1
--
-- Copyright: (c) Ixora Pty Ltd
-- Author: Steve Adams
--
-------------------------------------------------------------------------------
column redundant_index format a39
column sufficient_index format a39
select
o1.name||'.'||n1.name redundant_index,
o2.name||'.'||n2.name sufficient_index
from
sys.icol$ ic1,
sys.icol$ ic2,
sys.ind$ i1,
sys.obj$ n1,
sys.obj$ n2,
sys.user$ o1,
sys.user$ o2
where
ic1.pos# = 1 and
ic2.bo# = ic1.bo# and
ic2.obj# != ic1.obj# and
ic2.pos# = 1 and
ic2.intcol# = ic1.intcol# and
i1.obj# = ic1.obj# and
bitand(i1.property, 1) = 0 and
( select
max(pos#) * (max(pos#) + 1) / 2
from
sys.icol$
where
obj# = ic1.obj#
) =
( 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#
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/76065/viewspace-792151/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL使用pt-duplicate-key-checker找出冗餘、重複索引MySql索引
- MySQL 冗餘和重複索引薦MySql索引
- iOS專案冗餘資源掃描指令碼iOS指令碼
- 小白讀iOS冗餘資源掃描指令碼iOS指令碼
- 去除冗餘 – 精簡您的CSS樣式程式碼CSS
- CRC冗餘校驗碼的介紹和實現
- 優化C++程式碼(4):消除冗餘程式碼優化C++
- 網路冗餘技術
- 細說 Azure Storage 的冗餘策略
- 修改ASM磁碟組冗餘模式ASM模式
- 廉價冗餘磁碟陣列陣列
- 如何消除冗餘資料的安全風險?
- MSSQL冗餘欄位的策略和管理SQL
- VS Code 正則匹配(冗餘程式碼批量清理方法)
- 演算法題——冗餘連線演算法
- 有一些冗餘程式碼, 只是實現了功能
- CRC(迴圈冗餘校驗)和CBC(密碼塊鏈)密碼
- 海明碼舉例分析(監督關係與資訊碼 冗餘位)
- 如何刪除Git倉庫中冗餘的tag?Git
- 資料庫設計——冗餘欄位資料庫
- FHRP - 閘道器冗餘協議協議
- 虛擬路由冗餘協議VRRP路由協議VR
- ASM可以更改冗餘度&增加failgroup嗎?ASMAI
- Oracle 找出需要建立索引的表Oracle索引
- SAP CRM Fiori應用冗餘round trip的原因分析
- 資料庫設計之欄位冗餘資料庫
- 一個利用正規表示式進行程式碼重構,去除冗餘程式碼的例子行程
- 批量匯出建立索引的指令碼索引指令碼
- ORACLE分析表和索引的指令碼Oracle索引指令碼
- Java-Annotation的一種用法(消除程式碼中冗餘的if/else或switch語句)Java
- 冗餘程式碼都走開——前端模組打包利器 Rollup.js 入門前端JS
- oracle 索引重建提示指令碼Oracle索引指令碼
- 資料庫效能優化之冗餘欄位的作用資料庫優化
- hadoop之 心跳時間與冗餘快清除Hadoop
- 機器學習中如何用篩選器檢測冗餘?機器學習
- 使用Addressables+SpriteAtlas打包產生冗餘
- 監控mysql索引使用效率的指令碼MySql索引指令碼
- 通過遷移的方式修改ASM磁碟組的冗餘屬性ASM