SQL Server 2005 인스턴스에서 약간의 속도 저하가 발생하고 있습니다. 이것링크성능 세부 정보를 보여줍니다. 이런 유형의 데이터를 매일 분석하지 않기 때문에 I/O 시스템에 실제 문제가 있는지 궁금했습니다.
서버는 SAN을 사용하고 있으며 DB 파일과 Tempdb 파일은 동일한 드라이브(E:)에 있습니다. 최고의 아키텍처는 아니지만 서버를 제어할 수 없습니다. 서버는 Cognos를 이용하여 보고서를 실행하는 데 사용되므로 대부분 읽기 전용 DB입니다.
감사해요
수정해야 할 재미있는 코드가 있습니다.
select "tempSalesRpt_SubRgnDist"."Region" AS "Region",
min("tempSalesRpt_SubRgnDist"."RegionName") AS "Region_Text"
from "SalesReporting"."dbo"."tempSalesRpt_SubRgnDist" "tempSalesRpt_SubRgnDist",
(select "SecurityMaster"."Userid" AS "Userid", "SecurityMaster"."SoldTo" AS "SoldTo"
from "SalesReporting"."dbo"."SecurityMaster" "SecurityMaster"
where "SecurityMaster"."Userid" = lower ('USTGACA')) "SecurityMaster4"
where NOT "SecurityMaster4"."Userid" is null
and "tempSalesRpt_SubRgnDist"."SoldTo" ="SecurityMaster4"."SoldTo"
group by "tempSalesRpt_SubRgnDist"."Region"
order by 1 asc , 2 asc
securitymaster 테이블은 모든 쿼리에서 액세스되며 최근에 증가한 테이블입니다.
이 코드에는 분할할 수 없는 코드가 있다고 가정하지만 실행 계획에는 인덱스 탐색과 키 조회가 사용되는 것으로 나와 있습니다.
몇 가지 새로운 인덱스가 도움이 될 수 있지만 더 자세히 알아볼 필요가 있다고 생각합니다.
답변1
제공된 데이터에 따르면 뭔가 진행되고 있는 것으로 나타났습니다. 디스크 대기열은 읽기당 초이고 쓰기 카운터당 초는 원하는 것보다 훨씬 높습니다. 여기서 중요한 점은 이것이 디스크 문제를 의미하는 것이 아니라 단지 디스크가 충돌하고 있다는 것을 의미한다는 것입니다. 인덱싱 문제나 통계 문제로 인해 SQL Server가 필요한 것보다 더 세게 디스크에 접속하게 될 수 있습니다.
먼저 데이터베이스의 인덱스를 살펴보고 새 인덱스를 생성해야 하는지 확인하세요. 이렇게 하면 데이터베이스 크기가 증가하지만 디스크에 대한 트래픽이 감소하고 쿼리 실행 시간이 감소합니다.
인덱스를 추가해야 하는 위치를 알려주는 장기 실행 쿼리의 실행 계획을 살펴보는 것부터 시작할 수 있습니다.
답변2
Denny의 답변 외에도 상자에 약 5GB의 여유 메모리가 있습니다. SQL 메모리를 올바르게 구성했습니까?
32비트 시스템을 사용하는 경우 AWE를 활성화하여 더 많은 메모리를 처리할 수 있습니다.
http://technet.microsoft.com/en-us/library/ms190673(SQL.90).aspx
SQL은 이 추가 메모리를 사용하여 더 많은 데이터베이스 테이블/인덱스를 캐시합니다(데이터베이스가 여유 메모리보다 크다고 가정).