我有一个SQL Server 2008数据库,其中包含一个包含apprx 50列的表。主键是日期时间。没有进一步规范化,它只是一个表,每隔几秒就存储来自不同传感器的值,所以整数和小数。 所以现在,在过去的一个月里,我已经插入了近560k行。 我的问题是,由于数据太多,我何时会开始看到性能问题?
更具体一点: 到目前为止,我的要求是显示(在图表中)上个月(这个问题不是问题)。如果我总是在上个月从数据库中获取,那么由PK过滤的查询(如此索引),表格的大小是否重要?
Ups,长吼:)感谢输入!
答案 0 :(得分:1)
只需确保针对您的表运行的任何查询都在进行索引搜索,而不是扫描或表扫描。您可以让SSMS生成一个可以告诉您的查询计划。只要正在进行搜索,您就可能拥有数亿行并且仍然具有出色的性能。
答案 1 :(得分:1)
如果您的桌子每月增长500k +,这将很快变成一张大桌子:一年内你将有6M +行。即使您需要的查询看起来很简单并使用索引PK过滤数据,我认为您可能会遇到性能问题。
例如,您可能需要对数据(计数,总和)运行汇总查询,提供与前几个月的比较,或显示过去x个月的趋势演变。
您可以考虑:
答案 2 :(得分:1)
除了上面的一些建议,为了帮助缓解IO流失,我建议确保日期字段(PK)是群集索引。这样,上个月的所有记录都应该是连续的并且易于访问。