【发布时间】:2010-09-14 06:10:31
【问题描述】:
您如何使它们在测试和生产环境之间保持同步?
当谈到数据库表的索引时,我的理念是它们是编写任何查询数据库的代码的一个组成部分。如果不分析对索引的影响,就不能引入新查询或更改查询。
所以我尽我所能保持我所有环境之间的索引同步,但老实说,我在自动化这方面做得不是很好。这是一种随意的手动过程。
我会定期查看索引统计信息并删除不必要的索引。为此,我通常会创建一个删除脚本,然后将其复制回其他环境。
但有时索引会在正常流程之外创建和删除,很难看出差异在哪里。
我发现真正有用的一件事是使用简单的数字索引名称,例如
idx_t_01
idx_t_02
其中 t 是表格的缩写。当我试图巧妙处理所有涉及的列时,我发现索引维护是不可能的,比如,
idx_c1_c2_c5_c9_c3_c11_5
这样区分索引太难了。
有没有人将索引维护集成到源代码控制和开发生命周期中的真正好方法?
【问题讨论】:
标签: sql database version-control indexing sdlc