우리는 SQL Server 2000과 관련된 문제를 이해하려고 노력하고 있습니다. 우리는 적당히 거래하는 웹 사이트이며 sp_GetCurrentTransactions
customerID와 두 날짜를 허용하는 저장 프로 시저 가 있습니다.
이제 날짜와 고객에 따라이 쿼리는 0에서 1000의 행을 반환 할 수 있습니다.
문제 : 우리가 경험 한 것은 갑자기 Execution Timeout Expired
특정 클라이언트에 대해 저장된 proc을 실행하려고 시도하는 동안 많은 오류 (일반적으로 또는 유사한) 가 발생 한다는 것입니다. 따라서 쿼리를 검사하고 SSMS에서 실행 한 후 30 초가 걸린다는 것을 알았습니다. 따라서 저장된 proc과 -bang-을 다시 컴파일하여 300ms 내에 실행됩니다.
나는 이것에 대해 DBA와 이야기했다. 그는 저장 프로 시저를 만들 때 데이터베이스가 쿼리 계획을 만들었습니다. 그는 해당 매개 변수 세트에 대한 좋은 계획이라고 말했지만 특정 매개 변수 세트를 처리하면 계획이 해당 데이터에 가장 적합한 계획이 아니므로 느리게 실행되는 것을 볼 수 있습니다.
나에게 제시된 옵션은 저장된 proc에서 해당 쿼리를 이동 계획마다 실행 계획이있는 동적 SQL로 다시 옮기는 것입니다.
이것은 나에게 한 걸음 물린 것처럼 느껴 지며이 주위에 방법이 있어야한다고 생각합니다. 이 문제를 처리 할 다른 방법이 있습니까?
모든 답변을 부탁드립니다.