적절한 SQL Server 구성 설정을 결정하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 319942 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR319942
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 다음 구성 설정과 이를 사용할 때의 고려 사항을 설명합니다.
  • 선호도 마스크
  • 경량 풀링
  • 최대 비동기 IO
  • 최대 작업자 스레드
  • 메모리
  • 우선 순위 높이기
  • 작업 집합 크기 설정
SQL Server는 상대적으로 약간의 구성 조정만으로 매우 높은 수준의 성능을 얻을 수 있습니다. 우수한 응용 프로그램과 데이터베이스 디자인을 사용하면 광범위한 구성 조정을 거치지 않고도 높은 수준의 성능을 얻을 수 있습니다. 다양한 SQL Server 성능 문제를 해결하는 방법은 이 문서의 "참조" 절을 참조하십시오.

성능 문제를 처리할 때 시스템이 현재 적절히 구성되어 있으면 대개 구성 조정을 통해 적당한 수준의 성능 향상을 얻을 수 있습니다. SQL Server 버전 7.0 이상에서는 SQL Server가 자동 구성 조정 기능을 사용하므로 구성 설정, 특히 고급 설정을 변경해야 하는 경우는 극히 드뭅니다. 일반적으로 확실한 이유와 구성 변경의 필요성을 확인하는 신중한 조직적 테스트 없이는 SQL Server 구성을 변경하지 마십시오. 구성을 변경하기 전에 구성 변경 후 얻을 수 있는 이점을 확인하는 기준을 설정해야 합니다.

SQL Server가 제대로 구성되어 있지 않으면 일부 설정으로 인해 서버가 불안정해지거나 SQL Server가 이상하게 작동할 수 있습니다. 다양한 환경에서 수년 동안 지원해온 경험에 비추어 볼 때 기본값이 아닌 구성 설정을 사용하면 보통 이하의 나쁜 결과가 발생할 수 있습니다.

구성을 변경할 경우에는 변경 전후에 엄격한 조직적 성능 테스트를 수행하여 성능이 어느 정도나 향상되는지 평가해야 합니다.

실제 지원 경험에 비추어 볼 때 SQL Server 버전 7.0 이상에서는 구성을 수동으로 조정하지 않고도 매우 높은 수준의 성능을 얻을 수 있습니다.

SQL Server 7.0 이상에서는 사용자 연결, 잠금열린 개체에 대한 구성 변경을 수행하지 마십시오. 그 이유는 SQL Server가 기본적으로 이러한 설정을 동적으로 조정하기 때문입니다.

선호도 마스크

선호도 마스크 설정은 스레드가 특정 CPU에 얼마나 확실하게 바인딩되어 있는지를 나타냅니다. 기본적으로 Microsoft Windows NT와 Microsoft Windows 2000은 "소프트" 선호도를 사용하는데, 이는 스레드가 마지막으로 실행되었던 CPU에서 스레드를 다시 예약하려고 시도합니다. 그러나 이것이 불가능하면 스레드가 다른 CPU에서 실행됩니다.

실제로는 선호도 마스크 설정을 기본값이 아닌 값으로 변경해도 성능이 향상되는 경우가 드물며 심지어 성능이 저하되는 경우도 있습니다.

선호도 마스크는 SQL Server를 사용 가능한 CPU의 하위 집합으로 제한하며, 경합하는 다른 서비스에게 더 나은 CPU 액세스를 제공합니다. 대부분의 경우에는 SQL Server가 보통 우선 순위로 실행되므로 이렇게 할 필요가 없습니다. Windows NT 또는 Windows 2000 스레드 스케줄러는 경합하는 모든 스레드의 스레드 우선 순위를 동적으로 조정하여 사용 가능한 모든 CPU를 공평하게 사용할 수 있도록 합니다.

매우 이례적인 상황이 아니면 선호도 마스크를 조정하지 마십시오. 선호도 마스크를 조정할 경우에는 변경 전후에 엄격한 조직적 테스트를 수행하여 변경이 필요한지 그리고 성능이 어느 정도나 향상되는지 확인하십시오.

경량 풀링

