저장한 워크로드에 대해 Tuning Advisor를 실행했습니다. 권장 사항에는 많은 생성 통계와 몇 가지 생성 인덱스가 있습니다. 인덱스가 성능을 향상시킬 것이라는 것은 알고 있지만 통계 수집이 어떻게 성능 향상에 도움이 되는지 설명할 수 있는 사람이 있습니까?
답변1
매우 높은 수준에서는 SQL Server의 쿼리 최적화 프로그램이 문 실행에 대한 최선의 방법을 결정할 수 있도록 통계가 유지됩니다. 각 작업에 대해 실행 계획이 생성되며 통계는 작업을 완료하는 데 사용할 가장 효율적인 실행 계획을 결정하는 데 도움이 됩니다.
이 주제에 관해 엄청나게 많은 정보가 있습니다. 그러나 조정 제안을 구현하기 전에 해당 제안이 수행하는 작업을 완전히 확인해야 합니다. 예를 들어, 인덱스를 추가하면 성능이 향상된다는 것이 항상 보장되는 것은 아닙니다. 때로는 그 효과가 부정적일 때도 있습니다. 하지만 통계를 최신 상태로 유지하는 것은 매우 중요한 부분입니다.
다음은 쿼리 최적화 프로그램이 SQL 2008에서 사용하는 통계를 설명하는 MSDN 문서입니다.
Microsoft SQL Server 2008의 쿼리 최적화 프로그램에서 사용되는 통계
또한 다음 전문가가 제공하는 내용을 읽어 보시기 바랍니다.
답변2
SQL 서버Tuning Advisor는 다양한 방법으로 데이터베이스 튜닝을 가능하게 하는 Microsoft SQL Server 시스템용으로 특별히 설계된 도구입니다. 개인이나 기업의 필요에 따라 온라인 및 오프라인 튜닝 애플리케이션 모두에서 사용할 수 있습니다. 인덱스와 같은 다양한 요소를 조정하여 전반적인 검색 성능을 크게 향상시키는 기능이 있습니다. 또한 파티션과 인덱스를 생성 또는 삭제하고 작업을 최대한 빠르게 진행하도록 설계된 방식으로 이러한 유형의 요소를 수정하여 SQL Server를 최적화하는 데 사용할 수도 있습니다.
통계를 수집하면 여러 가지 이유로 SQL Server Tuning Advisor의 성능이 향상됩니다. 이러한 통계 자체는 데이터와 값이 테이블 열 전체에 분산되거나 인덱싱된 뷰에 분산되는 방식과 관련된 정보로 구성된 개체입니다. 필요한 통계가 수집되면 SQL Server 튜닝 관리자는 해당 정보를 사용하여 특정 쿼리 결과의 행 수를 추정합니다. 추정을 "카디널리티 추정"이라고 하며, 이 정보를 통해 애플리케이션은 품질이 높은 쿼리 계획을 생성할 수 있습니다. 이렇게 하면 쿼리가 전통적으로 실행되는 방식에 비해 상당한 성능 향상이 나타납니다.
SQL Server Tuning Advisor를 사용하여 SQL Server의 성능을 향상시키는 것은 인덱싱을 허용하여 Microsoft Windows 운영 체제의 "검색" 기능을 향상시키는 것과 개념적으로 유사합니다. SQL Server 튜닝 관리자가 통계를 사용하여 쿼리 결과가 어떤 모습일지 예측할 수 있다면 통계가 전혀 없을 때보다 더 빠르게 결과를 생성할 수 있습니다. 더 빠른 쿼리 결과는 전반적으로 더 원활한 작업 환경을 제공합니다.