我试图了解提高客户给我的查询性能的最佳方法。它包含几个连接的表,其中一个被称为dwh.fac_sale_detail
包含 15 亿行的表。
该表dwh.fac_sale_detail
根据其名为 的列之一进行分区TradingDateKey1
。它实际上以 yyyymmdd 格式存储数据,但它是INT
Datatype。
这有从 2005 年到 2015 年的 TradingDateKeys,但分区只创建到 2014 年。
另一个团队中的一个人提出了以下建议,我正在尝试遵循他的建议,但我是创建或更改分区的新手,不知道这是否真的会对查询性能产生任何影响:
他用他自己的话来说是“该FactSalesDetail
表目前大约有 15 亿行,目前TradingDate
按年划分为 10 个分区,每个分区大约有 1.5 亿行。最好将最近一年进一步划分为月分区并在所有分区上应用列存储索引。在每个分区上应用索引将是一次性的,您应该只需要维护当前分区的索引。”
这是我尝试优化的查询的查询计划。
另请参阅随附的屏幕截图以更好地理解: