Partilhar via


sp_updatestats (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseBase de dados SQL no Microsoft Fabric

É 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 STATISTICSo , consulte UPDATE STATISTICS. Para obter mais informações sobre estatísticas, consulte Statistics.

Transact-SQL convenções de sintaxe

Sintaxe

sp_updatestats [ [ @resample = ] 'resample' ]

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Argumentos

@resample [ = ] «nova amostragem»

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.

Observações

sp_updatestats UPDATE STATISTICSExecuta , 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, ele informa que as estatísticas são atualizadas para todas as tabelas.

sp_updatestats Atualiza estatísticas sobre índices não clusterizados desativados e não atualiza estatísticas sobre índices clusterizados desativados.

Para tabelas baseadas em disco, sp_updatestats atualiza as modification_counter estatísticas com base nas informações na exibição de catálogo sys.dm_db_stats_properties , atualizando estatísticas onde pelo menos uma linha é modificada. As estatísticas sobre tabelas com otimização de memória são sempre atualizadas durante a execução sp_updatestatsdo . Portanto, não execute sp_updatestats mais do que o necessário.

sp_updatestats pode acionar 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. Nestes casos, seria desnecessária uma recompilação, mesmo que as estatísticas fossem atualizadas.

sp_updatestats preserva a opção mais recente NORECOMPUTE para estatísticas específicas. Para obter mais informações sobre como desativar e reativar atualizações de estatísticas, consulte 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). No Banco de Dados SQL do Azure, na Instância Gerenciada SQL do Azure e no SQL Server 2022 (16.x) e versões posteriores, as estatísticas criadas automaticamente sempre se comportam como se o AUTO_DROP tivesse sido definido.

Permissões

Para o 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

EXECUTE sp_updatestats;

Gestão automática de índices e estatísticas

Use soluções como Adaptive Index Defrag para gerenciar automaticamente a desfragmentação de índice e atualizações de estatísticas para um ou mais bancos de dados. Este procedimento escolhe automaticamente se deseja reconstruir ou reorganizar um índice de acordo com seu nível de fragmentação, entre outros parâmetros, e atualizar as estatísticas com um limite linear.