SQL Server의 최대 용량 사양

적용 대상:SQL Server

이 문서에서는 SQL Server 2016(13.x) 이상에 정의된 다양한 개체의 최대 크기와 개수를 보여 줍니다. 버전 제한을 보려면 SQL Server 버전별 컴퓨팅 용량 제한을 참조하세요.

SQL Server 2014(12.x)의 경우 SQL Server 2014의 최대 용량 사양을 참조하세요.

데이터베이스 엔진 개체

다음 표에는 SQL Server 데이터베이스에 정의되거나 Transact-SQL 문에서 참조되는 다양한 개체의 값이 나와 있습니다.

SQL Server 데이터베이스 엔진 개체 SQL Server 최댓값(64비트) 추가 정보
Batch 크기 65,536 * (네트워크 패킷 크기) 네트워크 패킷 크기는 관계형 데이터베이스 엔진과 애플리케이션 간의 통신에 사용되는 TDS(Tabular Data Stream) 패킷의 크기입니다. 기본 패킷 크기는 4KB입니다. 네트워크 패킷 크기에서 이 구성 옵션을 제어합니다.
Transact-SQL 문이 포함된 문자열의 바이트 길이(일괄 처리 크기) 65,536 * (네트워크 패킷 크기) 네트워크 패킷 크기는 관계형 데이터베이스 엔진과 애플리케이션 간의 통신에 사용되는 TDS(Tabular Data Stream) 패킷의 크기입니다. 기본 패킷 크기는 4KB이며 네트워크 패킷 크기 구성 옵션으로 제어됩니다.
짧은 스트링 열당 바이트 수 8,000
GROUP BY, ORDER BY당 바이트 수 8,060
인덱스 키당 바이트 수 클러스터형 인덱스의 경우 900바이트, 비클러스터형 인덱스의 경우 1,700바이트 SQL Server 2014(12.x) 이전에는 모든 버전에서 모든 인덱스 유형에 대해 900바이트를 지원했습니다. 클러스터형 인덱스 키의 최대 바이트 수는 900을 초과할 수 없습니다. 비클러스터형 인덱스 키에 대한 최댓값은 1,700바이트입니다.

최대 크기가 한도를 초과하는 가변 길이 열을 사용하여 키를 정의할 수 있습니다. 그러나 해당 열에서 결합된 데이터 크기는 한도를 초과할 수 없습니다.

비클러스터형 인덱스에 키가 아닌 열을 추가로 포함할 수 있으며 해당 열은 키의 크기 제한에 포함되지 않습니다. 키가 아닌 열은 일부 쿼리의 성능 향상에 도움이 될 수 있습니다.
메모리 최적화 테이블의 인덱스 키당 바이트 수 비클러스터형 인덱스의 경우 2,500바이트 모든 인덱스 키가 행에 맞기만 하면 해시 인덱스에 대한 한도는 없습니다. 메모리 최적화 테이블의 비클러스터형 인덱스에는 선언된 최대 크기가 2,500바이트를 초과하는 키 열을 포함할 수 없습니다. 키 열의 실제 데이터가 선언된 최대 크기보다 짧은지 여부는 중요하지 않습니다.

해시 인덱스 키의 크기에 대한 하드 제한은 없습니다.

메모리 최적화 테이블에 있는 인덱스의 경우 포함된 열이라는 개념이 없습니다. 기본적으로 모든 인덱스가 열 전체를 포함하기 때문입니다.

