【问题标题】:Execution Plan missing Actual Partitions Accessed执行计划缺少实际访问的分区
【发布时间】:2019-03-26 21:24:57
【问题描述】:

使用 Azure Sql 数据库,SQL Server Management Studio V. 18.0 Preview 6(虽然这个问题在我使用 v 17 时存在)。 在查看分区表的执行计划时,我在查看分区聚集索引查找的属性时获得的唯一与分区相关的信息是“Partitioned | True”(XML 版本中也没有)。如this post 所示(作为示例),我在任何地方都看不到“已访问的实际分区”。
为什么它不见了?

【问题讨论】:

  • 你在看实际的执行计划吗?不是估计的或缓存的?

标签: sql-server azure-sql-database ssms


【解决方案1】:

这很奇怪,我使用的是 SSMS 18 Preview 7,我在 Azure 和 SQL 2019 上获得了这些属性(只是作为一个快速测试)。

天蓝色:

SQL 2019:

我用的例子:

CREATE PARTITION FUNCTION pf_test(INT) 
AS RANGE RIGHT FOR VALUES (0)

CREATE PARTITION SCHEME ps_test 
AS PARTITION pf_test ALL TO ([PRIMARY])

CREATE TABLE Foo 
( 
    WorkItem INT NOT NULL 
    , Payload CHAR(300) NOT NULL DEFAULT REPLICATE ('X', 300) 
) ON ps_test(WorkItem)

INSERT INTO Foo (WorkItem) VALUES (-1) 
INSERT INTO Foo (WorkItem) VALUES (-1) 
INSERT INTO Foo (WorkItem) VALUES (2) 
INSERT INTO Foo (WorkItem) VALUES (1) 
INSERT INTO Foo (WorkItem) VALUES (1) 
INSERT INTO Foo (WorkItem) VALUES (2)

SELECT * FROM Foo 
WHERE WorkItem > -1

【讨论】:

  • 感谢脚本;我可能应该包括我自己:/
【解决方案2】:

答案非常简单; @MartinSmith 评论(为什么我不能在这里提及?) - 包括实际的执行计划。

【讨论】:

    猜你喜欢
    • 2011-01-22
    • 2017-08-20
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    • 2020-01-06
    • 1970-01-01
    相关资源
    最近更新 更多