sp_updatestats (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure
É executado UPDATE STATISTICS
em todas as tabelas internas e definidas pelo usuário no banco de dados atual.
Para obter mais informações sobre UPDATE STATISTICS
o , consulte ATUALIZAR ESTATÍSTICAS. Para obter mais informações sobre estatísticas, consulte Estatísticas.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_updatestats [ [ @resample = ] 'resample' ]
Valores do código de retorno
0
(sucesso) ou 1
(falha).
Argumentos
@resample [ = ] 'reamostragem'
Especifica que sp_updatestats
usa a RESAMPLE
opção da instrução UPDATE STATISTICS . Se resample
não for especificado, sp_updatestats
atualiza as estatísticas usando a amostragem padrão. O resample
argumento é varchar(8) com um valor padrão de NO
.
Comentários
sp_updatestats
executa UPDATE STATISTICS
, especificando a ALL
palavra-chave, em todas as tabelas internas e definidas pelo usuário no banco de dados. sp_updatestats
exibe mensagens que indicam seu progresso. Quando a atualização é concluída, ela relata que as estatísticas são atualizadas para todas as tabelas.
sp_updatestats
Atualiza estatísticas sobre índices não clusterizados desabilitados e não atualiza estatísticas sobre índices clusterizados desabilitados.
Para tabelas baseadas em disco, sp_updatestats
atualiza as modification_counter
estatísticas com base nas informações na exibição do catálogo sys.dm_db_stats_properties , atualizando as estatísticas em que pelo menos uma linha é modificada. As estatísticas em tabelas com otimização de memória são sempre atualizadas durante a execução do sp_updatestats
. Portanto, não execute sp_updatestats
mais do que o necessário.
sp_updatestats
pode disparar uma recompilação de procedimentos armazenados ou outro código compilado. No entanto, sp_updatestats
pode não causar uma recompilação, se apenas um plano de consulta for possível para as tabelas referenciadas e os índices nelas. Uma recompilação será desnecessária nesses casos mesmo que as estatísticas sejam atualizadas.
sp_updatestats
preserva a opção mais recente NORECOMPUTE
para estatísticas específicas. Para obter mais informações sobre como desabilitar e reabilitar atualizações de estatísticas, veja Estatísticas.
Ao restaurar um banco de dados para o SQL Server 2022 (16.x) de uma versão anterior, você deve executar sp_updatestats
no banco de dados. Isso está relacionado à configuração de metadados adequados para o recurso de descarte automático de estatísticas introduzido no SQL Server 2022 (16.x). O recurso de descarte automático está disponível no Banco de Dados SQL do Azure, na Instância Gerenciada de SQL do Azure e a partir do SQL Server 2022 (16.x).
Permissões
Para SQL Server, você deve ser o proprietário do banco de dados (dbo) ou um membro da função de servidor fixa sysadmin .
Para o Banco de Dados SQL do Azure, você deve ser membro da função de banco de dados fixa db_owner .
Exemplos
O exemplo a seguir atualiza as estatísticas de todas as tabelas do banco de dados:
USE AdventureWorks2022;
GO
EXEC sp_updatestats;
Índice automático e gerenciamento de estatísticas
Use soluções, como Adaptive Index Defrag, para gerenciar de forma automática a desfragmentação do índice e as atualizações de estatísticas para um ou mais bancos de dados. Esse procedimento escolhe automaticamente se deseja recompilar ou reorganizar um índice de acordo com o nível de fragmentação, entre outros parâmetros, e realizar a atualização de estatísticas com um limite linear.
Conteúdo relacionado
- Procedimentos armazenados do sistema (Transact-SQL)
- Opções de ALTER DATABASE SET (Transact-SQL)
- CREATE STATISTICS (Transact-SQL)
- DBCC SHOW_STATISTICS (Transact-SQL)
- DROP STATISTICS (Transact-SQL)
- sp_autostats (Transact-SQL)
- sp_createstats (Transact-SQL)
- sys.dm_db_stats_properties
- UPDATE STATISTICS (Transact-SQL)