我们的一个Azure SQL数据库最近空间不足,我相信这导致查询存储切换到"READ_ONLY"。
我增加了数据库的大小,但是即使运行此查询,这也没有导致状态更改:
SELECT desired_state_desc, actual_state_desc, readonly_reason, current_storage_size_mb, max_storage_size_mb
FROM sys.database_query_store_options
建议有足够的可用空间:
desired_state_desc actual_state_desc readonly_reason current_storage_size_mb max_storage_size_mb
READ_WRITE READ_ONLY 524288 522 1024
我尝试通过运行以下语句(作为数据库服务器管理员用户)将查询存储状态更改为Read_Write:
ALTER DATABASE [QueryStoreDB]
SET QUERY_STORE (OPERATION_MODE = READ_WRITE)
但是,该语句失败,出现以下错误:
User does not have permission to alter database 'QueryStoreDB', the database does not exist, or the database is not in a state that allows access checks.
是否有人管理将SQL Azure查询存储切换到读写,以便再次开始收集性能统计信息?
首先,让我们尝试清除查询存储:
ALTER DATABASE [QueryStoreDB]
SET QUERY_STORE CLEAR;
GO
如果这不起作用,让我们运行一致性检查。
ALTER DATABASE [DatabaseOne] SET QUERY_STORE = OFF;
GO
sp_query_store_consistency_check
GO
ALTER DATABASE [DatabaseOne] SET QUERY_STORE = ON;
GO
在以下文章中尝试更多选项来解决此问题: