성능 모니터링 및 튜닝Monitor and Tune for Performance

데이터베이스 모니터링의 목표는 서버의 성능을 평가하는 것입니다.The goal of monitoring databases is to assess how a server is performing. 효과적인 모니터링을 위해서는 현재 성능에 대한 스냅숏을 정기적으로 만들어 문제를 일으키는 프로세스를 격리하고 데이터를 지속적으로 수집하여 성능 경향을 추적해야 합니다.Effective monitoring involves taking periodic snapshots of current performance to isolate processes that are causing problems, and gathering data continuously over time to track performance trends.

지속적인 데이터베이스 성능 평가를 수행하면 응답 시간을 최소화하고 처리량을 최대화할 수 있으므로 성능이 최적화됩니다.Ongoing evaluation of the database performance helps you minimize response times and maximize throughput, yielding optimal performance. 효율적인 네트워크 소통량, 디스크 I/O 및 CPU 사용량을 통해 성능을 최적화할 수 있습니다.Efficient network traffic, disk I/O, and CPU usage are key to peak performance. 응용 프로그램 요구 사항을 완벽하게 분석하고, 데이터의 논리적 및 물리적 구조를 이해하고, 데이터베이스 사용량을 평가하고, OLTP(온라인 트랜잭션 처리) 및 의사 결정 지원과 같이 서로 상충되는 상황인 경우 타협점을 찾아야 합니다.You need to thoroughly analyze the application requirements, understand the logical and physical structure of the data, assess database usage, and negotiate tradeoffs between conflicting uses such as online transaction processing (OLTP) versus decision support.

데이터베이스 성능 모니터링 및 튜닝Monitoring and tuning databases for performance

Microsoft SQL ServerSQL Server 및 Microsoft Windows 운영 체제에서는 데이터베이스의 현재 상태를 확인하고 상태 변화에 따른 성능을 추적하는 유틸리티를 제공합니다.Microsoft SQL ServerSQL Server and the Microsoft Windows operating system provide utilities to view the current condition of the database and track performance as conditions change. MicrosoftMicrosoft SQL ServerSQL Server를 모니터링하는 데 사용할 수 있는 다양한 도구와 기술이 있습니다.There are a variety of tools and techniques you can use to monitor MicrosoftMicrosoft SQL ServerSQL Server. SQL ServerSQL Server 를 모니터링하면 다음 작업에 도움이 됩니다.Monitoring SQL ServerSQL Server helps you:

  • 성능을 향상시킬 수 있는지 알 수 있습니다.Determine whether you can improve performance. 예를 들어 자주 사용하는 쿼리의 응답 시간을 모니터링하면 테이블에 있는 쿼리나 인덱스에 대한 변경이 필요한지 알 수 있습니다.For example, by monitoring the response times for frequently used queries, you can determine whether changes to the query or indexes on the tables are required.

  • 사용자 작업을 평가할 수 있습니다.Evaluate user activity. 예를 들어 SQL ServerSQL Server인스턴스에 연결을 시도하는 사용자를 모니터링하여 보안 설정이 적당한지 확인하고 응용 프로그램이나 개발 시스템을 테스트할 수 있습니다.For example, by monitoring users trying to connect to an instance of SQL ServerSQL Server, you can determine whether security is set up adequately and test applications or development systems. 예를 들어 SQL 쿼리의 실행을 모니터링하면 쿼리가 올바르게 작성되었는지, 결과를 제대로 생성하는지 알 수 있습니다.For example, by monitoring SQL queries as they are executed, you can determine whether they are written correctly and producing the expected results.

  • 문제를 해결하거나 저장 프로시저와 같은 응용 프로그램 구성 요소를 디버깅할 수 있습니다.Troubleshoot problems or debug application components, such as stored procedures.

동적 환경의 모니터링Monitoring in a dynamic environment

조건을 변경하면 성능이 변경됩니다.Changing conditions result in changing performance. 평가를 통해 사용자 수 증가, 사용자 액세스 및 연결 방법 변경, 데이터베이스 내용 증가, 클라이언트 응용 프로그램 변경, 응용 프로그램의 데이터 변경, 쿼리 복잡성 증가, 네트워크 소통량 증가 등에 따라 성능이 바뀌는 것을 알 수 있습니다.In your evaluations, you can see performance changes as the number of users increases, user access and connection methods change, database contents grow, client applications change, data in the applications changes, queries become more complex, and network traffic rises. 도구를 사용하여 성능을 모니터링하면 변경된 조건 및 복잡한 쿼리에 성능 변경 내용을 연결할 수 있습니다.Using tools to monitor performance helps you associate changes in performance with changing conditions and complex queries. 예::Examples::

  • 자주 사용하는 쿼리의 응답 시간을 모니터링하면 쿼리를 실행할 테이블에 있는 쿼리나 인덱스 변경이 필요한지 여부를 확인할 수 있습니다.By monitoring the response times for frequently used queries, you can determine whether changes to the query or indexes on the tables where the queries execute are required.

  • Transact-SQLTransact-SQL 쿼리를 실행할 때 모니터링하면 쿼리가 올바르게 작성되며 결과가 예상대로 나타나는지 여부를 확인할 수 있습니다.By monitoring Transact-SQLTransact-SQL queries as they are executed, you can determine whether the queries are written correctly and producing the expected results.

  • SQL ServerSQL Server인스턴스에 연결을 시도하는 사용자를 모니터링하면 보안 설정이 적절한지 여부를 확인하고 응용 프로그램이나 개발 시스템을 테스트할 수 있습니다.By monitoring users that try to connect to an instance of SQL ServerSQL Server, you can determine whether security is set up adequately and test applications or development systems.

    응답 시간이란 쿼리가 처리됨을 시각적 확인 형식으로 사용자에게 반환하기 위해 설정된 결과의 첫 행에 필요한 시간의 길이를 말합니다.Response time is the length of time required for the first row of the result set to be returned to the user in the form of visual confirmation that a query is being processed. 처리량이란 지정한 시간 동안 서버에서 처리한 총 쿼리 수를 말합니다.Throughput is the total number of queries handled by the server during a specified period of time.

    사용자 수가 증가하면 서버 리소스에 대한 경쟁도 증가하여 응답 시간은 증가하고 전체 처리량은 감소됩니다.As the number of users increases, so does the competition for a server's resources, which in turn increases response time and decreases overall throughput.

모니터링 및 성능 튜닝 태스크Monitoring and performance tuning tasks

항목Topic 태스크Task
SQL Server 구성 요소 모니터링Monitor SQL Server Components 모든 SQL Server 구성 요소를 모니터링하는 데 필요한 단계입니다.Required steps to monitor any SQL Server component.
성능 모니터링 및 튜닝 도구Performance Monitoring and Tuning Tools SQL Server에서 사용할 수 있는 모니터링 및 튜닝 도구를 나열합니다.Lists the monitoring and tuning tools available with SQL Server.
성능 기준선 설정Establish a Performance Baseline 성능 기준선 설정 방법How to establish a performance baseline.
성능 문제 격리Isolate Performance Problems 데이터베이스 성능 문제를 격리합니다.Isolate database performance problems.
병목 상태 식별Identify Bottlenecks 서버 성능을 모니터링하고 추적하여 병목 상태를 식별합니다.Monitor and track server performance to identify bottlenecks.
서버 성능 및 작업 모니터링Server Performance and Activity Monitoring SQL ServerSQL Server 와 Windows 성능 및 활동 모니터링 도구를 사용합니다.Use SQL ServerSQL Server and Windows performance and activity monitoring tools.
실행 계획 표시 및 저장Display and Save Execution Plans 실행 계획을 XML 형식으로 파일에 표시하고 저장합니다.Display and save execution plans to a file in XML format.
활성 쿼리 통계Live Query Statistics 쿼리 실행 단계에 대한 실시간 통계를 표시합니다.Display real-time statistics about query execution steps.
쿼리 저장소를 사용하여 성능 모니터링Monitoring Performance By Using the Query Store 쿼리 저장소를 사용하여 쿼리, 계획 및 런타임 통계의 기록을 자동으로 캡처하고 사용자 검토를 위해 보관합니다.Use Query Store to automatically capture a history of queries, plans, and runtime statistics, and retain these for your review.
메모리 내 OLTP와 쿼리 저장소 사용Using the Query Store with In-Memory OLTP 메모리 액세스에 최적화된 테이블에 대한 고려 사항Considerations for Memory-Optimized tables.
쿼리 저장소에 대한 모범 사례Best Practice with the Query Store 쿼리 저장소를 사용하는 방법에 대한 조언입니다.Advice on using the Query Store.

참고 항목See also

기업 내 관리 자동화 Automated Administration Across an Enterprise
데이터베이스 엔진 튜닝 관리자 Database Engine Tuning Advisor
리소스 사용 모니터링(시스템 모니터) Monitor Resource Usage (System Monitor)
SQL Server 프로파일러SQL Server Profiler