데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

쿼리 성능 관련

냥냥 2013.12.17 17:39 Views : 4610

4개의 테이블을 가지고 페이징을 해야 하는데

첫번째 페이지는 조회가 되는데 2번째 페이지쪽은 쿼리 시간이 오래 걸리네요


주문할때 해당 업체가 특정기간내에 많이 주문한 물품 순으로 정렬을 해줘야 합니다.

기본제품 테이블(Product)이 있고 기간별로 가격이 달라질 수 있기 때문에
기본제품테이블을 기준으로 특정기간별로 Group_Product 테이블이 생성됩니다.

실제 주문은 Group_Product 에 있는 가격을 기준으로 주문이 되는거죠


Product : 기본제품 테이블

Order : 주문테이블

Order_Product : 주문제품테이블

Group_Product : 특정기간내 제품정보


많이 주문한 물품순으로 정렬을 해야 되서

Order테이블과 Order_Product 테이블을 join 시킵니다.

이 테이블은 계속 쌓이므로 1000개만 가져오도록 제한시켰습니다.


결국 총 4개의 테이블을 가지고 조회를 합니다.

한 페이지에 8개만 가져오는데도 속도 문제가 있네요

아래 쿼리는 페이징 쿼리는 제외하고 실제 데이타만 가져오는 부분입니다.


특정기간내제품정보번호 는 상단에서 기간으로 조회를 해서 가져옵니다.


select top 8 a.product_number, d.idx, d.product_cost from 

Product_Copy a inner join (select idx, p_number, 

product_cost from Group_Product where grp_idx=특정기간내제품정보번호) d on a.product_number=d.p_number left outer join (select top 1000 p_number from Order a inner join Order_Product b on a.idx=b.order_idx 

and trans_date>='2013-09-17' and trans_date<='2013-11-17 23:59' and mng_agency_idx=업체번호 

group by p_number order by sum(p_ea) desc, max(p_name)) c on a.product_number=c.p_number  order by product_name


통계DB를 따로 만들어야 될까요?

현재 운영중인 사이트라 따로 만들기가 힘들것 같아서


현재 쿼리에서 어떤식으로 바꾸면 효율이 더 좋을까요?


도움 부탁 드립니다.

No. Subject Author Date Views
7452 안녕하세요~ 아직 생초짜 입니다.. where 절에 1=1 의미좀 알고싶어 질문드립니다.. [2] 상구 2013.12.20 4434
7451 mysql dump파일을 mssql로 옮기는방법좀 알려주세요 [1] 최주냉 2013.12.19 5396
7450 오라클에서 DBMS_LOB.SUBSTR 사용 이유?? 단비령 2013.12.19 6889
7449 sql server management studio 쿼리 정렬 기능 질문입니다. [1] sams 2013.12.19 19166
7448 테이블 키변경으로 인한 인서트 속도 저하 질문좀요 ㅠㅜ [1] 처리짱 2013.12.19 3953
7447 기본적인 게시판 테이블 속도문의 [1] 나방 2013.12.18 3932
7446 상위 한건 가져오는 쿼리문 개선문의 [3] 몽이누나 2013.12.18 4378
7445 결합인덱스 사용 질문입니다. [2] sams 2013.12.18 4141
7444 쿼리상 단가계산인데..금액차이가 발생을 합니다.. [1] 풀내기vber 2013.12.18 5152
» 쿼리 성능 관련 [3] 냥냥 2013.12.17 4610
7442 sql server 2000에서 sql server 2008로 복제 쭈니74 2013.12.17 3956
7441 윈도우인증오류에러 HSQL 2013.12.17 4916
7440 profiler 본인 것만 추적하기 관련 문의입니다. [4] 하하하하하 2013.12.17 5562
7439 Microsoft OLE DB Provider for SQL Server 오류 '80004005' 질문드릴게요 닉부이치치 2013.12.16 9392
7438 뷰테이블 생성관련 질문입니다. 달님별님코자 2013.12.16 7961
7437 Select 결과 복사 후 엑셀에 붙여넣기 하는데 개행문자에 문제가 있습니다. [3] LASI 2013.12.16 18325
7436 where 에 case 문의 드립니다. [4] 뽕남 2013.12.12 8715
7435 NULL과 관련하여... [2] 메칸더 2013.12.12 8241
7434 Identity로 설정된 컬럼에 관한 겁니다. [2] 김락중_278785 2013.12.12 3085
7433 대용량의 데이터를 insert 할 경우 데이터 가 쌓이는 순서가 이상합니다. [7] 바람의취객 2013.12.12 4400





XE Login