uniqueidentifier 데이터 형식은 GUID(Globally Unique Identifier) 역할을 하는 16바이트 이진 값을 저장한다.
GUID는 고유한 이진 숫자이며, 전 세계 모든 컴퓨터는 고유한 GUID 값을 생성한다.
GUID는 네트워크 카드 번호, CPU 클락, 현재 시간 및 날짜 등과 같은 여러 변수들을 사용해서 생성된 값으로
전 세계에서 유일한 구분 값으로 이용된다.
이런 값이 왜 필요한가?
Identity로 생성되는 primary key 값은 해당 테이블에서는 식별이 가능하지만, 바로 인접한 테이블이나
전세계에 걸쳐있는 테이블과는 식별하지 못한다. 즉 중복 값이 발생할 수 있다는 것이다.
하지만 테이블 A의 PK 값이 '52D383B1-B674-4AFD-88C7-17B7BAB77E42' 라면, 이 값은 전 세계에서
유일한 값이 될 수 있다.
그러면 네트워크를 통해서 테이블을 파티셔닝한 것을 합할 수도 있고, 하나의 테이블을 전 세계에
지점에 걸쳐서 분할할 수도 있다. 그런 이유로 GUID를 사용할 수 있다.
그러나 GUID는 식별 가능함이라는 능력 자체는 뛰어나지만, 이 값을 생성하기 위해서 상대적으로
시간이 많이 소요되고, 16바이트라는 많은 저장공간을 사용하게 된다.
또 생성된 값이 인간이 판단하고 기억할 수 있는 일반적인 값의 형태가 아니며,
정렬에도 사용할 수 없다는 단점이 있다.
-- uniqueidentifier 데이터 형식 선언 CREATE TABLE TEST_GUID ( ID uniqueidentifier PRIMARY KEY ) GO
-- NEWID() 시스템 함수를 사용하여 값 삽입 INSERT TEST_GUID VALUES (NEWID()) GO
-- GUID 확인 SELECT * FROM TEST_GUID GO
|
참고 : Deep Indise T-SQL 쿼리 테크닉
http://msdn.microsoft.com/ko-kr/library/ms190215.aspx
'DBMS > SQL Server' 카테고리의 다른 글
[SQL Server] COUNT(*) vs COUNT(컬럼) (0) | 2013.10.11 |
---|---|
[SQL Server] 테이블의 종류 (0) | 2013.10.06 |
[SQL Server] char vs varchar (0) | 2013.10.06 |
[SQL Server] 스키마 변경 기록 확인하기 (0) | 2013.10.01 |
[SQL Server] sp_depends 갱신하기 (0) | 2013.09.29 |