인덱스 관리 기준관하여
3
작성한 질문수 17
선생님, 오라클 인덱스 관리 실무 감각을 좀 잡고 싶어서요. 인덱스를 추가할지 말지 결정하실 때 가장 먼저 보시는 단 하나의 지표가 뭔가요? 그 컬럼으로 조회했을 때 결과가 얼마나 좁게 걸러지는지, 논리읽기(Buffer Gets)가 많은지, 아니면 그 테이블에 INSERT·수정이 잦은지 중에서요.
그리고 경험상 한 테이블에 인덱스가 "이 개수 넘으면 위험하다" 싶은 상한선이 있으세요? 운영 중인 큰 테이블에 새로 만들 때 락이나 부하는 또 어떻게 관리하시는지도 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 개foot님.
오라클 데이터베이스에서 인덱스를 관리하고 최적화하는 것은 성능 튜닝의 중요한 부분입니다. 인덱스를 추가하거나 제거하는 결정을 내릴 때 고려해야 할 다양한 지표와 경험이 있는 도움이 될 수 있는 가이드를 드리겠습니다.
인덱스를 추가할지 결정할 때 가장 먼저 고려하는 지표:
선택도(Selectivity): 인덱스를 적용할 컬럼의 선택도가 중요합니다. 선택도가 높을수록 쿼리 성능 향상에 유리합니다. 컬럼 값이 유니크할수록, 즉 결과가 좁게 필터링될수록 좋습니다.
쿼리 성능 분석: 쿼리에 대한 실제 실행 계획과 논리 읽기(Buffer Gets) 수치를 확인하여 인덱스가 필요한 지 여부를 파악합니다. 논리 읽기가 많다면 인덱스를 고려할 수 있습니다.
DML 작업 빈도: 테이블에 INSERT, UPDATE, DELETE 작업이 잦은 경우는 인덱스가 성능을 저하시킬 수 있습니다. 특히 데이터 변경이 많은 테이블에는 인덱스 추가에 신중해야 합니다.
인덱스 개수 관리 및 락(lock) 관리:
인덱스 개수 제한: 일반적으로 인덱스의 개수는 전체적으로 테이블 및 시스템 성능에 영향을 미칠 수 있습니다. 보통 경험적으로 인덱스는 4~5개 이하로 관리하는 데, 이는 테이블의 사용 패턴에 따라 다를 수 있지만 너무 많은 인덱스는 DML 성능을 저하시킬 수 있습니다.
부하 관리: 큰 테이블에 인덱스를 추가할 때는 Online Index Rebuild 옵션이나 낮은 작업 부하 시간대에 작업을 진행하여 락으로 인한 문제를 최소화할 수 있습니다. 하지만 이러한 옵션은 데이터베이스 버전이나 설정에 따라 다르게 적용될 수 있습니다.
좀 더 구체적인 경험담과 다양한 방법론에 대해서는 다음의 게시물을 참고하실 수 있습니다:
질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
다른 디비관련
0
11
2
추가 연습 문제 링크 주세요
0
21
0
용어 사전
0
31
2
개념적 모델링 - 실습
0
27
1
postgres-1에 minio에서쓸 meta data 속성이 왜저장되나요?
0
30
1
WSL에서 Airflow 실행 시 로컬 venv 라이브러리 사용 여부 및 관리 방법
0
28
2
DB 설계와 JPA 관련 질문입니다
0
26
1
21c 버전으로 해도 무방한가요?
0
33
3
vercel실행 - failed to fetch
0
30
2
dags_email_on_failure
0
32
3
드랍 테이블로 지운 ordes에 대해서 질문
0
29
1
문제 풀이 1번 질문
0
34
1
아주 작은 정오표 전달드립니다.
0
62
2
mysql워크벤치를 실행할때마다 오류가 뜹니다. 해결 방법좀 가르켜주세요.
0
57
1
DAG 실습 - dags_bash_operator 실행 실패
0
36
3
함수기반 인덱스
0
39
3
날짜 인덱스관련 질문
0
27
1
복합인덱스 확인법
0
26
0
GROUP BY 시 인덱스를 타지 않는 이유가 궁금합니다
0
36
1
맥북용 자료 부탁드립니다.
0
62
2
그 EXISTS의 힌트절에 NESTED LOOP를 쓰는이유 질문
0
110
2
어우 옵티마이저가 뛰어난건지..
0
63
1
안녕하세요 NESTED LOOP 문제에서
0
90
2
Buffers와 TotalCost / cpu_cost / io_cost 의 차이점?
0
110
2





