-1

我有一个 SQL Server 2008 数据库,有一个包含 50 列的表。主键是日期时间。没有进一步的标准化,它只是一个表格,每几秒存储一次来自不同传感器的值,所以是整数和小数。所以现在,在过去的一个月里,我插入了近 560k 行。我的问题是,我什么时候会开始看到由于数据过多而导致的性能问题?

更具体地说:到目前为止,我的要求是显示(在图表中)上个月(不是这个问题的问题)。如果我总是只在上个月从数据库中获取一个由 PK 过滤的查询(如此索引),那么表有多大是否重要?

Ups,长篇大论 :) 感谢您的输入!

4

3 回答 3

1

只需确保您对表运行的任何查询都在进行索引搜索,而不是扫描或表扫描。您可以让 SSMS 生成一个查询计划来告诉您这一点。只要执行搜索,您可能有数亿行并且仍然具有出色的性能。

于 2012-10-31T13:17:04.400 回答
1

如果您的表每月增长 500k+,这将迅速增长为一个大表:一年内您将拥有 6M+ 行。即使您需要的查询看起来很简单并使用索引 PK 过滤数据,我认为您可能会遇到性能问题。

例如,您可能需要对数据(计数、总和)运行聚合查询,提供与前几个月的比较,或显示过去 x 个月的趋势演变。

你可能会考虑:

  • 清除策略,删除旧数据;
  • 构建指标表,汇总图表所需的汇总信息。
于 2012-10-31T13:30:39.323 回答
1

除了上面的一些建议,为了帮助减少 IO 流失,我建议确保日期字段 (PK) 是聚集索引。这样,上个月的所有记录都应该是连续的并且易于访问。

于 2012-10-31T14:04:35.617 回答