3

我想修改sp_helpindex系統過程,或者更換爲我的版本。是否可以修改系統存儲過程?

的原因是:

  • 顯示index_id的
  • 顯示包含的列
  • 顯示過濾器定義
  • 顯示填充因子
  • 顯示索引大小
  • 顯示堆信息以及

另外,有趣的是,我的版本表現更好(更快,讀取更少,沒有光標)。

我嘗試以下,但這些都不工作:

  • sp_rename
  • ALTER過程
  • 下降過程

錯誤Invalid object name 'sys.sp_helpindex'.

的只有我能選擇現在想想只是添加一個新的程序,而不是替換existin G。但是,有一個缺點。我希望sp_help(這又稱爲sp_helpindex)能夠無縫地接受我的更改,因此每個在服務器上使用Alt + F1的人都會看到更改,而不會更改每個客戶端上的默認SSMS密鑰快捷方式。

+0

有趣的問題。無論如何,錯誤爲什麼引用'sp_helpindex'而不是'sp_helptext'? – user2864740

+0

我認爲這更適合數據庫管理員 - http://dba.stackexchange.com –

回答

5

不,您不能修改任何系統過程。你可以創建你自己的,然後調用它;您只需要給它一個不同的sp_名稱,將其標記爲系統對象,而不是將其放入sys架構中。

哦,而不是從頭開始創建自己的,Kimberly Tripp has constantly been evolving her own version, updated for new features,當然你應該抓住Kendra Little's sp_BlitzIndex。你可能會發現你不需要寫任何東西,因爲很多其他人已經改造了這個輪子,並且做得很好。

+0

是的,創建一個新的proc是我能想到的唯一解決方案(正如我在問題中提到的)。此外,Kimberly的proc正是我開始使用的,並且意識到它不符合我的要求,它不顯示填充因子,index_id或大小。另外,我的解決方案執行的代碼更好,代碼更少,更容易維護,因爲沒有遊標。 –