如何讓他們在測試環境和生產環境之間保持同步?你把你的索引放在源碼控制中嗎?
當涉及到數據庫表的索引時,我的理念是它們是編寫查詢數據庫的任何代碼的必要組成部分。在不分析對索引的影響的情況下,您不能引入新的查詢或更改查詢。
因此,我盡我所能讓所有環境中的索引保持同步,但說實話,我在自動化方面做得並不好。這是一種偶然的手動過程。
我週期性地查看索引統計信息並刪除不必要的索引。我通常通過創建一個刪除腳本來完成此操作,然後將其複製回其他環境。
但是這裏和那裏的索引是在正常流程之外創建和刪除的,並且很難看出差異在哪裏。
我發現一件事情,真正幫助是去用簡單的,數字索引的名字,像
idx_t_01
idx_t_02
其中T是一臺很短的縮寫。我發現索引維護是不可能的,當我試圖聰明地涉及所有列時,例如,
idx_c1_c2_c5_c9_c3_c11_5
這很難區分這樣的索引。
有沒有人有一個很好的方法來將索引維護集成到源代碼管理和開發生命週期中?
有一個體面的數據庫,這應該不重要,它的優化器/規劃師的工作,以決定是否要使用索引或不。 您應該在所有環境中使用它,否則在生產之前可能看不到索引維護所導致的性能問題。 – 2008-09-30 14:01:42