Temos um servidor SQL Server 2016 SP1 CU7 Enterprise onde habilitamos o repositório de consultas em um banco de dados. Este é um banco de dados muito usado.
O Max Size
foi definido para 200 MB e Stale Query Threshold
é de 1 dia.
Eu costumava sys.database_query_store_options
verificar as propriedades do repositório de consultas e tudo funciona perfeitamente, desde que the current_storage_size_mb
fique abaixo dos 200 MB.
Eu configurei Size Based Cleanup Mode
para Auto, mas nenhuma limpeza acontece, normalmente uma limpeza deve ser acionada quando o repositório de consultas estiver 90% cheio. O que acontece a seguir é que o repositório de consultas entra no modo somente leitura porque não há mais espaço disponível.
Eu tentei mudar Query Store Capture Mode
para Auto, mas nada muda.
Se eu mudar Stale Query Threshold
para 30 dias, as actual_state_desc
mudanças para READ_WRITE e o repositório de consultas começarão a capturar novamente. ocurrent_storage_size_mb
apenas se torna maior que o max_storage_size_mb
e depois de um tempo actual_state_desc
ele volta para READ_ONLY.
Alguém pode explicar esse comportamento?
Há alguns dias atualizei o servidor para SQL Server 2016 SP2 e o problema desapareceu. Agora, quando o querystore atinge 90%, ele é limpo até atingir 80%.
Não sei se o SP2 foi a solução ou foi o reinício do SQL Service devido à atualização.