使用更大的桌子需要考虑的事项

noj*_*lag 6 performance sql-server-2008 ssrs

我有一个大约有 120 亿行(行大小 32 B)的表,每个月增加 3 亿行。我每个月都设置了分区,每个月都有 8 个数据文件(因为我目前只有 8 个 CPU),用于存储我连接了 SAN 的数据。这台机器(W2008R2 64 位,MSSQL2008R2)有 192 GB RAM,但我仍然觉得在使用聚集索引检索数据时速度很慢。我计划稍后将这些数据与 SSRS 一起使用。我应该考虑什么来提高性能?

Mat*_*t M 6

您提到您对表(技术上的聚集索引)进行了分区。

您的查询是否使用聚集键作为搜索谓词的一部分?如果没有,您将针对分区索引进行扫描,而不是搜索。

你有任何非聚集索引吗?它们也是分区对齐的吗?

您是否调查过您的查询执行计划,以了解在性能不佳的查询背后发生了什么?

您能否发布您的 DDL、示例数据和您的查询,以便我们更好地帮助您?

  • +1 查看执行计划。没有这个,这里的每个人都在猜测。 (3认同)

小智 6

一旦您准备好开始针对该数据构建报告,另一种(或补充)方法就是预先聚合您的数据。如果报表不需要与表相同级别的详细信息,那么最好定期加载到报表将直接连接到的某些快照表或 SSAS 多维数据集。

我怀疑无论您进行多少调整,直接从具有如此大增长的大小的表中报告都会有问题。使用索引和分区进行性能调优只会让您走到这一步,并且如果表主要用于写入或读取,而不是两者兼有,则效果最佳,因为您会有相互冲突的需求。