본문 바로가기

MSSQL2

결재 검증 SQL의 실행 흐름 개선 (EXISTS, Short-Circuit 적용) 📌 업무 배경공통된 컬럼을 사용하는 12개의 업무 테이블이 존재테이블: APP_A_MST ~ APP_L_MST공통컬럼: doc_id, biz_year, biz_quarter, biz_round각 업무 결재가 완료되면, 다른 업무들의 상태가 결재완료인지 조회, 다음 과정을 수행하는데 필요한 데이터를 생성해야 함결재가 완료시 결재문서의 doc_id가 반환됨특정 문서(doc_id)가 어느 테이블에 속해 있는지 모름해당 문서가 속한 연도 / 분기 / 차수를 기준으로👉 모든 업무 테이블에서 결재 완료 상태인지 검증APP_A_MST ~ APP_L_MST 가 아닌, 하나의 테이블을 사용하면 좋겠지만, 그럴 수 없는 상황1️⃣ 1차 버전 – UNION ALL 기반 전체 스캔🔧 접근 방식Dynamic SQL을 사용.. 2026. 2. 3.
MSSQL - 행마다 새로운 시퀀스 부여 1️⃣ 업무 요청특정 페이지를 그대로 복제할 수 있도록 해달라는 요청을 받았다.해당 페이지에는 여러 개의 테이블이 존재하고, 그중 일부 테이블은 각 행마다 고유한 ID를 가지는 구조로 되어 있다.기존 페이지에서는 + 버튼을 통해 행을 하나씩 추가하며,이때마다 ID를 개별적으로 채번하는 방식을 사용하고 있었다.하지만 페이지 전체를 복제하는 기능에서는 상황이 달라진다.한 번의 동작으로 n개의 행을 조회하고, 각 행마다 새로운 ID를 부여해야 하기 때문이다.만약 기존 방식처럼 행을 하나씩 추가하며 ID를 채번한다면,통신 횟수가 급격히 증가하고, 결과적으로 페이지 복제 속도와 사용감이 크게 저하될 가능성이 있다.이런 문제를 해결하기 위해,복제 대상 데이터를 한 번에 조회한 뒤, 서버 단에서 각 행에 새로운 ID.. 2026. 1. 28.