다음을 통해 공유


Azure Synapse Analytics의 전용 SQL 풀(이전의 SQL DW)에 대한 테이블 데이터 형식

이 문서에는 전용 SQL 풀에서 테이블 데이터 형식을 정의하기 위한 권장 사항이 포함되어 있습니다.

지원되는 데이터 형식

전용 SQL 풀(이전의 SQL DW)은 가장 일반적으로 사용되는 데이터 형식을 지원합니다. 지원되는 데이터 형식 목록은 CREATE TABLE 문의 데이터 형식 을 참조하세요.

행 길이 최소화

데이터 형식의 크기를 최소화하면 행 길이가 단축되어 쿼리 성능이 향상됩니다. 데이터에 대해 작동하는 가장 작은 데이터 형식을 사용합니다.

  • 기본 길이가 큰 문자 열을 정의하지 마세요. 예를 들어 가장 긴 값이 25자인 경우 열을 VARCHAR(25)로 정의합니다.
  • VARCHAR만 필요한 경우 NVARCHAR 를 사용하지 마세요.
  • 가능하면 NVARCHAR(MAX) 또는 VARCHAR(MAX) 대신 NVARCHAR(4000) 또는 VARCHAR(8000)를 사용합니다.

PolyBase 외부 테이블을 사용하여 테이블을 로드하는 경우 테이블 행의 정의된 길이는 1MB를 초과할 수 없습니다. 가변 길이 데이터가 있는 행이 1MB를 초과하면 BCP를 사용하여 행을 로드할 수 있지만 PolyBase에서는 로드할 수 없습니다.

지원되지 않는 데이터 형식 식별

다른 SQL 데이터베이스에서 데이터베이스를 마이그레이션하는 경우 전용 SQL 풀에서 지원되지 않는 데이터 형식을 찾을 수 있습니다. 다음 쿼리를 사용하여 기존 SQL 스키마에서 지원되지 않는 데이터 형식을 검색합니다.

SELECT  t.[name], c.[name], c.[system_type_id], c.[user_type_id], y.[is_user_defined], y.[name]
FROM sys.tables  t
JOIN sys.columns c on t.[object_id]    = c.[object_id]
JOIN sys.types   y on c.[user_type_id] = y.[user_type_id]
WHERE y.[name] IN ('geography','geometry','hierarchyid','image','text','ntext','sql_variant','xml')
 AND  y.[is_user_defined] = 1;

지원되지 않는 데이터 형식에 대한 해결 방법

다음 목록에서는 전용 SQL 풀(이전의 SQL DW)이 지원하지 않는 데이터 형식을 보여 주며 지원되지 않는 데이터 형식에 대한 유용한 대안을 제공합니다.

지원되지 않는 데이터 형식 Workaround
geometry varbinary
geography varbinary
hierarchyid nvarchar(4000)
image varbinary
text varchar
엔텍스트 nvarchar
sql_variant 열을 강력한 형식의 여러 열로 분할합니다.
table 임시 테이블로 변환합니다.
타임스탬프 datetime2CURRENT_TIMESTAMP 함수를 사용하도록 코드를 다시 작업합니다. 상수만 기본값으로 지원되므로 current_timestamp 기본 제약 조건으로 정의할 수 없습니다. 타임스탬프 형식 열에서 행 버전 값을 마이그레이션해야 하는 경우 NOT NULL 또는 NULL 행 버전 값에 BINARY(8) 또는 VARBINARY(8)를 사용합니다.
xml varchar
사용자 정의 형식 가능하면 네이티브 데이터 형식으로 다시 변환합니다.
기본값 기본값은 리터럴 및 상수만 지원합니다.

다음 단계

테이블 개발에 대한 자세한 내용은 테이블 개요를 참조하세요.