MS SQL Server SEQUENCE에 Oracle과 같은 ORDER 매개 변수가없는 이유는 무엇입니까?


9

에서 의 문서 CREATE SEQUENCET-SQL에 대한 , 당신은 볼 수있는 CREATE SEQUENCE명령이 더 없습니다 ORDER매개 변수를.

비교를 위해 Oracle 문서CREATE SEQUENCEORDER/ NOORDER옵션 보여줍니다 .

ORDER

ORDER요청 순서대로 시퀀스 번호가 생성되도록 지정하십시오 . 이 절은 시퀀스 번호를 타임 스탬프로 사용하는 경우에 유용합니다. 기본 키를 생성하는 데 사용되는 시퀀스에는 순서를 보장하는 것이 중요하지 않습니다.

ORDERReal Application Clusters와 함께 Oracle Database를 사용하는 경우 주문 생성을 보장하기 위해 필요합니다. 단독 모드를 사용하는 경우 순서 번호는 항상 순서대로 생성됩니다.

NOORDER

NOORDER요청 순서대로 시퀀스 번호가 생성되는 것을 보장하지 않으려면 지정 하십시오. 이것이 기본값입니다.

Microsoft SQL Server는 SEQUENCEs에 강력한 순서 제약 조건을 제공합니까 ? 아니면 Microsoft가 일반적으로 중요하다고 생각하지 않습니까?


2
Oracle을 사용하면 SQL Server에 RAC와 동등한 것이 없다는 것을 알기 만하면 일반적으로 RAC에서만 의미가 있습니다. 왜 필요하다고 생각하십니까?
a_horse_with_no_name

SQL Server와 호환되는 프로그램을 만들고 있습니다. 일부 시퀀스를 만들고 CREATE SEQUENCE명령문에서 ORDER 매개 변수를 만났으며 문제가되지 않을 것이라고 확신하고 싶었습니다 (왜 ORDER처음에 왜 추가 되었는지 확실하지 않으므로 경우에 따라 요청할 수 있음).
Daniel Gray

답변:


12

SQL Server에서 모든 시퀀스 번호는 단일 인스턴스에서 생성되므로 이미 순서가 정해져 있습니다. 그리고 당신이 그것들을 유일한 숫자로 사용한다면 그것은 실제로 중요하지 않습니다.

RAC 환경 (모든 Oracle 구현은 아님)에서 두 개의 다른 "인스턴스"에 의해 두 개의 시퀀스 번호가 생성 될 수 있기 때문에 Oracle 구현은 다릅니다 (오라클에게는 잘못된 용어이지만 SQL Server의 동등성 만 나타냄). Oracle 문서에서 말한 것처럼 원래 요청의 순서를 실제로 반영하기 위해 시퀀스를 타임 스탬프로 사용하지 않는 한 일반적으로 먼저 요청한 요청이 느리고 나중에 요청 된 요청보다 더 높은 수는 상관하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.