카운트 쿼리 튜닝 질문 0 8 2,044

by 그루비 [SQL Query] SQL 튜닝 [2018.06.20 20:38:44]


데이터가 100만건 정도 되는 테이블이 있는데

해당 데이터가 각 월 별로 대체로 8~12만건정도 쌓입니다.

해당 월의 카운트를 하려고하는데 월별로 1초남짓 걸립니다.

이게 월이 지나면 지날수록 느려지고 있어 수정을 하려고 하는데 잘 되지 않아서 조언을 얻고자 질문 드립니다.

 

SELECT NVL(COUNT(*),0) MONTHCNT
FROM MONTHDATA
WHERE TO_CHAR(TO_DATETIME(MONDATE, 'YYYYMMDD'), 'YYYY') = '2018'
	AND TO_CHAR(TO_DATETIME(MONDATE, 'YYYYMMDD'), 'MM') = '05'
	AND CHANNEL = 'S'
	AND DELFLAG = 0

 

by 우리집아찌 [2018.06.21 08:47:08]

월단위로 파티셔닝 테이블 추천드립니다.

 


by 우리집아찌 [2018.06.21 08:54:25]

사용가능하진는 DBA에게 물어보셔야 하실겁니다.


by 그루비 [2018.06.21 09:00:40]

DBA가 따로 계시지 않아서...

파티셔닝 테이블이 먼지 검색해보겠습니다.


by 우리집아찌 [2018.06.21 09:03:52]

오래된 시스템이시면 STANDARD 버젼에서는 안될테고

파티션 기능을 쓰시려면 금액이 추가될겁니다.


by 그루비 [2018.06.21 14:13:10]

돈이 더 들어가는거군요....


by 마농 [2018.06.21 10:50:45]

COUNT(*) 함수는 널이 나오지 않으므로 NVL 필요 없구요.
조건 줄 때 컬럼을 가공하여 조건에 맞추지 말고
컬럼은 그대로 둔 채 조건을 가공하여 컬럼에 맞춰줘야 합니다.
TO_DATETIME 는 오라클 함수가 아닌 듯 한데요?


by 그루비 [2018.06.21 14:10:33]

DB는 큐브리드입니다.


by 우리집아찌 [2018.06.21 14:53:30]

오라클이 아니시군요..

파티션테이블 지원여부 부터 확인해보셔야합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입