메모리 최적화 테이블의 경우 행 크기가 8,060바이트인 경우에도 일부 가변 길이 열이 물리적으로 8,060바이트 외부에 저장될 수 있습니다. 그러나 테이블의 모든 인덱스에 대한 모든 키 열과 테이블의 추가 고정 길이 열의 선언된 최대 크기는 8,060바이트에 맞아야 합니다.
외래 키당 바이트 수 900
기본 키당 바이트 수 900
행당 바이트 수 8,060 SQL Server는 가변 길이 열을 행 외부로 푸시할 수 있는 행 오버플로 스토리지를 지원합니다. 행 밖으로 푸시된 가변 길이 열의 경우 24바이트 루트만 기본 레코드에 저장됩니다. 자세한 내용은 대규모 행 지원을 참조하세요.
메모리 최적화 테이블의 행당 바이트 수 8,060 SQL Server 2016(13.x) 이상의 메모리 최적화 테이블은 행 끄기 스토리지를 지원합니다. 테이블에 있는 모든 열의 최대 크기가 8,060바이트를 초과할 경우 가변 길이 열이 행 외부로 푸시됩니다. 이 작업은 컴파일 시간에 결정됩니다. 8바이트 참조만 행 밖에 저장된 열의 행 내부에 저장됩니다. 자세한 내용은 메모리 최적화 테이블의 테이블 및 행 크기를 참조하세요.
저장 프로시저의 원본 텍스트에 있는 바이트 수 일괄 처리 크기 또는 250MB 미만
varchar(max), varbinary(max), xml, text 또는 image 열당 바이트 수 2^31-1
ntext 또는 nvarchar(max) 열당 문자 수 2^30-1
테이블당 클러스터형 인덱스 수 1
GROUP BY, ORDER BY의 열 수 바이트 수로만 제한됨
GROUP BY WITH CUBE 또는 GROUP BY WITH ROLLUP 문의 열 수나 식 수 10
인덱스 키당 열 수 32 테이블에 XML 인덱스가 하나 이상 포함된 경우 XML 열이 기본 XML 인덱스의 클러스터링 키에 추가되므로 사용자 테이블의 클러스터링 키가 열 31개로 제한됩니다. 비클러스터형 인덱스에 키가 아닌 열을 포함하여 최대 키 열 최대 32개 한도를 피할 수 있습니다. 자세한 내용은 Create Indexes with Included Columns을 참조하세요.
외래 키 또는 기본 키당 열 수 32
INSERT 문당 열 수 4,096
SELECT 문당 열 수 4,096
테이블당 열 수 1,024 스파스 열 집합을 포함하는 테이블에는 최대 30,000개의 열이 포함됩니다. 스파스 열 집합을 참조하세요.
UPDATE 문당 열 수 4,096 스파스 열 집합에는 다른 한도가 적용됩니다.
뷰당 열 수 1,024
클라이언트당 연결 수 구성된 연결의 최대값
데이터베이스 크기 524,272TB
SQL Server 인스턴스당 데이터베이스 수 32,767
데이터베이스당 파일 그룹 수 32,767
메모리 최적화 데이터의 데이터베이스당 파일 그룹 수 1
데이터베이스당 파일 수 32,767
파일 크기(데이터) 16TB
파일 크기(로그) 2TB
데이터베이스당 메모리 최적화 데이터의 데이터 파일 수 4,096(SQL Server 2014(12.x)에서) 이 제한은 SQL Server 2016(13.x) 이상에서 덜 엄격합니다.
메모리 최적화 데이터의 데이터 파일당 델타 파일 수 1
테이블당 외래 키 테이블 참조 수 송신 = 253
수신 = 10,000
제한 사항에 대해서는 Create Foreign Key Relationships를 참조하세요.
식별자 길이(문자 수) 128
컴퓨터당 인스턴스 수 독립 실행형 서버의 인스턴스 50개

공유 클러스터 드라이브를 스토리지로 사용하는 경우 25개의 장애 조치(failover) 클러스터 인스턴스

스토리지 옵션으로 SMB 파일 공유가 있는 장애 조치(failover) 클러스터 인스턴스 50개
메모리 최적화 테이블당 인덱스 수 999(SQL Server 2017(14.x) 이상 및 Azure SQL Database)

