2017-10-19 16 views
0

기존 ETL에 대한 시간 초과 오류를 조사하는 임무가 있습니다. 이전 ETL 로그를 액세스하여 시간 초과가 발생한 위치를 식별하고 싶습니다. ETL이 Azure에 있고 한 태스크가 계속 실패합니다.SQL Server가 시간 초과 오류를 조사 중입니다.

실패한 작업이 SQL Server의 저장 프로 시저를 효과적으로 시작합니다. 수사를하기 위해 일부 로그와 통계를 사용할 수 있는지 궁금합니다. 스토어드 프로 시저에서 사용되는 테이블을 알고 있으므로 이것이 나에게 출발점이 될 것입니다. 그러나 본질적으로 나는 다음과 같은 정보를 가지고있다. 타임 아웃 시간을 즉 원인이 즉 절차 해당 표를 사용하여 저장된 어떤 다른 프로세스 교착

  • 무엇

  • 발생 어떤 테이블

    1. .

    일부 파기에는 SQL Server에서 어떤 기능을 사용할 수 있습니까? 어떤 도움을 주시면 감사하겠습니다.

  • 답변

    0

    실패 유지 작업이 효과적으로

    내가이 절차 미세 조정을 추천의주의를 기울여야한다이 procedure.This에 포함 된 테이블에 대한 통계를 업데이트하려고 SQL 서버에 저장 프로 시저를 개막 .. 시간 아웃의 가장

    는 타임 아웃이 발생 무엇 테이블

    THER 전자는 오류가 푸른 로그 분석에 로그인해야

    무엇은 타임 아웃 즉 그것을

    시간 초과가 교착 상태

    가 시간 제한의 원인의 대부분은 관련이없는 교착 상태입니다 원인 쿼리가 제대로 수행되지 않습니다. 우리의 경우에는 관련된 쿼리를 조정하고 시간 제한 설정을 변경하여이 시간을 초과 할 수 있습니다.

    0

    Sharingan,

    저장 프로 시저 내의 단계가 시간 초과를 유발하지 않습니다. SP를 호출하는 클라이언트는 시간 초과 값을 가지며, SP가 이보다 더 오래 걸리면 "생각한"것이 잘못되었습니다. 그렇다고 SP가 잘못 설계되었거나 실제로 실패했음을 의미하지는 않습니다.

    한 가지 방법은 로깅 테이블을 만들고 처음에는 저장 프로 시저에서이 테이블의 모든 행을 삭제합니다 (SP가 실행될 때마다 지워지는 TEMP 테이블입니다). 그런 다음 프로 시저의 각 단계 전에 'Starting employee ETL ...'과 같은 단계와 'Completed Employee ETL ...'단계를 사용하여 로깅 테이블에 행을 삽입하십시오.

    각 단계마다 오류가 발생했는지 확인하고이 테이블에 오류 메시지를 쓸 수도 있습니다. 이것은 효과적으로 자신의 로그가됩니다.호출 프로세스가 제대로 설정 시간 제한 값이없는 경우

    IF @@ERROR <> 0 
    BEGIN 
        -- Add Error_Message to your table 
    END 
    

    , 당신은 SP가 실제로 (로그를 검사하여) 종료 볼 수 있지만, 클라이언트는 실수로 시간 제한 값을 초과했기 때문에 뭔가 잘못 생각 . 클라이언트에서 시간 초과 오류가 발생해도 SQL Server는 작업을 진행할 수 없습니다.

    예를 들어 SSMS에서 저장 프로 시저를 단독으로 실행할 수 있습니까? 이 방법을 사용하면 문제를 추적 할 수 있지만 SQL, Azure Logic App 또는 ETL 프로세스를 실행중인 모든 클라이언트를 구별하는 것이 중요합니다. SP에 전달 된 매개 변수를 조작하거나 시뮬레이션해야 할 수도 있지만 SSMS에서는 쉽게 수행 할 수 있습니다.

    큰 SP를 여러 개의 작은 SP로 나누고 하나의 거대한 SP 호출 대신 ETL 클라이언트에 단계를 추가 할 수도 있습니다. 이로 인해 일시적인 오류 처리가 강제 실행될 수 있지만 상황에 따라 관리가 가능할 수 있습니다.

    행운을 빈다.