기본적으로 SQL Server는 활성 SPID 또는 사용자 프로세스마다 스레드를 하나씩 사용합니다. 이러한 스레드는 스레드 수를 관리할 수 있도록 풀링된 구성에서 작동합니다. 고급 구성 옵션인 "경량 풀링"("파이버 모드"라고도 함)은 Windows NT "파이버" 지원 기능을 통해 하나의 스레드만으로 여러 실행 컨텍스트를 확실하게 처리합니다.

실제 경험에 비추어 볼 때 매우 이례적인 상황이 아니면 파이버 모드를 사용할 필요가 없습니다. 경량 풀링은 다음 조건이 모두 충족될 경우에만 사용하는 것이 좋습니다. 신중하게 제어된 테스트를 통해 경량 풀링이 실제로 유용한지 확인해야 합니다.
  • 대규모 다중 프로세서 서버가 사용되고 있는지 확인합니다.
  • 모든 서버가 최대 성능이나 최대 성능에 가깝게 실행되고 있는지 확인합니다.
  • 컨텍스트 전환 횟수가 많은지(초당 20,000회 초과) 확인합니다.
컨텍스트 전환 횟수를 확인하려면 성능 모니터에서 카운터 스레드를 선택하고 Context switches/sec 개체를 선택한 다음 모든 SQL Server 인스턴스를 캡처하도록 선택하십시오. 서버를 파이버 모드에서 실행하면 SQL Server 2000 또는 SQL Server 2005에서 SQL 메일이 지원되지 않습니다. SQL 메일은 SQL Server 2000 64비트에서 지원되지 않습니다. 자세한 내용은 SQL Server 2000(64비트 Edition) 온라인 설명서의 "64비트 릴리스와 32비트 릴리스 간의 차이점" 항목을 참조하십시오. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
308604 PRB: 서버를 파이버 모드에서 실행하면 SQL 메일이 지원되지 않는다
303120 FIX: 경량 풀링을 사용하면 ConnectionWrite 오류가 발생한다

최대 비동기 IO

SQL Server 7.0: 최대 비동기 IO 구성 설정은 SQL Server 7.0에서 사용할 수 있습니다. 고속 RAID 시스템이 있고 변경의 이점을 확인할 방법이 있으면 이 설정을 변경하는 것이 좋을 수도 있습니다. 결과를 평가할 기준이 없으면 이 설정을 변경하지 마십시오. 디스크 작업을 모니터링하여 디스크 대기열 문제가 있는지 확인하십시오. 자세한 내용은 SQL Server 온라인 설명서의 다음 항목을 참조하십시오.
  • "max async IO 옵션"
  • "디스크 동작 모니터링"
  • "병목 상태 식별"
SQL Server 2000 또는 SQL Server 2005: SQL Server 2000 또는 SQL Server 2005에서는 최대 비동기 IO 구성 설정을 변경할 수 없습니다. SQL Server 2000 또는 SQL Server 2005에서는 이 설정이 자동으로 조정됩니다.

최대 작업자 스레드

최대 작업자 스레드 설정의 기본값은 작업자 스레드를 255개까지 만들 수 있는 255입니다. 대부분의 경우에는 기본값 255를 그대로 사용하십시오. 기본값 255를 사용한다고 해서 사용자 연결을 255개만 설정할 수 있는 것은 아닙니다. 시스템에 수천 개의 사용자 연결이 있을 수 있고 작업자 스레드가 255개까지 다중으로 전송되므로 사용자는 일반적으로 지연 현상을 느끼지 못합니다. 이러한 경우 255개의 쿼리만 동시에 실행될 수 있지만 사용 가능한 CPU 수만큼 다중으로 전송되기 때문에 사용자는 구성된 작업자 스레드 수에 관계없이 작업이 동시에 이루어진다고 느끼게 됩니다.

작업자 스레드 수를 기본값보다 높은 값으로 구성하면 거의 대부분 스케줄링과 리소스 오버헤드의 증가로 인해 생산성과 성능이 저하됩니다. 엄격한 조직적 테스트를 통해 이 설정을 높이는 것이 좋다는 평가 결과가 나오는 매우 이례적인 상황에서만 이 설정을 높이십시오.

메모리


