Oracle에 GUID를 저장하는 방법은 무엇입니까?
저는 고유 식별자를 가진 SQL Server 세계에서 왔습니다.오라클에 동등한 것이 있습니까?이 컬럼은 자주 문의되므로 퍼포먼스가 중요합니다.
에서 GUID를 생성하고 있습니다.이를 Oracle에 전달합니다.몇 가지 이유로 오라클에서 생성할 수 없기 때문에 시퀀스를 사용할 수 없습니다.
CREATE table test (testguid RAW(16) default SYS_GUID() )
이 블로그는 상대적인 퍼포먼스를 연구했습니다.
다른 사람들이 언급했듯이 GUID를 사용하여 수치 시퀀스와 비교하여 성능 적중률이 있습니다.즉, Oracle 8i 이후 "SYS_GUID()"라는 이름의 함수를 사용할 수 있습니다.
SQL> SELECT SYS_GUID() FROM DUAL;
SYS_GUID()
--------------------------------
248AACE7F7DE424E8B9E1F31A9F101D5
형식화된 GUID를 반환하는 함수를 만들 수 있습니다.
CREATE OR REPLACE FUNCTION GET_FORMATTED_GUID RETURN VARCHAR2 IS guid VARCHAR2(38) ;
BEGIN
SELECT SYS_GUID() INTO guid FROM DUAL ;
guid :=
'{' || SUBSTR(guid, 1, 8) ||
'-' || SUBSTR(guid, 9, 4) ||
'-' || SUBSTR(guid, 13, 4) ||
'-' || SUBSTR(guid, 17, 4) ||
'-' || SUBSTR(guid, 21) || '}' ;
RETURN guid ;
END GET_FORMATTED_GUID ;
/
따라서 호환 가능한 문자열이 반환됩니다.
SQL> SELECT GET_FORMATTED_GUID() FROM DUAL ;
GET_FORMATTED_GUID()
--------------------------------------
{15417950-9197-4ADD-BD49-BA043F262180}
일부 Oracle 플랫폼에서는 Steven Feuerstein이 지적한 것과 비슷하지만 여전히 고유한 GUID 값이 반환된다는 점에 유의해야 합니다.
2020년 11월 3일 업데이트: 10g에서는 Oracle이 정규 표현 함수의 지원을 추가했습니다.이것에 의해, 접속을 심플화할 수 있습니다.REGEXP_REPLACE()기능.
REGEXP_REPLACE(
SYS_GUID(),
'([0-9A-F]{8})([0-9A-F]{4})([0-9A-F]{4})([0-9A-F]{4})([0-9A-F]{12})',
'{\1-\2-\3-\4-\5}'
)
이 표현은 에 의해 반환되는 문자열 값을 구분합니다.SYS_GUID()각 그룹 사이에 "-"를 삽입하여 16진수 값의 5개 그룹으로 나누고 재구축합니다.
질문을 제대로 이해하면 db에 행을 삽입할 때 고유 ID를 생성하려고 합니다.
시퀀스를 사용하여 이 작업을 수행할 수 있습니다.여기에 링크하다
시퀀스를 작성하면 다음과 같이 사용할 수 있습니다.
INSERT INTO mytable (col1, col2) VALUES (myseq.NEXTVAL, 'some other data');
RAW(16)는 분명히 고유 식별자 MS SQL 유형에 적합한 등가입니다.
GUID는 MSQL과 달리 Oracle에서는 사용되지 않습니다.NUMBER 필드(늘 및 프라이머리 키가 아님), 시퀀스 및 삽입 시 트리거가 (모든 테이블에 대해) 있는 경우가 많습니다.
Oracle에는 고유 식별자가 없습니다.
RAW(일종의 통증) 또는 CHAR을 사용하여 직접 구현할 수 있습니다.CHAR 필드에서 JOIN하는 쿼리의 퍼포먼스는 정수를 사용하는 경우와 비교하여 저하됩니다(최대 40 %).
분산/복제된 데이터베이스를 사용하고 있다면 성능 저하를 감수할 가치가 있습니다.그렇지 않으면 정수만 사용합니다.
Oracle을 사용하는 일반적인 방법은 인공 키를 만드는 것입니다.숫자로 정의된 열입니다.시퀀스를 통해 입력됩니다.주요 키 정의를 통해 색인화/제한됩니다.
언급URL : https://stackoverflow.com/questions/153815/how-should-i-store-a-guid-in-oracle
'programing' 카테고리의 다른 글
| Wordpress - 용어별 사용자 지정 게시 유형 목록의 사용자 지정 분류 페이지 (0) | 2023.03.11 |
|---|---|
| 서비스 내에서 $watch? (0) | 2023.03.11 |
| Wordpress에서의 프래그먼트캐싱(W3TC) 구현 방법 (0) | 2023.03.11 |
| ORA-28000: 계정 잠김 오류 발생 빈도 (0) | 2023.03.11 |
| Woocommerce의 WP_query에서 카탈로그에 표시되는 제품 가져오기 (0) | 2023.03.06 |