sys.sp_persistent_version_cleanup (Transact-SQL)
Aplica-se a: SQL Server 2019 (15.x) Banco de Dados SQL do AzureInstância Gerenciada SQL do Azure
Inicia manualmente o processo de limpeza do armazenamento de versão persistente (PVS), um elemento-chave da recuperação acelerada do banco de dados (ADR). Esse limpador reverte dados não confirmados no PVS de transações abortadas.
Normalmente, não é necessário iniciar o processo de limpeza PVS manualmente usando sys.sp_persistent_version_cleanup
. No entanto, em alguns cenários, em um período conhecido de repouso/recuperação após a atividade OLTP ocupada, convém iniciar o processo de limpeza PVS manualmente.
Para obter mais informações sobre ADR, consulte Accelerated database recovery.
Transact-SQL convenções de sintaxe
Sintaxe
sp_persistent_version_cleanup
[ [ @dbname = ] N'dbname' ]
[ , [ @scanallpages = ] scanallpages ]
[ , [ @clean_option = ] clean_option ]
[ ; ]
Argumentos
[ @dbname = ] N'dbname'
Opcional. O nome do banco de dados a ser limpo. Se não for fornecido, usa o contexto do banco de dados atual.
@dbname é sysname, com um padrão de NULL
.
[ @scanallpages = ] scanallpages
Opcional.
@scanallpages é pouco, com um padrão de 0
. Quando definida como 1
, essa opção força a limpeza de todas as páginas do banco de dados, mesmo que não tenham versão.
[ @clean_option = ] clean_option
Opcional. As opções possíveis determinam se a página PVS fora da linha deve ou não ser recuperada.
@clean_option é int, com um padrão de 0
. Essa referência geralmente não é necessária e o valor padrão 0
é recomendado.
Valor | Descrição |
---|---|
0 |
Padrão, nenhuma opção especificada |
1 |
armazenamento de versão fora da linha sem verificar o conteúdo da página PVS individual |
2 |
armazenamento de versão off-row com cada página PVS visitada |
3 |
apenas armazenamento de versão em linha |
4 |
apenas para uso interno |
Valores de código de retorno
0
(sucesso) ou 1
(fracasso).
Conjunto de resultados
Nenhuma.
Permissões
Requer a permissão ALTER
no banco de dados.
Comentários
O procedimento armazenado sys.sp_persistent_version_cleanup
é síncrono, o que significa que ele não é concluído até que todas as informações de versão sejam limpas do PVS atual.
No SQL Server 2019 (15.x), o processo de limpeza PVS só é executado para um banco de dados de cada vez. No Banco de Dados SQL do Azure e na Instância Gerenciada SQL do Azure, e a partir do SQL Server 2022 (16.x), o processo de limpeza do PVS pode ser executado em paralelo em vários bancos de dados na mesma instância.
Se o processo de limpeza do PVS já estiver em execução no banco de dados desejado, esse procedimento armazenado será bloqueado antes de iniciar outro processo de limpeza do PVS. Transações ativas e de longa execução em qualquer banco de dados na mesma instância do mecanismo de banco de dados que tenham o ADR habilitado também podem bloquear a limpeza do PVS.
Você pode monitorar a tarefa de limpeza de versão procurando seu processo com a seguinte consulta de exemplo:
SELECT *
FROM sys.dm_exec_requests
WHERE command LIKE '%PERSISTED_VERSION_CLEANER%';
Se o ADR estiver desativado, execute sys.sp_persistent_version_cleanup
para limpar versões anteriores ainda no PVS.
Exemplos
Para ativar o processo de limpeza PVS manualmente entre cargas de trabalho ou durante as janelas de manutenção, use o seguinte script de exemplo:
EXEC sys.sp_persistent_version_cleanup [database_name];
Por exemplo:
EXEC sys.sp_persistent_version_cleanup [WideWorldImporters];
Ou, para assumir o contexto atual do banco de dados:
USE [WideWorldImporters];
GO
EXEC sys.sp_persistent_version_cleanup;
Conteúdo relacionado
- de recuperação acelerada do banco de dados
- Solucionar problemas de recuperação acelerada de banco de dados
- Gerencie a recuperação acelerada do banco de dados