메모리 구성에 대한 자세한 내용은 SQL Server 온라인 설명서의 "메모리 구성 옵션을 사용하여 서버 성능 최적화" 항목을 참조하십시오.

클러스터된 SQL Server의 메모리 구성에 대한 자세한 내용은 SQL Server 온라인 설명서의 "장애 조치 클러스터 만들기" 항목에서 "작업상의 고려 사항"을 참조하십시오.

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
274750 SQL Server에서 2GB 이상의 메모리를 구성하는 방법
224818 BackOffice Small Business Server 4.5에 SQL Server 7.0과 Exchange 5.5 서비스 팩 2를 둘 다 설치한 경우 단순 메모리 튜닝이 필요하다
316749 SQL Server 2000 또는 SQL Server 7.0에서 많은 수의 데이터베이스에 사용할 가상 메모리가 부족할 수 있다

우선 순위 높이기

우선 순위 높이기 설정의 기본값은 0으로, SQL Server가 단일 프로세서 컴퓨터에서 실행되는지 아니면 SMP(대칭적 다중 프로세서) 컴퓨터에서 실행되는지 여부에 관계없이 SQL Server가 보통 우선 순위로 실행되도록 합니다. 우선 순위 높이기를 1로 설정하면 SQL Server가 높은 우선 순위로 실행됩니다. 이 설정을 사용해도 SQL Server 프로세스가 가장 높은 운영 체제 우선 순위로 실행되지는 않습니다.

실제 지원 경험에 비추어 볼 때 성능 향상을 위해 우선 순위 높이기를 사용할 필요가 없습니다. 우선 순위 높이기를 사용하면 서버가 매끄럽게 작동하지 않을 수 있으므로 매우 이례적인 상황을 제외하고는 이 설정을 사용하지 마십시오. 예를 들어, Microsoft 기술 지원 서비스에서는 성능 문제를 조사할 때 우선 순위 높이기를 사용합니다.

중요 SQL Server 7.0, SQL Server 2000 또는 SQL Server 2005를 실행하는 클러스터된 서버에서는 우선 순위 높이기를 사용하지 마십시오.

작업 집합 크기 설정

작업 집합 크기 설정을 기본값이 아닌 값으로 변경하지 마십시오. 기본값 0을 사용하면 Windows NT 또는 Windows 2000 가상 메모리 관리자가 SQL Server의 작업 집합 크기를 확인할 수 있습니다. SQL Server를 설치할 때는 설치 프로그램에서 자동으로 네트워크 응용 프로그램의 성능을 최적화하라는 명령을 Windows NT나 Windows 2000에 보냅니다. 따라서 Windows NT 또는 Windows 2000 가상 메모리 관리자가 작업 집합을 거의 자르지 않으므로 SQL Server 인스턴스의 작업 집합이 방해를 받는 수준이 최소화됩니다.

대개 이 설정을 변경해도 성능이 향상되지는 않습니다. 실제 지원 경험에 비추어 볼 때 이 설정을 변경하면 대개 얻는 것보다 잃는 것이 많습니다.

작업 집합 크기 설정을 변경하면 SQL Server 오류 메시지 844 또는 845가 발생하기도 합니다. 844 및 845 오류 메시지의 일반적인 원인에 대한 자세한 내용은 이 문서의 "참조" 절을 참조하십시오.

참조

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
310834 SQL Server 오류 메시지 844 또는 오류 메시지 845가 발생하는 일반적이 원인에 대한 설명
298475 HOWTO: 응용 프로그램 성능 문제 해결
243589 INF: SQL Server 7.0에서 느리게 실행되는 쿼리 문제 해결 방법
243588 INF: Ad-Hoc 쿼리의 성능 문제 해결
224587 HOWTO: SQL Server에서 응용 프로그램 성능 문제 해결
166967 INF: SQL Server의 올바른 구성 설정
254321 클러스터된 SQL Server 주의 사항 및 기본 경고
297864 INF: SQL Server 6.5로부터 업그레이드하기 위한 성능 고려 사항




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 319942 - 마지막 검토: 2011년 5월 13일 금요일 - 수정: 5.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
키워드:?
kbsqlmanagementtools kbhowtomaster KB319942

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com