2016-08-10 2 views
2

배경 :SQL 서버에서 느린 사용자 로그인 세션 추적

비슷한 크기와 동일한 스키마의 데이터베이스가 있습니다. 모두 동일한 설정을 가지며 동일한 인스턴스에 배치됩니다. 모든 사람들이 응용 프로그램을 사용하여 데이터베이스에 액세스하고 쿼리합니다. 응용 프로그램 내에서 모든 연결 문자열은 모든 데이터베이스에 대해 동일합니다 (로그인 및 암호 제외). 많은 사용자가 우리 데이터베이스 중 하나에 로그인하고 쿼리 할 때 상당히 느려지지만 다른 데이터베이스는 그렇지 않습니다.

문제 : 데이터베이스의

하나 점진적으로 접근 느린 속도가 느린되었다. 쿼리 실행 시간에도 영향을 미치지 만 사용자가 로그인하는 데 걸리는 시간만큼 중요하지는 않습니다. 이제 로그인하는 데 약 50 초가 걸립니다. 다른 모든 데이터베이스의 경우 로그인 시간은 약 4-5 초입니다.

질문 :

내가 문제가있는 데이터베이스에 세션에서 로그 - 더에 "건강한 데이터베이스"정상 로그인의 세션을 비교하고 싶습니다. 로그인 세션에서 정확히 무슨 일이 일어나는지 모니터링하는 방법을 제안 해주십시오. 특정 데이터베이스에 대해 실행되는 쿼리를 추적하는 방법을 알고 있지만 느린 로깅을 만드는 것이 무엇인지 찾아야할지 모르겠습니다. 프로파일 러나 확장 된 이벤트가 그러한 정보를 표시합니까? 사용자가 로그인하기를 기다리는 동안 발생하는 상황을 분석 할 수있는 다른 방법이 있습니까?

답변

1
표시되는 ddbb로 전송 모든 쿼리를 추적, 등

사용자 이름, 데이터베이스 이름을 기준으로 필터링 할 수있는 기능하기 위해 SQL Server 프로파일 러를 사용 https://msdn.microsoft.com/en-us/en-en/library/ms175047.aspx

내가 걸릴 수

ddbb 색인 및 통계를보십시오. 이러한 색인은 잘 유지되지 않으면 ddbb를 느리게 할 수 있습니다.

+0

오스카 감사합니다. 응용 프로그램을 통해 실행되는 각 쿼리의 실행 시간이 표시됩니까? – QWE

+0

@QWE 예, 둘 다 시작 시간과 종료 시간 – Oscar

+2

_events_ 및 _column__을 (를) 추적하여 유용 할만한 이름으로 @Oscar를 추천 할 수 있습니까? 예를 들어'Duration','StartTime' 및'EndTime' 컬럼이 체크 된'SQL : BatchCompleted'와'SQL : StmtCompleted' 이벤트가 있습니다. –