我在该表上创建了一个分区表和非聚集索引,当我在该表上查询时,它显示了索引查找,但性能没有达到标记。 所以我决定看看SQL SERVER从哪个分区获取数据,因此我查看了Estimated And Actual Execution计划,但我无法看到从哪个分区数据中提取。
(我的意思是如何在获取数据的同时扫描多个分区,我的意图是检查sql server是否正在尝试更正分区)
我不确定下面的图片是否会出现在我的帖子中,因为我的名声较少,请原谅我。
答案 0 :(得分:1)
我认为您可以使用$PARTITION
功能(文档here)来获取您的目标。实质上,您将它与分区函数和该分区函数的参数一起调用,它将返回一个分区号。
例如,假设我有一个使用名为PF_Orders__date_created的分区函数在date_created上按月分区的Orders表我可以编写以下查询来获取分区数据集中行的直方图: / p>
select $PARTITION.PF_Orders__date_created(date_created),
count(*)
from dbo.Orders
group by $PARTITION.PF_Orders__date_created(date_created)
order by $PARTITION.PF_Orders__date_created(date_created);