SQL Server 의 data type 별 표현 범위
데이터형식 | 범위 | 저장소 |
---|---|---|
bigint | -2^63(-9,223,372,036,854,775,808) ~ 2^63-1(9,223,372,036,854,775,807) | 8 바이트 |
int | -2^31(-2,147,483,648) ~ 2^31-1(2,147,483,647) | 4 바이트 |
smallint | -2^15(-32,768) ~ 2^15-1(32,767) | 2 바이트 |
tinyint | 0 ~ 255 | 1 바이트 |
주의
int 데이터 형식이에서 주 정수 데이터 형식 SQL Server합니다. bigint 데이터 형식을 사용 하기 위한 정수 값에서 지원 되는 범위를 초과 하는 경우는 int 데이터 형식입니다.
bigint 사이 맞는 smallmoney 및 int 데이터 형식 우선 순위에 있습니다.
함수 반환 bigint 매개 변수 식이 있는 경우에는 bigint 데이터 형식입니다. SQL Server다른 정수 데이터 형식에 자동으로 승격 하지 않습니다 (tinyint, smallint, 및 int)를 bigint합니다.
주의 사용 하는 경우는 +,-, *, /, 또는 % 산술 연산자의 암시적 또는 명시적 변환을 수행 하기 위해 int, smallint, tinyint, 또는 bigint 상수 값을 float, 실제, 10 진수 또는 숫자 규칙, 데이터 형식 SQL Server 쿼리 자동 인지 여부에 따라 다를 데이터 형식 및 식 결과 전체 자릿수를 계산할 때 적용 됩니다. 그러므로 경우에 따라 쿼리의 비슷한 식이 다른 결과를 생성하기도 합니다. 상수 값은 먼저 변환할 쿼리 자동 없을 때 숫자, 전체 자릿수가 지정 된 데이터 형식으로 변환 하기 전에 상수의 값을 보유할 수 만큼 큰 됩니다. 예를 들어 상수 값 1은 변환할 숫자 (1, 0), 상수 값 250으로 변환 됩니다 숫자 (3, 0)합니다. 상수 값은 항상 변환할 쿼리 자동 이면 숫자 (10, 0) 최종 데이터 형식으로 변환 하기 전에. / 연산자가 들어 있는 경우 비슷한 쿼리 간에 결과 형식의 전체 자릿수뿐만 아니라 결과 값도 달라질 수 있습니다. 예를 들어 식이 포함 된 쿼리의의 결과 값 |
---|
현재 가장 많이 사용하는 테이블의 사용량 측정
- SALES_INFO(매출등록) : 21,980,381 (약 2천 2백만)
- int max value 대비 약 1/100(1.02%) 소요
- CUSTOMER_BC(거래처잔고) : 2,959,846 (약 3백만)
- int max value 대비 약 1/1000(0.13%) 소요
문제점
- 추후 가입자 증가로 인해서 데이터가 증가하는 경우, 더 많은 정보가 추가되면 int max value 를 초과할 수 있음
해결방안
- 더 큰 자료형인 BigInt 를 사용하여 해결 (Int → BigInt 로 전환하는 경우, Int 대비 약 4,294,967,298 배 정도의 큰 수를 표현할 수 있음)
참고 문서
'프로그래밍 > MSSQL' 카테고리의 다른 글
mssql 세로 데이터를 동적으로 가로로 출력 with asp (1) | 2021.03.08 |
---|---|
SQL Server 쿼리 저장소로 인한 문제 (0) | 2017.11.03 |
mssql 프로시저 동적 정렬 ORDER BY (0) | 2017.07.20 |
mssql identity 자동증가 필드에 명시적 키값 입력 (0) | 2017.04.07 |
mssql 모바일 이모티콘 emoji issue (0) | 2017.03.23 |