8KB를 초과하는 행 오버플로 데이터

테이블의 행에는 최대 8,060바이트가 포함될 수 있습니다. SQL Server 2005에서는 varchar, nvarchar, varbinary, sql_variant 또는 CLR 사용자 정의 유형 열이 포함된 테이블에 대해 이러한 제한 사항이 완화되었습니다. 이러한 열 각각의 길이는 여전히 8,000 바이트 이내여야 하지만 이 열이 결합된 경우에는 8,060바이트의 제한을 초과할 수 있습니다. 이것은 varchar, nvarchar, varbinary, sql_variant 또는 CLR 사용자 정의 유형 열을 만들거나 수정할 때 적용되며 데이터를 업데이트하거나 삽입할 때도 적용됩니다.

[!참고] varchar(max), nvarchar(max), varbinary(max), text, image 또는 xml 열에는 이 제한 사항이 적용되지 않습니다. 이러한 열의 저장소에 대한 자세한 내용은 큰 값 데이터 형식 사용, 텍스트 및 이미지 데이터 사용XML 데이터 사용을 참조하십시오.

행 오버플로 고려 사항

행당 8,060바이트를 초과하는 varchar, nvarchar, varbinary, sql_variant 또는 CLR 사용자 정의 유형 열을 결합할 때는 다음 사항을 고려하십시오.

  • SQL Server 2005 데이터베이스 엔진에서 페이지당 8KB의 제한은 여전히 유효하기 때문에 8,060바이트의 행 크기 제한을 초과하면 성능이 저하될 수도 있습니다. varchar, nvarchar, varbinary, sql_variant 또는 CLR 사용자 정의 유형 열의 조합이 이 제한을 초과하면 데이터베이스 엔진은 원래 페이지의 24바이트 포인터를 유지하면서 너비가 가장 큰 레코드 열을 ROW_OVERFLOW_DATA 할당 단위에 있는 다른 페이지로 이동합니다. 업데이트 작업에 따라 레코드가 길어지는 경우 큰 레코드는 동적으로 다른 페이지로 이동합니다. 업데이트 작업에 따라 레코드가 짧아지는 경우 해당 레코드는 IN_ROW_DATA 할당 단위에 있는 원래 페이지로 다시 이동할 수도 있습니다. 또한 행 오버플로 데이터가 포함된 큰 레코드에 대한 정렬이나 조인 같은 다른 SELECT 작업을 쿼리 및 수행하면 해당 레코드가 비동기적으로 처리되지 않고 동기적으로 처리되기 때문에 처리 시간이 느려집니다.
    따라서 여러 varchar, nvarchar, varbinary, sql_variant 또는 CLR 사용자 정의 유형 열이 있는 테이블을 디자인할 때는 오버플로될 가능성이 있는 행의 비율과 이 오버플로 데이터가 자주 쿼리될 가능성이 있는지 고려하십시오. 행 오버플로 데이터가 있는 다수의 행에서 쿼리가 자주 수행될 가능성이 높은 경우에는 일부 열이 다른 테이블로 이동하도록 테이블을 정규화하십시오. 그런 다음 비동기 JOIN 작업에서 이 테이블을 쿼리할 수 있습니다.
  • varchar, nvarchar, varbinary, sql_variant 및 CLR 사용자 정의 유형 열의 개별 열 길이에는 여전히 8,000바이트의 제한이 적용되어야 합니다. 이 열이 결합되는 경우에만 테이블의 8,060바이트의 행 제한을 초과할 수 있습니다.
  • charnchar 데이터를 비롯하여 다른 데이터 형식 열의 합계에는 8,060바이트의 행 제한이 적용되어야 합니다. 큰 개체 데이터도 8,060바이트의 행 제한에서 제외됩니다.
  • 클러스터형 인덱스의 인덱스 키는 기존 데이터가 ROW_OVERFLOW_DATA 할당 단위에 있는 varchar 열을 포함할 수 없습니다. 클러스터형 인덱스를 varchar 열에 만들고 기존 데이터가 IN_ROW_DATA 할당 단위에 있는 경우에는 데이터를 행 외부로 밀어넣을 열에서의 후속 삽입 또는 업데이트 작업이 실패합니다. 할당 단위에 대한 자세한 내용은 테이블 및 인덱스 구성을 참조하십시오.
  • 행 오버플로 데이터가 있는 열을 비클러스터형 인덱스의 키 열이나 키가 아닌 열로 포함할 수 있습니다.

행 오버플로 데이터가 포함될 수 있는 테이블이나 인덱스에 대한 정보를 얻으려면 sys.dm_db_index_physical_stats 동적 관리 개체를 사용합니다.

참고 항목

개념

열에 데이터 형식 할당

도움말 및 정보

SQL Server 2005 지원 받기