2012-02-21 3 views
0

저는 32 기가의 RAM과 Intel Xeon CPU (2.4GHz에서 2 프로세서)가있는 서버를 가지고 있습니다.SQL Server 2008 데이터베이스 테스트

SQL Server 2008은 3 개 또는 4 개의 데이터베이스로 실행됩니다.

문제는 CPU와 메모리가 최대 용량으로 실행되었고 처음에는 Visual Studio를 통해 실행중인 다중 스레드 응용 프로그램이라고 생각했지만 문제를 종료 한 후에는 아무 것도 변경되지 않았습니다. 누군가는 SQL에서 성능 테스트를 제안했지만 이것이 필요한 답을 줄지 확신 할 수 없습니다.

나는 활동 모니터를 보았고 나는 비싼 쿼리 등을 볼 수있다. 그러나 나의 질문은 이것이 충분한 지 아닌지이다. CPU 및 메모리의 스파이크를 유발하는 원인에 대한 내 통계를 제시해야하며 활동 모니터 결과가 충분하거나 SQL Server 프로파일 러를 사용하고 추적을 실행해야합니까? 어떤 제안도 감사합니다.

+1

나는 CPU 사용량에 대해 말할 수는 없지만 SQL Server는 메모리에 대한 욕심을 갖기 위해 설계되었습니다. 거의 모든 것을 소비 할 것으로 예상됩니다. 서버 자체에서 작동하도록 설계 되었기 때문입니다. –

답변

1

다음 쿼리를 사용하여 내 서버에서 가장 비싼 쿼리를 찾습니다 (원래 here).

잘하면 도움이됩니다.

SELECT DISTINCT TOP 10 t.TEXT QueryName, 
         s.execution_count AS ExecutionCount, 
         s.max_elapsed_time AS MaxElapsedTime, 
         Isnull(s.total_elapsed_time/s.execution_count, 0) AS AvgElapsedTime, 
         s.creation_time AS LogCreatedOn, 
         Isnull(s.execution_count/Datediff(s, s.creation_time, Getdate()), 0) AS FrequencyPerSec 
FROM sys.dm_exec_query_stats s 
     CROSS APPLY sys.Dm_exec_sql_text(s.sql_handle) t 
ORDER BY s.max_elapsed_time DESC 
+0

감사합니다. 결과에 놀랐습니다. 이것은 가장 오랜 시간이 걸리는 쿼리에 기반하고 정확히 실행 횟수는 – vbNewbie

+0

입니다. 두 가지 쿼리가 하루에 두 번 있기 때문에 내가 묻는 이유가 있습니다. 목록의 모든 삽입 쿼리 – vbNewbie

+0

예, 내림차순 시간순으로 정렬됩니다. 실행 횟수는 쿼리가 실행 된 횟수입니다. 링크 된 사이트 (원래 쿼리를 얻은 곳)에 다음과 같이 실행하여 모든 카운터를 재설정하고 새로 고침을 시작할 수 있습니다 : 'DBCC FREEPROCCACHE'. 물론 모든 검색어가 언급되어있는 것은 아닙니다. 이것은 상위 10 개 항목입니다. 상단의 'TOP 10'절을 다른 금액으로 변경하거나 모든 검색어를 보려면 완전히 삭제하십시오. – Bridge

관련 문제