当前的数据库或我们的项目本月已超过 40 GB,平均每月增长约 3 GB。现在,所有表都已最佳规范化,并且已使用正确的索引。但随着规模的增长,即使是像“select count(1) from table”这样的基本查询,也需要更多的时间来触发。那么您能否分享一些在这方面有帮助的更多观点。数据库是Sql Server 2005。此外,如果我们实现分区,是否会产生开销?
提前致谢。
- 确保你有合适的/适当的索引
- 确保您有良好的索引维护策略(例如重建/碎片整理/保持统计信息最新以确保索引保持良好的性能)
- 识别性能不佳的查询并优化它们(可能是针对小数据量编写/测试的,而性能问题不会出现)
- 考虑对数据进行分区(例如,如果您有企业版,则 SQL 2005 及更高版本内置了对分区的支持)。编辑:为了详细说明 SQL Server 分区,我强烈建议通读this http://msdn.microsoft.com/en-us/library/ms345146(SQL.90).aspx有关原因和方法的 MSDN 文章。总而言之,Randy Shoup(eBay 架构师)在 QCon 2008 上也发表了一篇关于可扩展性的精彩演讲,其中扩展系统的关键点之一就是分区。总结了一下here http://www.infoq.com/articles/ebay-scalability-best-practices.
- 您的数据库服务器硬件足够吗?它可以从更多的内存中受益吗?编辑:查看您的硬件信息评论,我认为您可以(至少)在其中投入更多内存
- 您可能会从一些非规范化中受益。在不知道确切的数据库结构的情况下很难具体化,但非规范化可能会以数据重复/磁盘空间为代价来改进某些查询
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)