sql – 存档超过1,000,000,000行的巨大表的最佳实践

前端之家收集整理的这篇文章主要介绍了sql – 存档超过1,000,000,000行的巨大表的最佳实践前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用sql Server 2005.有一个审计跟踪表,包含超过1,000,000行.我打算将此表归档.当我使用nolock进行简单的选择时,我仍然可以找到阻塞(可能是IO阻塞与其他进程?).那么这种情况有什么最好的做法吗?

解决方法

对于一个大的表,您将希望找到一些有效的分片/分区策略.在这种意义上,归档往往是一种分区形式,但不是一种好的归档,因为你经常想要查询当前和归档.在最糟糕的情况下,你最终会在归档和当前表的UNION上使用SELECT,这比你根本没有拆分它们更糟糕.

通常会找到一些其他方法来对数据进行切片,例如记录类型或其他内容,这样做会更好.但是,如果您要按日期拆分它,请确保您不会查询存档当前数据集.

此外,sql Server 2005默认情况下不启用MVCC.但是,如果启用MS调用快照隔离,则可以执行此操作.见Serializable vs. Snapshot Isolation Level.

未启用此功能效果是,未提交的INSERT或UPDATE将阻止另一个事务中的SELECT,直到第一个事务提交或回滚为止.这可能会导致不必要的锁定并限制您的可伸缩性.

原文链接:https://www.f2er.com/mssql/78532.html

猜你在找的MsSQL相关文章