Oracle Index 의 세 가지 문제
[넥 스 트 페이지]2 강,색인 에 도 좋 고 나 쁨 색인 이 있 습 니 다. B tree 색인 Bitmap 색인 Reverse b tree 색인 기다리다가장 많이 쓰 이 는 것 은 B tree 색인 B Balanced , 에서 tree 의 root 어느 leaf ,똑 같이 많이 거 쳐 야 돼 요. level. 색인 은 한 필드 만 있 을 수 있 습 니 다(Single column), 여러 필드(Composite),최대 32 필드,8I 지지 하 다 Function-based index. 많은 개발 자 모두 일렬 B 를 사용 하 는 경향 이 있다 트 리 인덱스. 색인 의 좋 고 나 쁨 이란: 1.색인 이 많 을 수록 좋 은 것 은 아니다.특히 지금까지 사용 하지 않 았 거나 거의 사용 하지 않 았 던 대량의 색인 은 시스템 에 해 를 끼 칠 뿐이다.OLTP 시스템 은 표 당 5 개의 색인 을 초과 하면 성능 이 떨 어 지고 sql 에 있 습 니 다. 중, Oracle 초과 사용 불가 다섯 개의 색인. 2.단일 색인 이 복합 색인 보다 효율 적 이지 못 한 경우 가 많다. 3.다 중 표 연결 에 사용 되 는 필드 에 색인 을 더 하면 효과 가 있 습 니 다. 그렇다면 어떤 상황 에서 단일 색인 이 복합 색인 보다 효율 적 이지 않 을 까?sql 구문 에서 조회 한 열 은 모두 복합 색인 에 나타 날 때,이 때 는... Oracle 색인 블록 만 조회 하면 모든 데 이 터 를 얻 을 수 있 습 니 다.물론 여러 개의 단일 색인 을 사용 하 는 것 보다 훨씬 빠 릅 니 다.(이때 이런 최적화 방식 은 Index only access path) 그 외 에는?우 리 는 그래도 하나의 예 를 보 자. ...에 있다 HP(Oracle 8.1.7) 위 에서 다음 문장 을 실행 합 니 다: 처음에 우 리 는 두 개의 단일 색인 이 있 었 다.Imytabs1(coid), I_mytabs2(issuedate), 다음은 실행 상황: 조회 한 것 을 얻 기 위해 7000 개의 데이터 블록 을 읽 은 것 을 볼 수 있다. 6000 여 줄. 현재,이 두 개의 단일 인덱스 를 제거 하고,복합 인덱스 를 추가 합 니 다 Imytabs_test ( coid, issuedate), 다시 실행 합 니 다.결 과 는 다음 과 같 습 니 다. 이번 에는 300 개의 데이터 블록 만 읽 은 것 을 볼 수 있다. 7000 원 대 300 원,이것 이 바로 이 예 에서 단일 색인 과 복합 색인 의 대가 의 비례 이다.이 예 는 우리 에 게 많은 상황 에서 단일 색인 은 복합 색인 보다 효율 적 이지 못 하 다. 색인 설정 문제 에 있어 서 는 할 수 있 는 일이 많다 고 할 수 있다.색인 을 정확하게 설정 하려 면 응용 에 대해 전체적인 분석 을 해 야 한다. 1 3
[Next Page]제3 강,색인 이 아무리 좋아 도 소 용 없어 요. 앞에서 말 한 것 을 버 리 고 가짜[1] [2] 다음 페이지보고 있 는 ORACLE 튜 토리 얼 은 Oracle Index 의 세 가지 문제 입 니 다.아주 좋 은 색인 을 설정 하면 모든 바보 들 이 그것 을 사용 해 야 한 다 는 것 을 알 지만 Oracle 하필 이면 쓰 지 않 는 다.그러면 해 야 할 첫 번 째 일 은 너 를 돌아 보 는 것 이다. sql 어구 Oracle 색인 을 사용 하려 면 가장 기본 적 인 조건 이 있 습 니 다. 1, where 자구 의 이 필드 는 복합 색인 의 첫 번 째 필드 여야 합 니 다. 2, where 자구 중의 이 필드 는 어떠한 형식의 계산 에 도 참여 해 서 는 안 된다. 구체 적 으로 말 하면 색인 이 f1, f2, f3 순서 로 만 들 어 졌 습 니 다.지금 하나 있 습 니 다. sql 문구 where 자구 f2 = : var2, ...때문에 f2 색인 의 첫 번 째 필드 가 아니 라 이 색인 을 사용 할 수 없습니다. 두 번 째 문 제 는 우리 사이 에서 매우 심각 하 다.다음은 실제 시스템 에서 잡 은 몇 가지 예: 이상 의 예 는 쉽게 개선 할 수 있다.이러한 문 구 는 매일 우리 시스템 에서 실행 되 며,우리 의 유한 한 cpu 를 소모 합 니 다. 화해시키다 메모리 자원. 1,2 이 두 가 지 를 제외 하고 우 리 는 반드시 마음 에 새 겨 야 할 원칙 외 에 각종 조작 부 대 를 최대한 익 혀 야 한다. Oracle 색인 을 사용 할 지 여부 입 니 다.여기 서 나 는 어떤 조작 이나 조작 부호 만 말 하면 명시 적 으로 막 을 수 있 습 니까? Oracle 색인 사용.다음은 몇 가지 기본 규칙 이다. 1, 하면,만약,만약... f1 화해시키다 f2 같은 표 의 두 필드 입 니 다. f1>f2, f1>=f2, f1 2, f1 is null, f1 is not null, f1 not in, f1 !=, f1 like ‘%pattern%'; 3, Not exist 4, 어떤 경우 in 색인 도 사용 하지 않 습 니 다. 이런 조작 에 대해 서 는 다른 방법 이 없 으 니 가능 한 한 피 할 수 밖 에 없다.하면,만약,만약... sql 적중 하 다 in 색인 을 사용 하지 않 았 습 니 다.아마도 in 조작 비교 조작 + union all。필 자 는 실천 에서 이것 이 매우 효과 적 이라는 것 을 발견 했다. 하지만 오 라 클 색인 을 진정 으로 사용 하 는 지,색인 을 사용 하 는 것 이 진정 으로 효과 가 있 는 지,아니면 현장 테스트 를 해 야 합 니 다.합 리 적 인 방법 은 쓴 것 이 복잡 하 다 는 것 이다. sql, 응용 프로그램 에 쓰기 전에 제품 데이터베이스 에 explain 을 한 번 합 니 다. . explain Oracle 을 획득 하 게 됩 니 다. 마땅 하 다 sql 명확 하 게 볼 수 있다 Oracle 어떻게 sql 라 고 적 었 다. 하면,만약,만약... explain, 복잡 한 것 을 즐겨 쓴다 는 것 을 알 게 될 것 이다. sql 너무 복잡 한 sql 때문에 좋 은 습관 이 아 닙 니 다. 그 해석 계획 은 종종 만 족 스 럽 지 못 하 다.사실 복잡 하 게 sql 뜯 으 면 효율 을 크게 높 일 수 있다.왜냐하면 좋 은 최 적 화 를 얻 을 수 있 기 때문이다.물론 이것 은 이미 별말 이다.
이전 페이지
이전 페이지 [1] [2]