GUID 형식은 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
세계 어느 컴퓨터도 중복 GUID 값을 생성하지 않습니다. GUID 는 주로 여러 노드와 컴퓨터가 있는 네트워크나 시스템에 고유 식별자를 할당하는 데 사용됩니다. GUID 는 레지스트리 클래스, 인터페이스 식별 데이터베이스 또는 자동으로 생성된 시스템 이름 디렉토리 이름과 같은 Windows 플랫폼에서 널리 사용됩니다.
ASP NET 응용 프로그램을 개발하는 동안 GUID 가 있는 ID 열을 개별 엔티티 테이블의 키로 사용했습니다. 독특하고 쉽게 만들 수 있는 기능으로 인해 응용 프로그램 처리에 많은 이점이 있었습니다.
SQL Server 에서 GUID 사용
SQL Server 의 테이블 정의에서 열 유형을 uniqueidentifier 로 지정한 경우 열 값은 GUID 유형입니다.
SQL Server 의 NewID () 함수는 고유한 GUID 값을 생성합니다. 이 기능을 사용하는 방법에는 여러 가지가 있습니다.
) 를 열 기본값으로 사용합니다.
Uniqueidentifier 열의 기본값을 NewID () 로 설정하면 테이블에 새 행을 삽입할 때 해당 열의 GUID 값이 자동으로 생성됩니다.
) T SQL 사용
T SQL 의 insertintotable (id) values (NewID ()) 와 같은 newid () 함수를 사용하여 이 열의 GUID 값을 생성합니다.
) GUID 값을 미리 가져옵니다
함수는 특별하기 때문에 새 행의 ID 값을 미리 알고 있거나 다음 C# 코드를 사용하여 GUID 값을 미리 가져와 데이터베이스에 저장할 수 있습니다.
Sqlcommandcmd = new sqlcommand ();
Cmdcommandtext = selectnewid ();
Stringrowid = (string) cmd executescalar ();
Cmd CommandText = 테이블 삽입 (ID) 값 (@ID)
Cmd 매개 변수 add (@ id sqldbtype unique identifier) value = newguid (rowid);
Cmd execute no query ();
Uniqueidentifier 값은 산술 연산을 수행할 수 없지만 비교 및 null 값 검사를 수행할 수 있습니다. IDENTITY 열처럼 각 행의 시간 증가 순서를 알 수 없습니다. 이 기능은 다른 시간 또는 타임스탬프 열을 추가하여 수행할 수 있습니다.
& gt& gtPS:PS:Oracle 은 sys_guid () 를 사용하여 guid 를 얻습니다.
네트워크에서 GUID 사용
Guid 는 NET 에서 널리 사용되고 있으며, NET 프레임워크는 특수한 GUID 인프라를 제공합니다.
Guid 구조의 일반적인 방법은 다음과 같습니다
) Guid NewGUID ()
GUID 에 대해 고유한 새 값을 생성합니다
) Guid ToString () 을 참조하십시오
GUID 값을 문자열로 변환하면 쉽게 처리할 수 있습니다.
) 생성자 Guid (문자열)
String 에서 Guid 구조를 생성합니다. string 은 대문자나 소문자일 수 있고, 양쪽 끝에 구분 기호 {} 또는 () 를 포함할 수 있으며, 중간 Guid 구조의 생성자를 생략할 수도 있습니다. 자주 사용되지 않는 다른 생성자도 많이 있습니다.
또한 데이터베이스에서 Guid 를 사용하는 요구를 충족하기 위해 NET Framework 는 Guid 구조와 유사한 SqlGuid 구조를 제공합니다. 단, CompareTo 에서 다르게 작동한다는 점만은 다릅니다. SqlGuid 는 값의 마지막 바이트를 계산하고 Guid 는 모든 바이트를 계산합니다. 이러한 차이는 SQL Server 의 uniqueidentifier 열 정렬에 영향을 줄 수 있습니다. 물론 이 정렬은 의미가 없습니다.
NET Framework 에서 GuidConverter 클래스를 사용하여 GUID 구조를 다른 다양한 표현과 변환하는 유형 변환기를 제공할 수 있습니다.
GUID 의 장점과 단점
) 이점
UniqueIDentifier 열은 IDENTITY 열보다 NewID () 함수를 통해 새로 추가된 행 id 를 미리 알 수 있어 응용 프로그램의 사후 처리를 크게 용이하게 합니다.
데이터베이스 마이그레이션을 용이하게 하다. 다른 데이터베이스에 id 열이 있을 필요는 없지만 GUID 열은 문자 열로 다른 데이터베이스로 변환할 수 있으며 응용 프로그램에서 생성된 Guid 값은 원본 데이터에 영향을 주지 않고 데이터베이스에 저장할 수 있습니다.
데이터베이스 초기화를 용이하게 합니다. 응용 프로그램에서 일부 초기 데이터를 로드하는 경우 IDENTITY 열을 처리하는 것이 번거롭지만 uniqueidentifier 열은 처리 없이 T SQL 로 직접 로드할 수 있습니다.
클래스 ClassID 객체의 인스턴스 ID, UDDI 의 연락처 서비스 인터페이스 tModel ID 정의 등과 같은 일부 객체 또는 상수를 영구적으로 식별하는 것이 편리합니다.
) 단점
GUID 값은 비교적 길기 때문에 기억하고 입력하기 쉽지 않으며, 이 값은 무작위로 무질서하므로 사서함 주소 J 로 사용하지 않는 것이 좋습니다.
GUID 의 값은 bytes 이며 bytes 와 같은 다른 정수보다 상대적으로 큽니다. 즉, 데이터베이스에서 uniqueidentifier 키를 사용하면 저장 공간이 늘어나고 인덱스 시간이 느려지는 두 가지 부정적인 영향을 미칠 수 있습니다.
Lishi Xinzhi/article/program/net/201311//kloc-0