database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 30573 게시물 읽기
No. 30573
mysql 쿼리 튜닝에 대해 문의 드립니다.
작성자
zerre
작성일
2013-03-21 08:54
조회수
8,625

 안녕하세요 mysql에서 해당 sql 실행 결과가 너무 늦게 나와서 문의를 드립니다. 

sql문과 explain을 보시고 결과가 늦게 나오는 이유에 대해 조언 부탁드립니다. 

감사합니다. 

sql문 : 

select c.yyyy      

           , c.quota seq

          , substring(FN_GET_COMPANY_AVG_2(c.YYYY,c.quota,c.company),1,2) total_users_avg

from quota_date c use index (idx_yyyy, idx_company, idx_quota)

     inner join UHC_MEASURE_PHYSICAL a on a.yyyy = c.yyyy

     inner join UHC_USER_INFO b on a.USER_ID=b.USER_ID

where c.company = 'T'

GROUP BY c.YYYY,c.quota

 

Explain : 

 

id select type table type possible_keys key key_len ref rows extra
1  SIMPLE  c  ref  idx_yyyy, idx_company  idx_company 6  const 25  Using where; Using temporary; Using filesort
1  SIMPLE  a  index  PRIMARY  PRIMARY 78   1992  Using where; Using index
1  SIMPLE  b  eq_ref  PRIMARY  PRIMARY 62  uhealthcare_demo.a.USER_ID 1  Using index

 

 

 

이 글에 대한 댓글이 총 2건 있습니다.

데이터 량과 관계가 정확하지 않아 튜닝이 될지 모르겠지만

plan상으로 봤을때는 c를 먼저 group처리하고

나머지 테이블은 체크 조건으로 처리 하면 될 것 같습니다.

 

select t.*
from (
 select c.yyyy     
      , c.quota seq
      , substring(FN_GET_COMPANY_AVG_2(c.YYYY,c.quota,c.company),1,2) total_users_avg
 from quota_date c
 where c.company = 'T'
 GROUP BY c.YYYY,c.quota
) t
WHERE EISTS (SELECT 1
             FROM UHC_MEASURE_PHYSICAL a
      inner join UHC_USER_INFO b on a.USER_ID=b.USER_ID
      WHERE a.yyyy = t.yyyy)

박인호(paerae)님이 2013-03-21 13:21에 작성한 댓글입니다.

 감사합니다... 

덕분에 잘 해결 할 수 있었습니다. 

zerre님이 2013-03-21 15:37에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
30576리플리케이션 1054에러 ... [3]
배원준
2013-03-29
10161
30575프로시저 질문입니다 [1]
asd
2013-03-27
8639
30574트리거에서 old value 질문드립니다.
강한구
2013-03-21
8312
30573mysql 쿼리 튜닝에 대해 문의 드립니다. [2]
zerre
2013-03-21
8625
30572긴글에서 금칙어 걸러내는 방법
비됴
2013-03-20
9323
30571이런것도 가능할까요?? [1]
정대만
2013-03-18
8167
30570자동증가에서 중간에 삭제된 값을 다시 사용할 수 있는 방법있을까요?
김준
2013-03-18
8184
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.038초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다