fix(anchoring): pending 부분 인덱스 술어에 qt_type=1 추가 — 무한 성장 방지
DB 과설정 점검에서 발견: 기존 술어(adjustment_id IS NULL AND deleted=false)로는 배치가 마킹하지 않는 비재협상 세션(재견적 등)이 인덱스에 영구 잔류해, "이월 풀만 담는 소형 인덱스" 의도와 달리 전체 세션 수에 비례해 성장하고 sessions 쓰기마다 유지 비용을 냈다. qt_type=1 을 술어에 포함해 재협상 미처리분만 남도록 수정 (키 컬럼도 status 단독으로 축소). dev DB 재생성 적용, 문서 동기화. 점검 결과 그 외 객체(테이블 1·컬럼·인덱스 1·뷰 2)는 과설정 없음으로 판정. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
a132dac57a
commit
24cd74dda0
@ -335,10 +335,11 @@ ALTER TABLE negotiation.sessions
|
||||
ADD COLUMN IF NOT EXISTS last_offered_price BIGINT NULL, -- 마지막 제시가(가격 흔적) — 가격 입력마다 갱신, 종료 후 불변
|
||||
ADD COLUMN IF NOT EXISTS anchoring_adjustment_id BIGINT NULL; -- NULL=미처리 0=제외확정 >0=소비한 조정 id
|
||||
|
||||
-- 배치 스캔 최적화: 미처리 세션만
|
||||
-- 배치 스캔 최적화: 미처리 "재협상" 세션만 (qt_type=1 을 술어에 포함 MUST —
|
||||
-- 빼면 배치가 마킹하지 않는 비재협상 세션이 영구 잔류해 인덱스가 무한 성장)
|
||||
CREATE INDEX IF NOT EXISTS idx_sessions_anchoring_pending
|
||||
ON negotiation.sessions (qt_type, status)
|
||||
WHERE anchoring_adjustment_id IS NULL AND deleted = false;
|
||||
ON negotiation.sessions (status)
|
||||
WHERE anchoring_adjustment_id IS NULL AND deleted = false AND qt_type = 1;
|
||||
```
|
||||
|
||||
### 6.3 조회용 뷰 (파생 — 상태 없음)
|
||||
|
||||
@ -33,10 +33,12 @@ ALTER TABLE negotiation.sessions
|
||||
ADD COLUMN IF NOT EXISTS last_offered_price BIGINT NULL, -- 협력사 마지막 제시가(원) — 가격 입력마다 backend 가 갱신, 종료 후 불변. NULL=가격 흔적 없음(표본 제외)
|
||||
ADD COLUMN IF NOT EXISTS anchoring_adjustment_id BIGINT NULL; -- NULL=미처리 0=제외확정 >0=소비한 조정 id
|
||||
|
||||
-- 배치 스캔 최적화: 미처리 세션만 (부분 인덱스)
|
||||
-- 배치 스캔 최적화: 미처리 "재협상" 세션만 (부분 인덱스).
|
||||
-- qt_type=1 을 술어에 포함해야 함 — 빼면 배치가 마킹하지 않는 비재협상 세션이
|
||||
-- 영구 잔류해 인덱스가 전체 세션 수에 비례해 성장한다(의도는 이월 풀만 담는 소형 인덱스).
|
||||
CREATE INDEX IF NOT EXISTS idx_sessions_anchoring_pending
|
||||
ON negotiation.sessions (qt_type, status)
|
||||
WHERE anchoring_adjustment_id IS NULL AND deleted = false;
|
||||
ON negotiation.sessions (status)
|
||||
WHERE anchoring_adjustment_id IS NULL AND deleted = false AND qt_type = 1;
|
||||
|
||||
-- ============================================================
|
||||
-- 조회용 뷰 (파생 — 상태 없음, 진실 원천은 rate_adjustments)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user