출석부 위젯 만지작 거리다 발견한 것인데...

출석부 모듈의 출석 리스트를 가져오는 쿼리에서 상당한 속도저하가 발생할 수 있어보입니다.

 

아래의 XML쿼리 파일 입니다.

getAdminAttendanceList.xml

<query id="getAdminAttendanceList" action="select">
<tables>
<table name="attendance" />
<table name="member" type="left join">
<conditions>
<condition operation="equal" column="attendance.member_srl" default="member.member_srl" />
</conditions>
</table>
</tables>
<columns>
<column name="attendance.attendance_srl" alias="attendance_srl" />
<column name="attendance.regdate" alias="regdate" />
<column name="attendance.member_srl" alias="member_srl" />
<column name="attendance.greetings" alias="greetings" />
<column name="attendance.today_point" alias="today_point" />
<column name="attendance.today_random" alias="today_random" />
<column name="attendance.ipaddress" alias="ipaddress" />
<column name="attendance.att_random_set" alias="att_random_set" />
<column name="attendance.present_y" alias="present_y" />
<column name="attendance.a_continuity" alias="a_continuity" />
</columns>
<conditions>
<condition operation="like_prefix" column="attendance.regdate" var="now" />
<condition operation="equal" column="attendance.member_srl" default="member.member_srl"  pipe="and"/>
</conditions>

<navigation>
<index var="sort_index" default="attendance.regdate" order="asc" />
<list_count var="list_count" default="5" />
<page_count var="page_count" default="5" />
<page var="page" default="1" />
</navigation>
</query>

 

전혀 사용하지않는 member테이블을 attendance테이블에 left join후 where절을 수행 합니다.
이는 attendance테이블에 자료가 쌓일수록 심각한 속도 저하로 이어집니다.
예전에 사용했던 쿼리중 정리안되고 남아 있는것이라면 정리가 필요 해 보입니다. 아래처럼 수정해도 결과는 동일합니다.

 

<query id="getAdminAttendanceList" action="select">
<tables>
<table name="attendance" />
</tables>
<columns>
<column name="attendance.attendance_srl" alias="attendance_srl" />
<column name="attendance.regdate" alias="regdate" />
<column name="attendance.member_srl" alias="member_srl" />
<column name="attendance.greetings" alias="greetings" />
<column name="attendance.today_point" alias="today_point" />
<column name="attendance.today_random" alias="today_random" />
<column name="attendance.ipaddress" alias="ipaddress" />
<column name="attendance.att_random_set" alias="att_random_set" />
<column name="attendance.present_y" alias="present_y" />
<column name="attendance.a_continuity" alias="a_continuity" />
</columns>
<conditions>
<condition operation="like_prefix" column="attendance.regdate" var="now" />
</conditions>

<navigation>
<index var="sort_index" default="attendance.regdate" order="asc" />
<list_count var="list_count" default="5" />
<page_count var="page_count" default="5" />
<page var="page" default="1" />
</navigation>
</query>

 

@람보님 확인 해 보시고 모듈에 적용을 부탁 드립니다.

 

  • profile
    대단하심 ^_______^
  • ?
    능력자!