2008-09-30 3 views
4

성능 병목 현상이나 메모리 문제를 찾기 위해 Java/.Net 앱을 프로파일 링하는 방법을 좋아합니다. 예를 들어 the call tree with execution times and invocation counts per method을 보면 성능 ​​병목 현상을 쉽게 발견 할 수 있습니다. SQL Server에서 다른 메서드를 호출하는 Java/.NET 메서드와 비슷한 뷰에 의존하는 다른 저장 프로 시저를 호출하는 프로 시저를 저장했습니다. 그래서 같은 종류의 프로파일 러가 여기에서 매우 도움이 될 것 같습니다. 그러나, 나는 멀리 보았고 하나를 찾을 수 없었다. 누구든지 SQL Server 나 다른 DBMS 용 도구에 대해 알고 있습니까?Java/.Net 프로파일 러와 유사한 SQL Server 프로파일 러가 있습니까?

업데이트 : SQL Server 프로파일 러에 대한 답장을 보내 주셔서 감사합니다. 그러나이 도구는 매우 제한적입니다. the screenshot을 살펴보십시오.

답변

6

체크 아웃 SQL Nexus Tool. 여기에는 병목 현상을 확인하는 좋은 보고서가 있습니다. SQL Nexus는 SQL Server 성능 문제의 근본 원인을 식별하는 데 도움이되는 도구입니다. SQLDiag 및 PSSDiag에서 수집 한 성능 데이터를로드하고 분석합니다. 수동으로 데이터를 분석하는 데 소요되는 시간이 크게 단축됩니다.

내부 SQL 2005 책 (T-SQL 쿼리 일 수도 있음) 중 하나에서 작성자가 SQL 프로파일 러 출력을 테이블이나 Excel 파일로 덤프하고 피벗을 적용하여 스크린 샷과 비슷한 형식입니다.

그런 종류의 분석을 제공하는 내장 SQL 도구를 보지 못했습니다. 또 다른 유용한 post.

0

프로파일 링 측면을 다루는 S ql Profiler을 사용할 수 있지만, 필자는 로깅 도구라고 생각하는 경향이 있습니다. 성능을 진단하려면 query plan을보아야합니다.

3

@Galwegian의 주석에서 언급 한 것처럼 SQL Server 프로파일 러 외에도 쿼리를 실행할 때 실행 계획을 확인하십시오.

http://www.sql-server-performance.com/tips/query_execution_plan_analysis_p1.aspx
http://en.wikipedia.org/wiki/Query_plan

+0

나는 쿼리가 실행되고있는 전체보기를 얻을, 다음 쿼리 계획에서 더 살펴 봐야 쿼리 분석기에 너무 느리게 실행되는 쿼리를 복사 할 프로파일 러를 실행합니다. – Kibbee

2

는 SQL Server 프로파일 러에 대한 또 다른 전체 스레드 :

Identifying SQL Server Performance Problems

나는 당신이 무엇에 관해 얘기하는지 이해하지만, 일반적으로, 데이터베이스 최적화는 미세한 그레인 수준에서 일어난다 . 데이터베이스 활동이 클라이언트에서 실행되는 경우 기존 클라이언트 프로파일 러를 사용하여 각 단계의 총 시간을 얻은 다음 데이터베이스에 있는지 여부와 관계없이 낮은 지연 과일을 처리 할 수 ​​있어야합니다.

특정 데이터베이스 단계를 자세히 프로파일 링해야하는 경우 프로파일 러와 추적을 사용할 수 있습니다.

일반적으로 데이터베이스 액세스는 개별 단위로 처리되는 특정 세분성을 가지며 데이터베이스 활동은 모든 종류의 사용자 액세스에서 선형 적이 지 않지만 프로그램 프로파일 러는 일반적으로 선형 코드 경로를 프로파일 링합니다.

0

SQL 서버 프로파일 러가 있지만 그 이름에도 불구하고 질문의 소리에 의해 원하는대로 작동하지 않습니다. 데이터베이스에서 진행되는 모든 통화에 대한 상세보기를 보여줍니다. 쿼리 분석기에서 쿼리의 실행 계획/spocs을 확인하고 그것이 당신에게 유사한 무언가를 줄 것이다에 당신이 필요로하는 것처럼

는 소리 한 번에 전체가 아닌 하나의 sproc를 응용 프로그램 문제 해결을위한 더 나은입니다 당신이 찾고있는 데이터.

1

언급 한 바와 같이 SQL Server Profiler는 프로그램 매개 변수를 확인하는 데 유용합니다. SQL 등으로 전달됩니다. 필요한 경우 실행 트리가 표시되지 않습니다. 이를 위해 Show Plan을 사용하여 런타임에 정확히 무엇이 실행되는지 확인할 수 있습니다. 예 : 뷰를 호출하는 SP를 호출하는 경우 Profiler는 sp가 실행되었고 어떤 매개 변수가 전달되었는지 만 보여줍니다. 또한 Windows 성능 모니터에는 SQL Server와 관련된 광범위한 런타임 성능 메트릭이 있습니다. 서버에서 실행하거나 원격으로 연결할 수 있습니다.

1

성능 병목 현상을 찾으려면 데이터베이스 엔진 튜닝 관리자 (SQL Server Management Studio의 도구 메뉴에 있음)를 사용할 수 있습니다.질의를 최적화하고 자동으로 최적화하도록 제안합니다 (e.x. 적절한 색인 작성 등).

0

여러 답변에서 언급했듯이 SQL 프로파일 러는 사용자가 요청한 내용을 표시합니다. 확실하게해야 할 일은 저장 프로 시저 그룹에있는 이벤트 SP : StmtCompleted를 설정하고 쿼리 계획을 원할 경우 성능 그룹에있는 실행 계획 XML 통계 프로필을 설정하는 것입니다 . 마지막 XML 계획은 그래픽 설명을 제공하고 계획의 각 단계에서 처리 된 실제 행을 표시합니다.

프로필러에서 앱 속도가 느려지는 경우 가능한 한 필터링하여 서버 측 추적으로 이동하십시오.

HTH 앤디

관련 문제