Whi*_*ght 6 indexing sql-server sql-server-2005
最近继承了一个很大很乱的数据库,需要清理一下。为了了解大小,主数据库目前包含 3 个大表,每个表大约有 3 亿行,占用大约 225GB 的存储空间。每天添加超过 500 万行。
由于严重的磁盘空间不足(前任根本没有归档旧数据或管理它的大小),我被迫从最大的表中删除了大约 2.8 亿行。这个过程需要 25 多个小时才能完成,在此期间数据库需要与面向客户的应用程序断开连接。
现在,我需要重新索引表,因为选择和插入需要很长时间。但是,我不能无限期地使数据库脱机,我需要能够估计执行重新索引所需的时间。我以前从未重新索引过这么大的表,所以我真的没有任何好的参考点可以利用。
主表包括一个聚集的、单调递增的主键,以及一个非唯一的非聚集键。我有足够的磁盘空间来执行重新索引。
所以我的问题是:人们大约需要多长时间才能做到这一点?估计重新索引时间的好的经验法则是什么?
无法估计需要多长时间——很多不同的事情都会产生影响。与Paul 所写的关于 CHECKDB 长度的内容类似,非常相似的事情也会在索引等方面发挥作用。最好的答案是过去花了多长时间?如果您无法确定这一点,下一个最佳选择可能是在类似的非生产环境中尝试它,但即使这样也不一定匹配(即并发问题等会有所不同)。
作为旁注,您可能想查看 Sql 2005 及更高版本中的在线索引操作...我无法添加第二个超链接,但谷歌搜索“在线索引操作 sql server”并单击顶部链接。
归档时间: |
|
查看次数: |
33018 次 |
最近记录: |