我最近继承了一个非常大且非常混乱的数据库,需要清理它.为了对大小有所了解,主数据库目前包含3个大表,每个表大约有3亿行,占用大约225GB的存储空间.每天添加超过500万行.
由于磁盘空间不足(前任没有存档旧数据或管理它的大小),我被迫从最大的表中删除了大约2.8亿行.这个过程需要25个多小时才能完成,在此期间需要从面向客户的应用程序中切断数据库.
现在,我需要重新索引表,因为选择和插入需要很长时间.但是,我不能无限期地使数据库脱机,我需要能够估计执行reindex所需的时间.我之前没有重新索引过如此大的表格,所以我没有任何好的参考点可以借鉴.
主表包括一个集群的,单调递增的主键,以及一个非唯一的非集群键.我有足够的磁盘空间来执行reindex.
所以我的问题是这样的:大概这个人会花多长时间?估算重建索引时间有什么好的经验法则?