인덱스는 쿼리 성능에 어떤 영향을 줍니까?


12

분명히 여러 개의 다른 인덱스를 유지하면 삽입 및 삭제 성능에 부정적인 영향을 미칩니다. 쿼리 성능은 어떻습니까? 테이블에 너무 많은 인덱스를 유지하는 것이 합리적입니까? 인덱스가 추가 된 경우 (물론 인덱스를 전혀 사용하지 않는 쿼리의 경우) 쿼리 성능이 향상됩니까? 또는 인덱스를 가져 오기 위해 모든 인덱스를 참조해야하기 때문에 쿼리 성능이 너무 많은 인덱스에서 저하 될 수 있습니다. 결과?

테이블에 다른 인덱스가있는 경우 : 모두 고려되거나 옵티 마이저 관점에서 가장 좋은 인덱스 만 고려됩니까? 오라클은 다차원 인덱스를 구현합니까?


2
왜 이것을 테스트하고 결과와 함께 다시보고하지 않습니까? :)
Neil McGuigan

나는 내일 할 것이다 :)
paweloque

2
인덱스가 반드시 삭제 속도를 늦추는 것은 아니며 업데이트 속도가 인덱스를 활용할 수있는 것처럼 속도를 높일 수도 있습니다.
a_horse_with_no_name 14:07의

@el chief 바퀴를 재발 명하는 데있어 요점이 무엇입니까? 따라서 삽입 / 삭제가 영향을 받는다는 것을 알고 있지만 쿼리 성능 효과에 문제가 있습니다. 업데이트는 어떻습니까? 그들은 부정적인 영향을 받습니까?
Sangram

답변:


15

고려해야 할 인덱스가 더 많을 때 계획을 생성하는 데 시간이 조금 더 걸리지 만 그 차이가 상당 할 것으로 의심됩니다. 인덱스를 삭제하는 이유는 쿼리 성능을 나열하지 않습니다. 반면에 일반적으로 쿼리를보다 효율적으로 만드는 데 사용된다는 것을 알지 못하면 인덱스를 만들면 안됩니다.

로부터 오라클 개념 안내서 , 여기에 인덱스를 생성하는 기준이다.

일반적으로 다음 상황 중 하나에서 열에 색인을 작성하십시오.

  • 인덱싱 된 열은 자주 쿼리되며 테이블에있는 총 행 수의 작은 비율을 반환합니다.

  • 참조 무결성 제약 조건이 인덱스 된 열에 존재합니다. 인덱스는 상위 테이블 기본 키를 업데이트하거나 상위 테이블에 병합하거나 상위 테이블에서 삭제하는 경우 필요한 전체 테이블 잠금을 피하기위한 수단입니다.

  • 고유 키 제한 조건이 테이블에 배치되며 인덱스 및 모든 인덱스 옵션을 수동으로 지정하려고합니다.

쿼리의 테이블에있는 모든 인덱스가 사용 가능한지 여부를 결정하기 위해 모든 인덱스가 고려됩니다. 유용성을 결정하기 위해 추가로 조사 할 수있는 것들을 조사합니다.


7

너무 오래 당신으로 통계를 최신 상태로, 비용 기반 최적화 프로그램은 사용되는 인덱스에 관한 합리적인 의사 결정을해야한다. 그렇지 않은 경우 힌트 를 사용하는 시간 입니다. 쿼리를 충족시킬 필요가없는 열의 인덱스를 참조하지 않습니다.


0

나는이 발견 선택 인덱스 전략응용 프로그램 개발자 가이드 . 이 페이지는 '인덱스 전략 선택'에 관한 것입니다.

각 테이블의 인덱스 수 제한

인덱스가 많을수록 테이블이 변경 될 때 더 많은 오버 헤드가 발생합니다. 행을 삽입하거나 삭제하면 테이블의 모든 인덱스를 업데이트해야합니다. 열이 업데이트되면 열의 모든 인덱스를 업데이트해야합니다.

업데이트 성능 오버 헤드와 비교하여 쿼리 인덱스의 성능 이점을 평가해야합니다. 예를 들어 테이블이 주로 읽기 전용 인 경우 더 많은 인덱스를 사용할 수 있습니다. 그러나 테이블이 많이 업데이트되면 더 적은 인덱스를 사용할 수 있습니다.


2
질문에서 ". 분명히 여러 가지 지표가 삽입 및 삭제 성능에 부정적인 영향을 미칠 유지하는 방법 쿼리 성능에 대해"
잭은 말한다 topanswers.xyz 시도
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.