SQL Azure数据库大小 - 内部表plan_persist_plan

时间:2015-09-08 15:07:46

标签: azure azure-sql-database

我们的SQL Azure数据库存在问题,因为它们会增加大小,主要是因为一个内部系统表 - plan_persist_plan。

在其中一个总数 400Mb 的数据库中, plan_persist_plan 表单独表示 310Mb ,其余主要是用户表和索引。

我们使用以下查询计算数据库大小:

SELECT sum(reserved_page_count)*8.0/1024 FROM sys.dm_db_partition_stats 

要了解每个对象的大小,我们使用:

SELECT OBJECT_NAME(object_id), reserved_page_count*8.0/1024, * FROM sys.dm_db_partition_stats order by reserved_page_count desc

任何人都可以解释一下:

  1. 此表的目的 - plan_persist_plan?
  2. 我们如何控制它的大小并可能缩小它?

1 个答案:

答案 0 :(得分:1)

通过实验,我看到的是plan_persist_plan是Query Store内部的一部分。禁用并清除查询存储后,此表中没有数据。启用查询存储,我立即看到添加到表中的数据,并随着我运行的查询的增长而增长。然后我禁用了Query Store,并且plan_persist_plan中的信息仍然存在。然后我清除了Query Store并且信息消失了。

我认为你计算的大小有点不对劲。默认情况下,查询存储的最大值为100mb。除非你改变了,否则我看不出它是如何存储300mb的。

如果您想尝试此操作,请运行:

ALTER DATABASE MyDB SET QUERY_STORE CLEAR;

替换您的数据库名称。