8(SQL Server 2016(13.x) 및 SQL Server 2014(12.x)).
연결당 잠금 수 서버당 최대 잠금 수
SQL Server 인스턴스당 잠금 수 메모리에 의해서만 제한됨 이 값은 정적 잠금 할당에 사용됩니다. 동적 잠금 수는 메모리에 의해서만 제한됩니다.
중첩 저장 프로시저 수준 단계 32 하나의 저장 프로시저가 64개 이상의 데이터베이스에 액세스하거나 인터리빙 시 2개 이상의 데이터베이스에 액세스할 경우 오류가 표시됩니다.
중첩 하위 쿼리 수 32
중첩된 트랜잭션 4,294,967,296
중첩된 트리거 수준 단계 32
테이블 당 비클러스터형 인덱스 수 999
CUBE, ROLLUP, GROUPING SETS, WITH CUBE, WITH ROLLUP이 있을 때 GROUP BY 절에 있는 고유 식 수 32
GROUP BY 절의 연산자가 생성한 그룹화 집합 수 4,096
저장 프로시저당 매개 변수 수 2,100
사용자 정의 함수당 매개 변수 수 2,100
테이블당 REFERENCE 수 253
테이블당 행 수 사용 가능한 스토리지에 의해 제한됨
데이터베이스당 테이블 수 데이터베이스의 총 개체 수로 제한됨 개체에는 테이블, 뷰, 저장 프로시저, 사용자 정의 함수, 트리거, 규칙, 기본값 및 제약 조건이 포함됩니다. 한 데이터베이스에서 모든 개체 수의 합계는 2,147,483,647을 초과할 수 없습니다.
분할된 테이블이나 인덱스당 파티션 수 15,000
인덱싱되지 않은 열에 대한 통계 30,000
SELECT 문당 테이블 수 사용 가능한 리소스에 의해서만 제한됨
테이블당 트리거 수 데이터베이스의 개체 수에 의해 제한됨 개체에는 테이블, 뷰, 저장 프로시저, 사용자 정의 함수, 트리거, 규칙, 기본값 및 제약 조건이 포함됩니다. 한 데이터베이스에서 모든 개체 수의 합계는 2,147,483,647을 초과할 수 없습니다.
사용자 연결 32,767
XML 인덱스 249

SQL Server 데이터 계층 애플리케이션 개체

다음 표에는 SQL Server DAC(데이터 계층 애플리케이션)에서 테스트된 다양한 개체의 최대 값이 나와 있습니다.

SQL Server DAC 개체 SQL Server 최댓값(64비트) 추가 정보
DAC당 데이터베이스 수 1
DAC당 개체 수 데이터베이스의 개체 수 또는 사용 가능한 메모리로 제한 한도에 포함되는 개체 유형은 사용자, 테이블, 뷰, 저장 프로시저, 사용자 정의 함수, 사용자 정의 데이터 형식, 데이터베이스 역할, 스키마 및 사용자 정의 테이블 형식입니다.

복제 개체

다음 표에는 SQL Server 복제에 정의된 다양한 개체의 최대 값이 나와 있습니다.

SQL Server 복제 개체 SQL Server 최댓값
(64비트)
추가 정보
문서(통합 게시물) 2,048
아티클 수(스냅샷 또는 트랜잭션 게시) 32,767
테이블의 열 수(병합 게시) 246 행 추적이 충돌 감지에 사용되는 경우(기본값) 기본 테이블에는 열이 최대 1,024개까지 포함될 수 있습니다. 그러나 열이 최대 246개까지 게시되도록 게시에서 문서를 필터링해야 합니다. 열 추적을 사용하는 경우 기본 테이블에는 열이 최대 246개까지 포함될 수 있습니다.
테이블의 열 수(SQL Server 스냅샷 또는 트랜잭션 게시) 1,000 기본 테이블은 SQL Server 게시 데이터베이스에 허용되는 최대 열 수(1,024개)를 포함할 수 있지만, 열이 게시 유형에 지정된 최대 열 수를 초과하는 경우 아티클에서 열을 필터링해야 합니다.
테이블의 열 수(Oracle 스냅샷 또는 트랜잭션 게시) 995 기본 테이블은 SQL Server 게시 데이터베이스에 허용되는 최대 열 수(1,024개)를 포함할 수 있지만, 열이 게시 유형에 지정된 최대 열 수를 초과하는 경우 아티클에서 열을 필터링해야 합니다.
행 필터에 사용되는 열의 바이트 수(병합 게시) 1,024
행 필터에 사용되는 열의 바이트 수(스냅샷 또는 트랜잭션 게시) 8,000

참고 항목