如何检查从SQL SERVER中的分区中检索的数据

时间:2017-11-27 09:15:39

标签: sql sql-server tsql

我在该表上创建了一个分区表和非聚集索引,当我在该表上查询时,它显示了索引查找,但性能没有达到标记。          所以我决定看看SQL SERVER从哪个分区获取数据,因此我查看了Estimated And Actual Execution计划,但我无法看到从哪个分区数据中提取。

(我的意思是如何在获取数据的同时扫描多个分区,我的意图是检查sql server是否正在尝试更正分区)

我不确定下面的图片是否会出现在我的帖子中,因为我的名声较少,请原谅我。

Execution Plan for my Query

enter image description here

Actual Execution Plan of Query

enter image description here

1 个答案:

答案 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);