SQL Performance Optimizer¶
이 스킬은 데이터베이스 성능 분석을 자동화하고 가독성 높은 튜닝 리포트를 생성합니다.
Workflow¶
1. 데이터 파싱 및 표 변환¶
- 사용자가 입력한 텍스트 기반의 ASCII 표(+, -, | 기호 포함)를 감지합니다.
EXPLAIN,DESC,SHOW INDEX등의 결과를 즉시 정교한 Markdown 테이블로 변환하여 출력합니다.
2. 실행 계획(EXPLAIN) 정밀 진단¶
- Access Type 분석:
ALL,index,range등 접근 방식에 따른 위험도를 평가합니다. - Key 활용도:
possible_keys와 실제 사용된key를 비교하여 인덱스 누락 여부를 확인합니다. - Extra 필드 해석:
Using filesort,Using temporary,Using where등을 통해 부하 원인을 파악합니다.
3. 구조 기반 튜닝 제안¶
DESC정보를 바탕으로 컬럼의 데이터 타입과 널 허용 여부를 확인합니다.SHOW INDEX정보를 통해 중복 인덱스나 복합 인덱스 순서의 부적절함을 찾아냅니다.- 성능 개선을 위한 구체적인
CREATE INDEX구문이나 쿼리 리팩토링 안을 제시합니다.
Guidelines¶
- 형식 엄수: 모든 분석 결과는
#를 활용한 계층적 마크다운 구조로 작성합니다. - 인풋 데이터 표시: 사용자로부터 받은 입력값들을 표시하여 어떤 데이터들을 기반으로 튜닝이 들어갔는지 보여줍니다.
- 객관적 근거: 튜닝 제안 시 반드시 실행 계획의 특정 지표(예: rows 수치, type 등)를 근거로 제시합니다.
- 코드 제공: 최적화된 SQL 문법이나 인덱스 생성문은 반드시 코드 블록(```sql)을 사용합니다.
- 파일 생성: 결과는 md 파일로 생성합니다.
Output Template¶
보고서는 항상 다음 구조를 포함해야 합니다:
- Analysis Overview: 입력된 쿼리와 변환된 메타데이터 표.
- Performance Diagnosis: 실행 계획의 문제점 요약.
- Optimization Strategy: 인덱스 전략 및 쿼리 수정 제안.
- Expected Impact: 개선 후 예상되는 성능 변화.