SQL Server의 최대 용량 사양

적용 대상:yesSQL 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개 열로 제한됩니다. SQL Server에서는 비클러스터형 인덱스에 키가 아닌 열을 포함하여 최대 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 파일 공유를 스토리지 옵션으로 사용하는 50개의 장애 조치(failover) 클러스터 인스턴스
메모리 최적화 테이블당 인덱스 수 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
테이블당 REFERENCES 수 253
테이블당 행 수 사용 가능한 스토리지로 제한
데이터베이스당 테이블 수 데이터베이스의 총 개체 수로 제한 개체에는 테이블, 뷰, 저장 프로시저, 사용자 정의 함수, 트리거, 규칙, 기본값 및 제약 조건이 포함됩니다. 한 데이터베이스에서 모든 개체 수의 합계는 2,147,483,647을 초과할 수 없습니다.
분할된 테이블 또는 인덱스당 파티션 수 15,000
인덱싱되지 않은 열의 통계 30,000
SELECT 문당 테이블 수 사용 가능한 리소스로만 제한
테이블당 트리거 수 데이터베이스의 개체 수로 제한 개체에는 테이블, 뷰, 저장 프로시저, 사용자 정의 함수, 트리거, 규칙, 기본값 및 제약 조건이 포함됩니다. 한 데이터베이스에서 모든 개체 수의 합계는 2,147,483,647을 초과할 수 없습니다.
사용자 연결 32,767
XML 인덱스 249

SQL Server 유틸리티 개체

다음 표에는 SQL Server 유틸리티에서 테스트된 다양한 개체의 최대 값이 나와 있습니다.

SQL Server 유틸리티 개체 SQL Server 최댓값(64비트) 추가 정보
SQL Server 유틸리티당 컴퓨터(물리적 컴퓨터 또는 가상 컴퓨터) 수 100
컴퓨터당 SQL Server 의 인스턴스 수 5
SQL Server 유틸리티당 총 SQL Server 인스턴스 수 200 최대치는 서버의 하드웨어 구성에 따라 달라질 수 있습니다. 시작 정보는 SQL Server 유틸리티 기능 및 태스크를 참조하세요. SQL Server 유틸리티 제어 지점은 일부 SQL Server버전에서는 사용할 수 없습니다. SQL Server 2019, SQL Server 2017SQL Server 2016의 각 버전에서 지원하는 기능을 읽어볼 수 있습니다.
데이터 계층 애플리케이션을 포함하여 SQL Server 인스턴스당 사용자 데이터베이스 수 50
SQL Server 유틸리티당 총 사용자 데이터베이스 수 1,000
데이터베이스당 파일 그룹 수 1
파일 그룹당 데이터 파일 수 1
데이터베이스당 로그 파일 수 1
컴퓨터당 볼륨 수 3

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

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

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

복제 개체

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

SQL Server Replication 개체 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

참고 항목