我们的Server 2016标准(SP2 CU6)数据库上的查询存储已进入ERROR状态,我们现在正试图将其恢复联机。我看到的关于QS疑难解答的所有文章(例如这一个,甚至微软自己的文档)都建议这样做:
ALTER DATABASE [QDS] SET QUERY_STORE = OFF
exec [QDS].dbo.sp_query_store_consistency_check
ALTER DATABASE [QDS] SET QUERY_STORE = ON
ALTER DATABASE [QDS] SET QUERY_STORE (OPERATION_MODE = READ_WRITE)但是在我们的实例中,过程sp_query_store_consistency_check似乎并不以任何形式存在。我们少了什么?
发布于 2019-05-07 15:41:24
与其他与查询存储相关的DMV、函数等类似,sp_query_store_consistency_check位于"sys“模式中,而不是dbo模式中。我想这只是特蕾西博客上的一个错误。尽管如此,即使在引用dbo模式时,该命令也应该工作。
您还需要从启用查询存储的用户数据库中调用该过程。试试这个:
USE YourDatabaseName;
GO
EXEC sys.sp_query_store_consistency_check;托尼在注释中提到,他在任何地方都找不到存储过程定义。这是典型的扩展存储过程。在它上运行EXEC sp_helptext 'sys.sp_query_store_consistency_check';,即使是从DAC连接上运行,也会返回以下内容:
Text
-----------------
(server internal)不过,您可以在sys.all_objects中看到它:
SELECT
[name],
[type_desc],
is_ms_shipped
FROM sys.all_objects
WHERE [name] LIKE '%consistency%';结果:
name type_desc is_ms_shipped
--------------------------------- ------------------------- -------------
sp_query_store_consistency_check EXTENDED_STORED_PROCEDURE 1我的错,我刚刚意识到你是在Server 2016。上述过程是在Server 2017中介绍的。
我所知道的使查询商店在2016年恢复到良好状态的唯一方法是清除所有数据:
ALTER DATABASE [YourDatabaseName]
SET QUERY_STORE CLEAR ALL;https://dba.stackexchange.com/questions/237521
复制相似问题