메모리 구성
다음 섹션에서는 데이터베이스 성능을 최적화하는 데 필요한 SQL Server 메모리 설정에 대해 설명합니다.
최대 서버 메모리
최대 서버 메모리 옵션은 SQL Server 인스턴스가 사용할 수 있는 최대 메모리 양을 설정합니다. 일반적으로 SQL Server가 실행 중인 동일한 서버에서 여러 응용 프로그램이 실행되고 있고 이러한 응용 프로그램이 제대로 작동할 수 있는 충분한 메모리를 확보하려는 경우에 사용됩니다.
일부 응용 프로그램은 시작할 때 사용 가능한 메모리만 사용하고 메모리 압력을 받는 경우에도 추가 메모리를 요청하지 않습니다. 최대 서버 메모리 설정이 재생되는 위치입니다.
SQL Server 인스턴스가 여러 개 있는 SQL Server 클러스터에서 각 인스턴스가 리소스를 놓고 경쟁할 수 있습니다. 각 SQL Server 인스턴스에 대한 메모리 제한을 설정하면 각 인스턴스에 대해 최상의 성능을 보장할 수 있습니다.
*NetApp는 성능 문제를 방지하기 위해 운영 체제에 최소 4GB~6GB의 RAM을 남겨 둘 것을 권장합니다. |
SQL Server Management Studio를 사용하여 최소 및 최대 서버 메모리 조정
SQL Server Management Studio를 사용하여 최소 또는 최대 서버 메모리를 조정하려면 SQL Server 서비스를 다시 시작해야 합니다. 다음 코드를 사용하여 T-SQL(Transact SQL)을 사용하여 서버 메모리를 조정할 수도 있습니다.
EXECUTE sp_configure 'show advanced options', 1 GO EXECUTE sp_configure 'min server memory (MB)', 2048 GO EXEC sp_configure 'max server memory (MB)', 120832 GO RECONFIGURE WITH OVERRIDE
비균일 메모리 액세스
NUMA(Non Uniform Memory Access)는 프로세서 버스의 추가 부하를 방지하는 메모리 액세스 최적화 기술입니다.
NUMA가 SQL Server가 설치된 서버에 구성되어 있는 경우 SQL Server가 NUMA를 인식하며 NUMA 하드웨어에서 제대로 작동하기 때문에 추가 구성이 필요하지 않습니다.
인덱스가 메모리를 만듭니다
색인 메모리 만들기 옵션은 일반적으로 기본값에서 변경할 필요가 없는 또 다른 고급 옵션입니다.
인덱스 생성을 위해 처음에 할당된 최대 RAM 양을 제어합니다. 이 옵션의 기본값은 0입니다. 즉, 이 옵션은 SQL Server에서 자동으로 관리됩니다. 그러나 인덱스를 만드는 데 문제가 발생하면 이 옵션의 값을 늘리는 것이 좋습니다.
쿼리당 최소 메모리
쿼리를 실행하면 SQL Server는 효율적으로 실행할 최적의 메모리 양을 할당하려고 합니다.
기본적으로 쿼리당 최소 메모리 설정은 실행할 각 쿼리에 대해 >=~1024KB를 할당합니다. SQL Server에서 인덱스 생성 작업에 할당된 메모리 양을 동적으로 관리할 수 있도록 이 설정을 기본값으로 두는 것이 좋습니다. 그러나 SQL Server의 RAM이 효율적으로 실행하는 데 필요한 것보다 많은 경우 이 설정을 높이면 일부 쿼리의 성능이 향상될 수 있습니다. 따라서 SQL Server, 다른 응용 프로그램 또는 운영 체제에서 사용하지 않는 서버에서 메모리를 사용할 수 있는 한 이 설정을 높이면 SQL Server의 전반적인 성능이 향상될 수 있습니다. 사용 가능한 메모리가 없는 경우 이 설정을 늘리면 전체 성능이 저하될 수 있습니다.