我们的一个Azure SQL数据库最近用完了空间,我认为这导致了Query Store切换到" 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
我尝试通过运行此语句(作为数据库服务器管理员用户)将Query Store状态更改为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查询存储转换为READ-WRITE,以便再次收集性能统计信息?
答案 0 :(得分:1)
首先,让我们尝试清除查询存储:
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
在以下文章的this上尝试更多选项来解决此问题: