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

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

안녕하세요. 오랜만에 인사드립니다.

다름이 아니라 뷰테이블 내에서 아래와 같이 group by를 썼는데 속도가 굉장히 느린 것 같습니다.

결과값은 수만개지만 웹에서 최종 쿼리는 페이징 쿼리를 따로 타서 20페이지씩 짤라서 보여주기는 하는데

이상하게 group by를 넣은 날부터 테스트 하시던 분들이 웹 조회가 굉장히 느려지고 MS-SQL을 사용하는

다른 어플리케이션들이 Timeout이 생긴다고 합니다.

DB쪽은 초짜라서 저렇게 group by를 써도 되는 것인지 모르겠습니다만 우선 결과가 잘 나오니 이렇게 쓰고는 있는데요

이걸 퍼포먼스를 고려하여 효과적으로 쿼리를 다시 짤 수 있을까요?

dbo.Pallet_Mst.PalletNo 항목을 기준으로 중복된 것이 많이 나와서 PalletNo 중복을 걸러서 묶어주려다 보니

저렇게 무식하게 많은 group by를 쓰게 되었습니다.

아니면 아예 처음부터 dbo.Pallet_Mst 테이블의 항목들을 중복 제거하여 조인을 걸어주는 방법을 쓰는 것이 나을런지요?

경험과 지식이 부족하여 이런 질문드리게 되어 죄송스럽게 생각합니다. 조언 주시면 정말 고맙겠습니다.

참고로 설치된 버전은 SQL 2012 입니다. 아래는 SQL Server가 느려지는 문제로 보이는 group by를 사용한

Vw_productPosition 테이블입니다.



이미지 242.png


위의 쿼리입니다.


SELECT  dbo.Pallet_Mst.PalletNo, dbo.Product_Mst.PartNo, dbo.Pallet_Dtl.Qty, dbo.Product_Mst.ErpCode, 

               dbo.Product_Mst.PartNm, dbo.Product_Mst.Standard, dbo.Product_Mst.Unit, dbo.Product_Mst.ProcDiv, 

               dbo.Product_Mst.Data1, dbo.Product_Mst.Data2, dbo.Product_Mst.Data3, dbo.Product_Mst.Data4, 

               dbo.Pallet_Mst.PalletDiv, dbo.Code_Mst.DivCode, dbo.Code_Mst.DivNm, dbo.Code_Mst.CodeNm, 

               dbo.Pallet_Mst.PlantSite, Code_Mst_1.DivCode AS DivCode2, Code_Mst_1.CodeNo AS CodeNo2, 

               Code_Mst_1.DivNm AS DivNm2, Code_Mst_1.CodeNm AS CodeNm2, dbo.Pallet_Mst.PrintDate, 

               dbo.Pallet_Mst.PrintUser, dbo.Pallet_Mst.State, dbo.Pallet_Mst.RegDate, dbo.Pallet_Mst.RegTime, 

               dbo.Pallet_Mst.Note, dbo.Pallet_Mst.Loc, dbo.Pallet_Mst.AssFlag

FROM     dbo.Pallet_Mst LEFT OUTER JOIN

               dbo.Position_Info ON dbo.Pallet_Mst.Loc = dbo.Position_Info.Loc INNER JOIN

               dbo.Pallet_Dtl ON dbo.Pallet_Mst.PalletNo = dbo.Pallet_Dtl.PalletNo INNER JOIN

               dbo.Product_Mst ON dbo.Pallet_Dtl.PartNo = dbo.Product_Mst.PartNo INNER JOIN

               dbo.Code_Mst ON dbo.Pallet_Mst.PalletDiv = dbo.Code_Mst.CodeNo INNER JOIN

               dbo.Code_Mst AS Code_Mst_1 ON dbo.Pallet_Mst.PlantSite = Code_Mst_1.CodeNo

WHERE  (dbo.Code_Mst.DivCode = '01') AND (Code_Mst_1.DivCode = '10') AND (dbo.Pallet_Mst.State = 'W')

GROUP BY dbo.Pallet_Mst.PalletNo, dbo.Product_Mst.PartNo, dbo.Pallet_Dtl.Qty, dbo.Product_Mst.ErpCode, 

               dbo.Product_Mst.PartNm, dbo.Product_Mst.Standard, dbo.Product_Mst.Unit, dbo.Product_Mst.ProcDiv, 

               dbo.Product_Mst.Data1, dbo.Product_Mst.Data2, dbo.Product_Mst.Data3, dbo.Product_Mst.Data4, 

               dbo.Pallet_Mst.PalletDiv, dbo.Code_Mst.DivCode, dbo.Code_Mst.DivNm, dbo.Code_Mst.CodeNm, 

               dbo.Pallet_Mst.PlantSite, Code_Mst_1.DivCode, Code_Mst_1.CodeNo, Code_Mst_1.DivNm, 

               Code_Mst_1.CodeNm, dbo.Pallet_Mst.PrintDate, dbo.Pallet_Mst.PrintUser, dbo.Pallet_Mst.State, 

               dbo.Pallet_Mst.RegDate, dbo.Pallet_Mst.RegTime, dbo.Pallet_Mst.Note, dbo.Pallet_Mst.Loc, dbo.Pallet_Mst.AssFlag



어떻게 다듬어야 퍼포먼스가 나올까요? 고수분들의 도움이 절실합니다.


No. Subject Author Date Views
7172 선입선출 쿼리 문의 [5] 제시카 2013.09.22 4465
7171 이런 경우 검색쿼리가 불가능한건가요?... [2] 이제는선택할때 2013.09.17 3355
7170 sql 로그인 에러 메세지 원인... ? [1] izzy 2013.09.16 7757
7169 SSIS txt 파일 동적 생성 문의 [1] 김진우_283983 2013.09.16 4424
7168 고수님들 도와주세요 [1] 왕만두와우동 2013.09.16 3351
7167 로그 파일 줄이려는데 안됩니다. 조언 부탁 드립니다. [1] ssong 2013.09.13 6495
7166 ip주소로 로그인하기 [3] sdfgaa 2013.09.13 4292
7165 SSIS 에서 DB 데이터를 엑셀에 내보내기 할 때 [2] adb 2013.09.13 4340
7164 인증모드바꾸기 [1] sdfgaa 2013.09.13 3771
7163 엑셀에서 데이터 가져오기 sdfgaa 2013.09.13 5460
7162 테이블에 없는것 골라내기.. [1] 윤미 2013.09.13 4373
7161 null값이 자주 들어가는 칼럼을 index를 만들어도 되나요? [2] 청개구리대왕 2013.09.13 4668
7160 프로시져 질문. [2] 형님 2013.09.13 3774
7159 쿼리설치시문제좀해결해주세요 [2] dlawms 2013.09.12 3983
7158 시간 계산 관련 질문좀 드릴게요 [1] 왕만두와우동 2013.09.12 4347
7157 저장프로시저(SP)의 매개변수에 대하여 [4] 캡이다 2013.09.12 4937
» 뷰테이블 내의 Group by 퍼포먼스 관련 질문드립니다. [3] 하이페츠 2013.09.12 5155
7155 고수분들 초보적인것좀 도와주세요 [5] 왕만두와우동 2013.09.11 4340
7154 mssql 2000 -> 2008 업그레이드 관련 문의 드립니다. [1] 자비드 2013.09.11 6522
7153 테이블 합치는 방법에 대하여 질문드려요! [3] WhoAmI 2013.09.11 3798





XE Login