itn 2023-09-15
일문자 발송건수 쿼리 성능개선
@759984f89de3d90fff0e30f0dc6fc29b29db51b9
src/main/java/itn/let/mjo/sttst/service/SttstMsgScheduling.java
--- src/main/java/itn/let/mjo/sttst/service/SttstMsgScheduling.java
+++ src/main/java/itn/let/mjo/sttst/service/SttstMsgScheduling.java
@@ -40,7 +40,8 @@
 	private String GlobalsEnv;
 	
 	/**
-	 * mj_sttst_msg 테이블 통계 데이터 생성 
+	 * mj_sttst_msg 테이블 통계 데이터 생성 (한시간 한번) 
+	 * 매시간 43분 47초 실행
 	 * insert or update 처리	 
 	 * @param
 	 * @return
@@ -72,6 +73,7 @@
 	
 	/**
 	 * mj_sttst_msg 테이블 통계 데이터 생성 (매일한번)
+	 * 새벽 3시 30분 47초 한번실행
 	 * insert or update 처리	 
 	 * @param
 	 * @return
src/main/resources/egovframework/sqlmap/let/sttst/MjonSttstData_SQL_mysql.xml
--- src/main/resources/egovframework/sqlmap/let/sttst/MjonSttstData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/sttst/MjonSttstData_SQL_mysql.xml
@@ -6,8 +6,10 @@
 <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
 <sqlMap namespace="MjonSttst">
 	<typeAlias  alias="mjonMsgVO" type="itn.let.mjo.msg.service.MjonMsgVO"/>
-	
+
+	<!-- 매시간 43분 47초 실행 -->	
 	<insert id="mjonSttst.insertMjSttstMsgBulk" parameterClass="mjonMsgVO">
+	<![CDATA[
 		INSERT INTO MJ_STTST_MSG
 		(
 			send_date
@@ -17,7 +19,6 @@
 			, API_SUCCESS_CNT
 			, regist_pnttm
 		)
-		
 		SELECT
 			aa.regDate
 			, aa.hSendCount
@@ -118,7 +119,8 @@
 					WHERE 1=1
 						AND USER_ID NOT IN ('hftest', 'itntest', 'imotest', 'itntestBatch')
 						AND P.RESERVE_C_YN = 'N'
-						AND P.req_date > DATE_ADD(now(), interval -14 day)
+						AND P.REQ_DATE >= DATE_FORMAT(NOW(),'%Y-%m-%d')
+						AND P.REQ_DATE < DATE_ADD(DATE_FORMAT(NOW(),'%Y-%m-%d'), INTERVAL 1 DAY)
 					GROUP BY
 						P.MSG_GROUP_ID
 					)M
@@ -131,9 +133,12 @@
 			, API_SEND_CNT			=aa.aSendCount
 			, API_SUCCESS_CNT		=aa.aSuccessCount
 			, regist_pnttm			=now()
+	]]>
 	</insert>
 	
+	<!-- 새벽 3시 30분 47초 한번실행 -->
 	<insert id="mjonSttst.insertMjSttstMsgDayBulk" parameterClass="mjonMsgVO">
+	<![CDATA[
 		INSERT	INTO   MJ_STTST_MSG
 		(
 			send_date
@@ -143,7 +148,6 @@
 			, API_SUCCESS_CNT
 			, regist_pnttm
 		)
-		
 		SELECT
 			aa.regDate
 			, aa.hSendCount
@@ -154,8 +158,10 @@
 		FROM(
 			SELECT
 				M2.regDate
-				, SUM(M2.sendCount)    AS sendCount
-				, SUM(M2.successCount) AS successCount
+				, SUM(M2.hSendCount)		AS hSendCount
+				, SUM(M2.hSuccessCount)		AS hSuccessCount
+				, SUM(M2.aSendCount)		AS aSendCount
+				, SUM(M2.aSuccessCount)		AS aSuccessCount 				
 			FROM(
 				SELECT
 					M.REQ_DATE							AS regDate /*발송일*/
@@ -241,6 +247,8 @@
 					WHERE 1=1
 						AND USER_ID NOT IN ('hftest','itntest','imotest','itntestBatch')
 						AND P.RESERVE_C_YN = 'N'
+						AND P.REQ_DATE >= DATE_ADD(DATE_FORMAT(NOW(),'%Y-%m-%d'), INTERVAL -7 DAY)
+						AND P.REQ_DATE < DATE_FORMAT(NOW(),'%Y-%m-%d')						
 					GROUP BY
 						P.MSG_GROUP_ID
 					)M
@@ -253,6 +261,7 @@
 			, API_SEND_CNT			=aa.aSendCount
 			, API_SUCCESS_CNT		=aa.aSuccessCount
 			, regist_pnttm			=now()
+		]]>
 	</insert>
 	
 	<insert id="mjonSttst.insertMjSttstMsgRankBulk" parameterClass="mjonMsgVO">
Add a comment
List