Oracle에 동등한 기능 포함
SQL 서버에서 쓸 수 있습니다.
create index indx on T1 (A,B) INCLUDE (C,D,E)
오라클에서도 동일한 작업을 수행할 수 있는 방법이 있습니까?
참조:
http://msdn.microsoft.com/en-us/library/ms190806.aspx
http://www.dba-oracle.com/t_garmany_easysql_btree_index.htm
이 답변은 SQL Server에 포함된 열이 키 수준에서만 포함된 열을 저장하지 않는다는 점을 지적하기 위한 것입니다.4개의 열을 포함하면 해당 열은 잎 수준의 블럭에 데이터로 저장됩니다.
복합 인덱스의 추가 부분으로 작성하면 대신 인덱스가 더 많은 수준으로 분할됩니다.
복합지수(A,B,C)로
Level1 Level2 Leaf
(Branch)
A1
B1
C1
B2
C3
B3
C6
C7
A2
지수(A)에는 (B,C)가 포함됩니다.
Level1 Leaf
A1 B1,C1 | B2,C3 | B3,C6 | B3,C7
A2 null,null
스토리지 구조의 차이(성능에 영향을 미치는)가 INCLUED 열로 도입되는 이유입니다. 그렇지 않으면 이 새로운 기능을 도입할 이유가 없습니다.
인덱스에 모든 열을 넣기만 하면 됩니다.
create index indx on T1 (A,B,C,D,E)
Oracle이 인덱스를 사용하기로 결정한 경우(예: A 및 B가 WHERE 절에 있음) 인덱스에서 C, D 및 E 값을 가져옵니다.
열이 매우 긴 막대형인 경우 Oracle이 인덱스를 작성하지 못할 수 있습니다.이를 "커버된" 인덱스라고 부르기도 하며 여러 번 사용하거나 본 적이 있습니다.
인덱스 구성 테이블을 만들고 키로 특정 열만 저장할 수 있습니다.포함할 열을 나열하지 않고, 마지막 열만 나열하고 모든 열이 포함됩니다. (이상하게 들리지만, 일반적으로 SQL에서는 열 순서가 중요하지 않습니다.)개인적으로 인덱스 정리 테이블이 이상하고 한계가 너무 많은 것 같아요, 레드카유가의 아이디어가 더 나을 것 같습니다.
create table t1
(
a number,
b number,
c number,
d number,
e number,
f number,
g number,
primary key (a, b, c)
)
organization index
including e
overflow;
언급URL : https://stackoverflow.com/questions/5108651/include-equivalent-in-oracle
'programing' 카테고리의 다른 글
| 일부 Excel 파일이 공유 경로에서 SQL Server로 이동하지 않음 (0) | 2023.07.11 |
|---|---|
| git reflog와 log의 차이점은 무엇입니까? (0) | 2023.07.11 |
| Mongo 오류:토폴로지가 닫혔습니다. 데이터베이스 연결이 설정되었지만 연결하십시오. (0) | 2023.07.11 |
| Mongoose 삽입 많은 제한 (0) | 2023.07.11 |
| Excel 번호 형식 문자열(예: "@", "$409]d-mmm-yy;@") - 전체 참조 가능 여부? (0) | 2023.07.11 |