이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 30236|회답: 1

[출처] EF는 주 키 Id를 guid 자기 성장 타입으로 설정합니다

[링크 복사]
게시됨 2016. 11. 4. 오후 1:27:38 | | | |


사업체 법인 코드는 다음과 같습니다:



삽입 코드는 다음과 같습니다:



이름만 설정하고 id에 값을 할당하지 않습니다. 생성된 SQL 문장이 무엇인지 살펴보겠습니다??? , 다음과 같다:

exec sp_executesql N'DECLARE @generated_keys 테이블([Id] uniqueidentifier)
[dbo]를 삽입하세요. [테스트탭] ([이름])
출력 삽입. [ID] @generated_keys
가치 (@0)
선택하세요. [Id]
@generated_keys에서 [dbo]에 가입하세요. [테스트탭] As t on g.[id] = t.[id]
여기서 @@ROWCOUNT > 0', N'@0 nvarchar(32)', @0=N' 건축가www.itsvse.com'


INSERT TestTab 테이블이 이름 필드만 삽입한다는 것을 발견했는데, Id에 기본 값이 있나요??? 우리는

ef는 Id 기본 키의 기본 값 타입, 기본 값 또는 binding "(newsequentialid())"를 설정하는 데 도움을 주었고, 다음과 같이 소개된 newsequentialid() 함수를 사용했습니다:


1.:newsequentialid 함수가 newid 함수에 비해 가장 큰 장점은 UNIQUEIDENTIFIER 필드에 인덱스를 생성하면 newid로 생성된 새 값이 고정되지 않아, 새 값이 인덱스 B+ 트리의 변화를 무작위로 만든다는 점입니다. 뉴스이쿼텐시알리드가 생성하는 새로운 값이 정칙이라면, 지수 B+ 트리의 변화는 정칙이다. 규칙성과 불규칙성은 성과 향상으로 이어집니다.

2: UNIQUEIDENTIFIER는 주 키로서 매우 편리한 기능으로, 데이터 병합과 같은 작업에서 대체할 수 없는 장점을 가지고 있습니다
하지만 일반 GUID의 분산화로 인해 기본 키를 클러스터 인덱스에 추가하면 레코드 삽입 시 효율이 훨씬 떨어집니다

SQL SERVER 2005는 NEWSEQUENTIALID라는 새로운 함수를 추가했으며, MSDN은 이에 대해 설명합니다:
지정된 기계에서 함수가 이전에 생성한 GUID보다 큰 GUID를 생성하세요.
NEWSEQUENTIALID()는 쿼리에서 참조할 수 없습니다.
참고: 이는 데이터베이스 열의 기본 값으로만 사용할 수 있으며, SELECT NEWSEQUENTIALID(와 같은 문장은 실행할 수 없음)를 의미합니다.
NEWSEQUENTIALID()가 생성하는 GUID는 해당 컴퓨터에 네트워크 카드가 없을 때만 해당 컴퓨터에서 유일합니다.
참고: 이 문장은 틀렸습니다. 컴퓨터가 네트워크 카드를 가지고 있을 때만 생성된 GUID가 세상에서 유일하다는 의미여야 합니다
NEWSEQUENTIALID()를 사용해 GUID를 생성하여 잎 수준 인덱스의 페이지 경쟁을 줄일 수 있습니다.





이전의:EasyUI Control Tab에 토글 기능이 추가됩니다
다음:c#/.Net 배열 컬렉션 레이어별 값
게시됨 2018. 2. 1. 오전 10:43:26 |
네 감사해요! 집주인의 실력은 정말 어렵다! 강하게
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com