테마
본사 유통 DB의 alert.log에 SQL 관리 영역이 SYSAUX의 10%를 넘었다는 경고가 매주 찍힌다. 박팀장은 이참에 베이스라인 대장을 점검하자고 했다. 작년 11월 업그레이드 주간에 자동 캡처를 켜고 핵심 화면 일곱 개는 손으로 올렸는데, 그 뒤로 누구도 대장을 보지 않았다. 조민우가 현황을 뽑았다. 점장 화면 「매장 판매 상위 상품」(하루 약 600번)은 2주 전부터 느리다는 말이 있었는데, 조민우는 그 SQL이 목록에 있는 것을 보고 얼굴이 굳었다. 2주 전 18화 실습을 따라 ENABLED를 내려 본 SQL이었다.
optimizer_capture_sql_plan_baselines TRUE(2024-11 업그레이드 주간에 켠 뒤 그대로) · optimizer_use_sql_plan_baselines TRUEMODULE = 'RPT_TOOL')는 본부 사용자가 고른 조건을 리터럴로 박은 SQL을 보낸다. 같은 리포트를 두 번 누르는 일이 잦다.CF11 판매상품: 1,096,708행 · 8,204블록 · CF15 입출고상품: 51,497행 · 349블록 · CF18 일별상품재고: 408행 · 6블록SPACE_BUDGET_PERCENT 10 · PLAN_RETENTION_WEEKS 53-- 2024-11 업그레이드 주간 (그때 넣은 줄이 그대로 남아 있다)
ALTER SYSTEM SET optimizer_capture_sql_plan_baselines = TRUE SCOPE = BOTH;
-- 2주 전 조민우 : 18화 §2.4 [8] 을 따라 「매장 판매 상위 상품」의 베이스라인을 내려 보았다
DECLARE
n PLS_INTEGER;
BEGIN
n := DBMS_SPM.ALTER_SQL_PLAN_BASELINE(sql_handle => 'SQL_3f8a1c2e9d7b0461',
plan_name => 'SQL_PLAN_3f8a1c2e9d7b0461a5c3e9d2',
attribute_name => 'ENABLED',
attribute_value => 'NO');
END;
/
[SYSAUX · alert.log]
SQL_MANAGEMENT_BASE 1.21GB (SYSAUX 11.3GB의 10.7%)
SPM: SMB space usage (1298137088) exceeds 10.000000% of SYSAUX size (12133220352).
[DBA_SQL_PLAN_BASELINES 요약 · 3,412개]
ORIGIN ACCEPTED 개수 비고
AUTO-CAPTURE YES 3,268 그 가운데 MODULE 'RPT_TOOL' 3,190개 · 대부분 실행 2번 뒤 다시 쓰이지 않음(LAST_EXECUTED가 만든 날)
AUTO-CAPTURE NO 71 진화에서 떨어졌거나 아직 시험하지 않은 계획
MANUAL-LOAD-FROM-CURSOR-CACHE YES 73 핵심 화면 일곱 개를 포함
[핵심 화면 · 눈여겨볼 셋]
SQL ENABLED ACCEPTED FIXED REPRODUCED LAST_MODIFIED 지금 계획 (Buffers · 받아들인 계획일 때)
S2 매장 판매 상위 상품 NO YES NO YES 2주 전 HASH JOIN · CF11 FULL 8,412 (받아들인 NL 312)
S3 입출고 대사 (배치) YES YES NO NO 25-09-18 CF15 FULL 361 (받아들인 계획은 9월에 지운 IX_CF15_ITM 을 쓴다 · 그때 11)
S6 매장 재고 마감 (배치) YES YES YES YES 22-03-02 INDEX RANGE SCAN 4 (2022년에 FIXED)
· 나머지 네 개(S1, S4, S5, S7)는 ENABLED YES · REPRODUCED YES · 지금 계획이 받아들인 계획