Topic

하드파싱 vs 소프트파싱(Hard Parsing vs Soft Parsing)

JackerLab 2025. 4. 20. 12:28
728x90
반응형

개요

SQL 문이 데이터베이스에서 실행되기 전, 반드시 거치는 단계가 바로 파싱(Parsing)입니다. 이 중에서도 하드파싱(Hard Parsing)과 소프트파싱(Soft Parsing)은 SQL 성능을 결정짓는 핵심 요소입니다. 두 방식의 차이를 이해하면 데이터베이스 튜닝, 응답 시간 단축, 시스템 자원 절감 등의 효과를 얻을 수 있습니다. 이 글에서는 하드파싱과 소프트파싱의 개념, 처리 과정, 차이점, 최적화 전략 등을 정리합니다.


1. 개념 및 정의

구분 정의
하드파싱(Hard Parsing) SQL 문이 처음 실행될 때, 새로운 파싱 트리 및 실행 계획을 생성하는 비용이 큰 작업
소프트파싱(Soft Parsing) 기존에 캐시된 SQL 실행 계획을 재사용하여 파싱을 최소화한 작업
  • 하드파싱은 부하가 크고 느리며, 소프트파싱은 빠르고 효율적입니다.
  • 대부분의 성능 문제는 하드파싱 과다로부터 시작됩니다.

2. 처리 과정 비교

단계 하드파싱 소프트파싱
SQL 문 분석 처음 보는 SQL 동일한 SQL 재사용
파싱 트리 생성 새로 생성 기존 트리 사용
바인딩 새로 수행 재사용 가능
실행 계획 수립 옵티마이저 실행 필요 기존 계획 사용
라이브러리 캐시 활용 없음 있음

하드파싱은 SQL 공유가 안 될 때 발생하며, CPU와 메모리 자원을 많이 소모합니다.


3. 차이점 및 성능 영향

항목 하드파싱 소프트파싱
성능 영향 큰 부하 발생 경량 처리 가능
공유 여부 불가능 가능 (SQL 캐시 활용)
실행 속도 상대적으로 느림 빠름
리소스 소모 CPU/메모리 부담 큼 자원 절감 효과 있음
스케일링 병목 가능성 높음 고성능 트랜잭션 처리 가능

고성능 DB 시스템일수록 소프트파싱 비율이 높아야 안정적인 서비스 운영이 가능합니다.


4. 최적화 전략

전략 설명 기대 효과
바인드 변수 사용 변수를 통한 SQL 재사용 유도 하드파싱 횟수 감소
SQL 템플릿화 조건값만 바꾸는 방식 사용 SQL Pool 캐시 적중률 향상
커서 캐시 설정 DB 커서 재사용 설정 커서 재사용으로 파싱 비용 절감
SQL 문 규칙화 SQL 형식 통일 (띄어쓰기, 대소문자 등) 캐시 매칭 성공률 향상

Oracle 기준으로는 session_cached_cursors, shared_pool_size 등의 파라미터 튜닝도 중요합니다.


5. 실무 적용 사례

사례 설명 효과
금융 트랜잭션 시스템 같은 SQL을 변수만 바꿔 수천 번 실행 바인드 변수로 소프트파싱 98% 달성
전자상거래 주문 시스템 매번 다른 조건으로 SQL 실행 시 하드파싱 과다 발생 SQL 템플릿화 및 캐시 활용 개선으로 응답속도 40% 단축
공공기관 통계 시스템 정기 리포트 생성 시 동일 쿼리 반복 실행 파싱 캐시 적중률 향상으로 배치 시간 절반 절감

실제 튜닝 시에는 AWR 리포트, V$SQL 뷰 등을 통해 하드파싱 발생 비율을 측정합니다.


6. 결론

하드파싱과 소프트파싱은 SQL 실행 성능에 결정적인 영향을 미칩니다. 하드파싱은 불필요한 리소스 소비를 유발하는 반면, 소프트파싱은 이를 줄이고 성능을 개선할 수 있는 효과적인 방법입니다. SQL 개발 시 바인드 변수 사용, 형식 일관화, 커서 재사용 설정 등을 통해 소프트파싱을 최대화하는 전략이 필요합니다.

728x90
반응형