我们的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
任何人都可以解释一下:
答案 0 :(得分:1)
通过实验,我看到的是plan_persist_plan是Query Store内部的一部分。禁用并清除查询存储后,此表中没有数据。启用查询存储,我立即看到添加到表中的数据,并随着我运行的查询的增长而增长。然后我禁用了Query Store,并且plan_persist_plan中的信息仍然存在。然后我清除了Query Store并且信息消失了。
我认为你计算的大小有点不对劲。默认情况下,查询存储的最大值为100mb。除非你改变了,否则我看不出它是如何存储300mb的。
如果您想尝试此操作,请运行:
ALTER DATABASE MyDB SET QUERY_STORE CLEAR;
替换您的数据库名称。