2008-09-15 1 views
12

.NET 코드와 SQL Server 간의 실행 시간을 줄이기위한 검사 목록입니다. 기본에서 별난 솔루션까지 무엇이든 주시면 감사하겠습니다..NET 응용 프로그램을 SQL Server 시간 초과 문제로 수정하고 실행 시간을 향상시키기위한 검사 목록

코드 : 명령 및 avgbody하여 관련

변경 기본 시간 제한.

avgbody 인라인 SQL 문 대신 저장 프로 시저 호출을 사용하십시오.

활성 모니터를 사용하여 차단/잠금을 찾으십시오 (Jay Shepherd).

SQL 서버 :

AlexCuse으로 저장 프로 시저에 스니핑 매개 변수에 대한 조심.

데이터베이스를 동적으로 증가 시키려면 Martin Clarke으로주의하십시오.

프로필러를 사용하여에 100 밀리 초 이상 걸리는 쿼리/저장 프로 시저를 찾습니다.

트랜잭션 시간 초과를 avgbody 늘립니다.

동적 저장 프로 시저를 정적 항목으로 변환하면 avgbody이됩니다.

서버가 얼마나 바쁜 지 확인하십시오. Jay Shepherd.

답변

1

맨 먼저 - 실행중인 실제 쿼리를 확인하십시오. 프로그램을 통해 SQL Server Profiler를 사용하고 모든 쿼리가 올바른 조인과 참조 키를 사용하고 있는지 확인합니다. 이/차단 활동 모니터

  • 네트워크 문제/성능 진행 잠금에 대한
  • 봐가 너무 바쁜 경우 서버의

  • 0

    몇 가지 간단한 것들 ...

    • 확인 프로세서 사용을 확인합니다
    3

    긴 응답 시간에 불만을 제기하는 기묘한 "해결책"은보다 흥미로운 진행률 표시 줄을 갖는 것입니다. 의미, 사용자의 감각에 작동합니다. 한 가지 예는 Windows Vista 대기 아이콘입니다. 빠른 회전 원은 빠르게 진행되는 느낌을줍니다. 구글은 안드로이드 (적어도 내가 본 버전)에서 같은 트릭을 사용합니다.

    그러나 기술적 인 문제를 먼저 해결하고 선택의 여지가 없을 때만 인간의 행동을 시도하는 것이 좋습니다.

    5

    은 과거에 내 솔루션의 일부가되었습니다

    1. 가하는 SqlCommand의 설정을 기본 시간을 수정 :

      새로운하는 SqlCommand으로 어둡게 myCommand ("[DBO].[spSetUserPreferences] "myConnection과)

      myCommand.CommandType = CommandType.StoredProcedure

      myCommand.CommandTimeout = 120

    2. 증가 연결 초과 문자열 :

      데이터 소스에서 MyDatabase =; 초기 카탈로그 = 일치, 보안 정보 유지 = True, 사용자 ID = 사용자, 암호 = 암호, 연결 시간 초과 = 120

    3. SQL Server 2005에서 트랜잭션 시간 제한을 늘리십시오.

      관리 스튜디오에서 도구> 옵션> 선택/선택 취소. 정적들

    4. 변환 동적 저장 프로 시저 코드를 호출하는 대신 코드에서 인라인 SQL 문을 작성하는 저장 프로 시저 확인합니다.

    0

    쿼리 실행 시간을 측정하기 위해 프로필러를 실행하십시오.
    응용 프로그램 로깅에서 교착 상태가 있는지 확인하십시오.

    0

    나는 SQL Server Profiler을 사용하는 것을 좋아합니다. 나는 업무 일의 시간에 좋은 15-30 분 청크를 위해 데이터베이스 서버의 클라이언트 사이트에 추적을 설정하고 100 밀리 초 이상의 지속 시간을 가진 모든 쿼리/저장된 procs를 기록하는 것을 좋아한다. 어쨌든 "장기 실행"쿼리를위한 내 기준입니다. 오늘날에도 적용 할 수있는 SQL 서버 2000에 적용

    0

    이상한 하나

    당신이 동적으로 생산 데이터베이스를 성장하기 위해 노력하고 있지 않은지 확인하십시오. 그 여분의 공간을 할당하는 데 걸리는 시간과 정상적인로드가 실행되면 쿼리가 시간 초과 될 수 있습니다 (또한 성장!)