2009-02-28 3 views
1

2 분 이상 근무한 SP를 지금도 실행하는데 2 분 이상 걸립니다. 이러한 사전 실행을 캐시 또는 다른 곳에 저장하는 방법이 있습니까? 그렇다면 클라이언트가 웹 브라우저에서이 데이터를 볼 때 자신이나 나를 걸고 싶어하지 않습니까?더 나은 성능을 위해 저장 프로 시저 결과 저장/캐싱? (SQL Server 2005)

저는 DBA 근처에 어디에 있느냐에 상관없이 내가 이것을 알아 내려고 고용 한 사람의 자비를 베풀고 있습니다. 그래서 약간의 지식을 가지고 있으면 정말 도움이 될 것입니다.

+0

이 쿼리의 결과는 온라인 상태 즉 브라우저에 표시됩니다. 그렇다면 현재 어떤 언어를 사용하고 있습니까? 아니면 현재 사용되고 있습니까? –

+0

예, 온라인으로 표시됩니다. --Net을 사용하고 있습니다. 내 응용 프로그램에서 결과를 캐시 할 수 있지만 초기 호출은 몇 분이 걸리는 것이 진짜 문제라는 것을 알고 있습니다. – Slee

답변

8

실제로 실행하는 데 시간이 오래 걸리는 경우 SQL Agent를 사용하여 프로세스를 실행하도록 예약하고 출력을 테이블로 이동 한 다음 웹 응용 프로그램을 변경하여 저장 프로 시저를 실행하지 않고 테이블을 읽을 수 있습니다. 새로 고침을 실행하는 빈도를 결정하고 새로 고치는 동안 발생하는 요청을 처리해야하지만, 두 개의 출력 파일, 즉 라이브 파일 하나와 최신 새로 고침 파일 하나를 처리하여 처리 할 수도 있습니다.

그러나 절차를 다시 한 번 살펴보고 실행 계획을보고 속도가 느린 곳을 확인하고 전체 테이블 스캔을 수행하지 않도록하십시오.

1

쿼리 메뉴에서 "데이터베이스 엔진 튜닝 관리자의 쿼리 분석"을 시도하십시오. 나는 대개 프로 시저를 새 창에 스크립트로 작성하고 쿼리 정의 부분을 꺼내어 임시 테이블, 일반 테이블 및 테이블 변수의 다른 조합을 시도합니다.

+0

DTA는 완벽하지는 않지만 프로세스가 시작되고 성능이 상당히 향상 될 것입니다. – mrdenny

0

데이터 테이블의 인스턴스를 유지하여 메모리에 저장하거나 디스크에 직렬화하여 데이터베이스와 대조적으로 응용 프로그램에 결과 세트를 캐시 할 수 있습니다. 얼마나 많은 행을 반환합니까? 코드를 게시하는 데 너무 오래 걸립니까? 이 순서에

4

선호하는 솔루션 :

  1. 쿼리를 분석하고 (당신도하지 asp.net 응용 프로그램 경우 (httpRuntime.Cache을 사용할 수 있습니다) 응용 프로그램에 따라
  2. 캐시를
  3. 캐시를 최적화 SPROC는 DB의 테이블을 생성 한 다음 트리거를 추가하여 캐시를 무효화 (테이블 삭제)하므로 SPROC를 호출하면 캐시 테이블에 데이터가 있는지 먼저 확인됩니다.없는 경우 SPROC를 실행하고 있는 경우 캐시 테이블에 결과를 반환합니다. SPROC에 대한 "원본"테이블의 트리거는 jus t cachetable에서 "캐시 지우기"를 삭제하십시오. (sproc이 수행하는 작업과 그 의존성에 따라 트리거를 기반으로 캐시 테이블을 부분적으로 업데이트 할 수도 있지만 이러한 모든 작업은 신속하게 유지 보수하기가 어려워집니다. 하지만 가끔은 당신이해야 할 일을해야합니다 ...이 접근 방식은 캐시 테이블이 필요에 따라 자동으로 업데이트되도록합니다. 당신은 항상 최신 데이터를 가지며 필요할 때만 SPROC가 실행됩니다. 첫째
0

OK 첫 번째 것들, 인덱스 :

당신이 테이블에있는 그들을 사용하여 실행 계획은 무엇 인덱스
  • ?
  • 모든 외래 키 필드에 대한 인덱스가 있습니까?

    • 커서
    • 하위 쿼리
    • 선택 사용자 정의 함수 *
    • 검색 :

    둘째, proc 디렉토리는 다음과 같은 성능 살인범 중 하나를 사용합니까 와일드 카드로 시작하는 기준

세번째

  • where 절을 sargeable으로 다시 쓸 수 있습니까? 거의 모든 것을 쓰는 방법은 여러 가지가 있으며, 어떤 방법은 다른 것보다 더 나은 연기자입니다.

성능 튜닝에 대한 책을 개발자에게 구입할 것을 권합니다.

당신의 proc을 고칠 수는 있지만 코드를 보지 않아도 문제가 무엇인지 추측하기 어렵습니다.

관련 문제