programing

Oracle에 동등한 기능 포함

iphone6s 2023. 7. 11. 21:39
반응형

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

반응형