Stored Procedure(SP)는 PreparedStatement를 사용하는 것 처럼 DB단에서부터 컴파일을 미리 해놔 쿼리 실행 속도를 높이는 방법으로 실행을 할 수 있다.
하지만 문제는 SP는 조인을 할 수 없다.
이럴때 View(뷰)를 사용하면 된다.
View는 미리 컴파일을 하지는 않는다고 하지만 테이블 조인으로 인해 속도 문제가 발생할 경우 View 또한 쿼리를 직접 날려 수행하는 것보다 훨씬 빠르게 문제를 해결할 수 있다.
CREATE VIEW 뷰이름_V AS
SELECT A.OOO
, A.PPP
, A.TTT
, B.KKK
, B.GGG
FROM TABLE1 A
LEFT OUTER JOIN TABLE2 B
ON A.OOO = B.OOO
WHERE 1=1
AND A.TTT = '신규'
AND B.DateKey >= (CONVERT(VARCHAR(10), DATEADD(YEAR, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0)), 112)) -- 작년 시작일
이런식으로 쿼리를 작성해 날리면 뷰가 생성된다.
'개발자 > Database & SQL' 카테고리의 다른 글
SQL Error [8101] [S0001] 테이블 'OOO'에 있는 ID 열의 명시적 값은... (0) | 2021.01.05 |
---|---|
DBeaver SQL 키워드 자동 대문자 (0) | 2020.12.30 |
SQL 마지막 날짜 데이터만 가져오기 (0) | 2020.12.24 |
SQL 변수 사용에 따른 속도 (0) | 2020.12.23 |
SQL 올 해 시작 날짜, 마지막 날짜 구하기, etc... (0) | 2020.12.22 |