我们有一个巨大的SQL Server 2005数据库(75GB),这基本上是在一个表的销售值仅仅是数据(每天,存储和文章)。我们希望通过将每年超过一年的记录的每周销售价值累计起来(仍按每个商店和文章分组)。因此,理论上对于一年以上的数据,我们可以删除6条记录中的6条。战略上保持巨大的数据库
写程序做,这是不是一个真正的问题,但它运行像永远。所以我一直在寻找一种可以让这款游戏在合理时间内运行的策略。
为了给你一个想法:运行SELECT count(*)
跑了,4分钟内
我们确实有一些指标(对日期(集群),并在商店,物品和日期组合)。添加更多索引也需要永远。
任何人都得到了关于如何执行此任务的一个好策略? TSQL方法的任何建议比基本的DML语句执行得更好?
你有没有考虑分片? – moodywoody
不是一个真正的选择。数据越来越多,许多功能依赖于统计信息。不应该触摸架构... – Koen
要提升性能或减少使用的磁盘空间吗?你需要保持数据的粒度吗? COUNT将始终需要时间,例如http://stackoverflow.com/questions/6069237/fastest-way-to-count-exact-number-of-rows-in-a-very-large-table/6069288#6069288此表格为当时的200GB + – gbn