데이터 가져 오기 (C # / Linq 사용)를 실행 중이며 당연히 가능한 한 많이 쿼리를 최적화하려고합니다. 이를 위해 내 SQL 로그인 이름 (데이터 가져 오기 프로세스에 고유 할 수있는 이름)으로 필터링 된 내 트레이스를 사용하여 SQL Server 프로파일 러를 사용하여 DB에서 트레이스를 실행하고 있습니다.
이상하게도 대부분의 SQL 문은 정말 빠릅니다. 1ms 표시를 초과하는 쿼리도 거의 없습니다. 그러나 모든 쿼리 사이에는 EventClass가 “Audit Login”또는 “Audit Logout”인 여러 행이 있으며 “Audit Logout”의 기간은 최대 1 분입니다!
가져 오기에서 트랜잭션을 사용하고 있다는 사실과 관련이 있습니까? 그렇다면 정리할 수 있도록 가장 중요한 쿼리를 찾을 수있는 방법이 있습니까?
답변
정확하다고 기억한다면 감사 로그 아웃 기간은 연결이 열린 시간입니다. 예를 들어 명령의 속도와 관련이 없습니다. 로그인이 ‘로그인’된 시간입니다.
답변
로그인 / 로그 아웃 이벤트는 설정 / 해체와 관련이 있습니다. IIRC 시간은 다른 로그 이벤트와 마찬가지로 처리 기간이 아니라 ‘시간 동안 로그인되었습니다’입니다.
일반적으로 연결 풀 관리 등에 문제가 있다고 의심되지 않는 한 이러한 이벤트를 숨 깁니다.
배치의 원시 시간은 트랜잭션 등의 영향을 포함하여 실제 활동에 걸리는 시간을 진단하기에 충분해야합니다.
답변
감사 로그 아웃 이벤트 클래스는 사용자가 Microsoft SQL Server에서 로그 아웃 (로그 오프)했음을 나타냅니다. 이 클래스의 이벤트는 새 연결 또는 연결 풀에서 재사용되는 연결에 의해 시작됩니다.
유휴 시간을 포함하여 연결이 로그인 된 총 시간이므로 성능 문제를 나타내지 않습니다. 또한 프로파일 링 로그인 / 로그 아웃은 성능 문제를 일으킬 가능성이 거의 없습니다. 성능이 낮은 쿼리, 아마도 오래 실행되는 쿼리를 찾는 것이 좋습니다.
자세한 내용은 https://msdn.microsoft.com/en-us/library/ms175827.aspx를 제안합니다.