728x90
mysql8 부터 캐싱 지원을 하지 않아서 예전 코드 실행시 느려진다.
1. 함수를 이용하면 실행이 엄청 느려진다.
2. 내부 select 문에서 페이징이나 함수 실행시 엄청 느려진다.
## refid(reference id)는 반복되는 쿼리를 미리 작성해 놓고 재활용
<select id="selectCList" parameterType="searchVO" resultType="egovMap">
SELECT
/* , GET_NAME('BIZ', A.BIZ_ID) AS BIZ_NM */
<include refid="common.getBizNm" /> AS BIZ_NM
FROM (
SELECT
~~~~
)
</select>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="common">
<!--
거래처명을 조회함 : GET_NAME('BIZ', A.BUY_BIZ_ID) AS BUY_BIZ_NM 수행시 인덱스 사용 못 하여 성능 안남
Modification Name Content
******************** *************** ******************************
2022.12.01 Kim Songsu 1.0
-->
<sql id="getBuyBizNm">
,(SELECT BIZ_NM FROM DA_BIZ WHERE BIZ_ID = A.BUY_BIZ_ID)
</sql>
<sql id="getBuyBizNm1">
,(SELECT BIZ_NM FROM DA_BIZ WHERE BIZ_ID = B.BUY_BIZ_ID1)
</sql>
<sql id="getBuyBizNm2">
,(SELECT BIZ_NM FROM DA_BIZ WHERE BIZ_ID = B.BUY_BIZ_ID2)
</sql>
<sql id="getSaleBizNm">
,(SELECT BIZ_NM FROM DA_BIZ WHERE BIZ_ID = A.SALE_BIZ_ID)
</sql>
<sql id="getBuyPhone1">
,(SELECT PHONE1 FROM DA_BIZ WHERE BIZ_ID = A.BUY_BIZ_ID) AS BUY_BIZ_PHONE1
</sql>
<sql id="getSalePhone1">
,(SELECT PHONE1 FROM DA_BIZ WHERE BIZ_ID = A.SALE_BIZ_ID) AS SALE_BIZ_PHONE1
</sql>
<sql id="getBuyPhone5">
,(SELECT PHONE5 FROM DA_BIZ WHERE BIZ_ID = A.BUY_BIZ_ID) AS BUY_BIZ_PHONE5
</sql>
<sql id="getSalePhone5">
,(SELECT PHONE5 FROM DA_BIZ WHERE BIZ_ID = A.SALE_BIZ_ID) AS SALE_BIZ_PHONE5
</sql>
<sql id="getBizNm">
,(SELECT BIZ_NM FROM DA_BIZ WHERE BIZ_ID = A.BIZ_ID)
</sql>
</mapper>
728x90