sp_updatestats(Transact-SQL)

적용 대상:SQL ServerAzure SQL Database

현재 데이터베이스의 모든 사용자 정의 및 내부 테이블에 대해 실행됩니다 UPDATE STATISTICS .

자세한 UPDATE STATISTICS내용은 UPDATE STATISTICS(Transact-SQL)를 참조 하세요. 통계에 대한 자세한 내용은 통계를 참조하세요.

Transact-SQL 구문 표기 규칙

구문

sp_updatestats [ [ @resample = ] 'resample' ]

반환 코드 값

0 (성공) 또는 1 (실패).

인수

[ @resample = ] 'resample'

UPDATE STATISTICS 문의 옵션을 사용하는 것을 sp_updatestats 지정합니다.RESAMPLE resample 지정 sp_updatestats 하지 않으면 기본 샘플링을 사용하여 통계를 업데이트합니다. 인수는 resample 기본값NO.인 varchar(8)입니다.

설명

sp_updatestatsUPDATE STATISTICS데이터베이스의 ALL 모든 사용자 정의 및 내부 테이블에서 키워드(keyword) 지정하여 를 실행합니다. sp_updatestats 는 진행률을 나타내는 메시지를 표시합니다. 업데이트가 완료되면 모든 테이블에 대한 통계가 업데이트되었다고 보고합니다.

sp_updatestats 비활성화된 비클러스터형 인덱스에 대한 통계를 업데이트하고 비활성화된 클러스터형 인덱스에 대한 통계를 업데이트하지 않습니다.

디스크 기반 테이블 sp_updatestats 의 경우 sys.dm_db_stats_properties 카탈로그 뷰의 modification_counter 정보를 기반으로 통계를 업데이트하여 하나 이상의 행이 수정된 통계를 업데이트합니다. 메모리 최적화 테이블에 대한 통계는 실행할 sp_updatestats때 항상 업데이트됩니다. 따라서 필요 이상으로 실행 sp_updatestats 하지 마세요.

sp_updatestats 는 저장 프로시저 또는 다른 컴파일된 코드의 다시 컴파일을 트리거할 수 있습니다. 그러나 sp_updatestats 참조된 테이블과 해당 테이블의 인덱스에 대해 하나의 쿼리 계획만 가능한 경우 다시 컴파일되지 않을 수 있습니다. 이러한 경우 통계가 업데이트되더라도 다시 컴파일이 필요하지 않습니다.

sp_updatestats 는 특정 통계에 대한 최신 NORECOMPUTE 옵션을 유지합니다. 통계 업데이트를 비활성화하고 다시 활성화하는 방법은 통계를 참조하세요.

이전 버전에서 SQL Server 2022(16.x)로 데이터베이스를 복원하는 경우 데이터베이스에서 실행 sp_updatestats 해야 합니다. 이는 SQL Server 2022(16.x)에 도입된 통계 자동 삭제 기능에 대한 적절한 메타데이터 설정과 관련이 있습니다. 자동 삭제 기능은 Azure SQL Database, Azure SQL Managed Instance에서 사용할 수 있으며 SQL Server 2022(16.x)부터 사용할 수 있습니다.

사용 권한

SQL Server의 경우 데이터베이스(dbo)의 소유자이거나 sysadmin 고정 서버 역할의 멤버여야 합니다.

Azure SQL Database의 경우 db_owner 고정 데이터베이스 역할의 멤버여야 합니다.

예제

다음 예제에서는 데이터베이스의 모든 테이블에 대한 통계를 업데이트합니다.

USE AdventureWorks2022;
GO
EXEC sp_updatestats;

자동 인덱스 및 통계 관리

적응형 인덱스 조각 모음과 같은 솔루션을 사용하여 하나 이상의 데이터베이스에 대한 인덱스 조각 모음 및 통계 업데이트를 자동으로 관리합니다. 이 절차에서는 다른 매개 변수 중에서 조각화 수준에 따라 인덱스를 다시 작성하거나 다시 구성할지 여부를 자동으로 선택하고 선형 임계값으로 통계를 업데이트합니다.