MSSQL uniqueidentifier 데이터 형식
페이지 정보
본문
uniqueidentifier 데이터 형식은 GUID(Globally Unique Identifier) 역할을 하는 16바이트 이진 값을 저장한다.
GUID는 고유한 이진 숫자이며, 전 세계 모든 컴퓨터는 고유한 GUID 값을 생성한다.
GUID는 네트워크 카드 번호, CPU 클락, 현재 시간 및 날짜 등과 같은 여러 변수들을 사용해서 생성된 값으로 전 세계에서 유일한 구분 값으로 이용된다.
이런 값이 왜 필요한가?
Identity로 생성되는 primary key 값은 해당 테이블에서는 식별이 가능하지만, 바로 인접한 테이블이나 전세계에 걸쳐있는 테이블과는 식별하지 못한다. 즉 중복 값이 발생할 수 있다는 것이다.
하지만 테이블 A의 PK 값이 '52D383B1-B674-4AFD-88C7-17B7BAB77E42' 라면, 이 값은 전 세계에서 유일한 값이 될 수 있다.
그러면 네트워크를 통해서 테이블을 파티셔닝한 것을 합할 수도 있고, 하나의 테이블을 전 세계에 지점에 걸쳐서 분할할 수도 있다. 그런 이유로 GUID를 사용할 수 있다.
그러나 GUID는 식별 가능함이라는 능력 자체는 뛰어나지만, 이 값을 생성하기 위해서 상대적으로 시간이 많이 소요되고, 16바이트라는 많은 저장공간을 사용하게 된다.
또 생성된 값이 인간이 판단하고 기억할 수 있는 일반적인 값의 형태가 아니며, 정렬에도 사용할 수 없다는 단점이 있다.
자료출처
http://lovedb.tistory.com/195
https://docs.microsoft.com/ko-kr/sql/t-sql/data-types/uniqueidentifier-transact-sql
https://technet.microsoft.com/ko-kr/library/ms190215(v=sql.105).aspx
GUID는 고유한 이진 숫자이며, 전 세계 모든 컴퓨터는 고유한 GUID 값을 생성한다.
GUID는 네트워크 카드 번호, CPU 클락, 현재 시간 및 날짜 등과 같은 여러 변수들을 사용해서 생성된 값으로 전 세계에서 유일한 구분 값으로 이용된다.
이런 값이 왜 필요한가?
Identity로 생성되는 primary key 값은 해당 테이블에서는 식별이 가능하지만, 바로 인접한 테이블이나 전세계에 걸쳐있는 테이블과는 식별하지 못한다. 즉 중복 값이 발생할 수 있다는 것이다.
하지만 테이블 A의 PK 값이 '52D383B1-B674-4AFD-88C7-17B7BAB77E42' 라면, 이 값은 전 세계에서 유일한 값이 될 수 있다.
그러면 네트워크를 통해서 테이블을 파티셔닝한 것을 합할 수도 있고, 하나의 테이블을 전 세계에 지점에 걸쳐서 분할할 수도 있다. 그런 이유로 GUID를 사용할 수 있다.
그러나 GUID는 식별 가능함이라는 능력 자체는 뛰어나지만, 이 값을 생성하기 위해서 상대적으로 시간이 많이 소요되고, 16바이트라는 많은 저장공간을 사용하게 된다.
또 생성된 값이 인간이 판단하고 기억할 수 있는 일반적인 값의 형태가 아니며, 정렬에도 사용할 수 없다는 단점이 있다.
자료출처
http://lovedb.tistory.com/195
https://docs.microsoft.com/ko-kr/sql/t-sql/data-types/uniqueidentifier-transact-sql
https://technet.microsoft.com/ko-kr/library/ms190215(v=sql.105).aspx
댓글목록
등록된 댓글이 없습니다.