요구 사항에 따라 행과 통계를 가져 오는 간단한 쿼리 (예 : Select top 10 records, joins, counts, group by
)를 실행하고 있습니다. 테이블에는 약 150,000 ~ 200,000 개의 행이 있습니다. 모든 기본 키와 외래 키는 잘 정의되어 있습니다.큰 테이블에 대한 쿼리가 SQL Server에서 시간 초과가 발생했습니다
그러나 쿼리를 실행하는 동안 임의로 시간 초과 오류가 발생합니다. 동일한 쿼리 또는 저장 프로 시저를 완료하는 데 다른 시간이 필요합니다. 데이터베이스는 공유 서버에서 호스팅됩니다. 명령 대기 시간 속성을 600으로 설정했지만 작동하지 않습니다. 서비스 제공 업체는 처리가 완료되지 않으면 시스템이 30 초 후에 쿼리를 종료한다고 말했습니다. 그들은 시간을 맞추기 위해 쿼리를 조정하라고했습니다.
예 :
CREATE PROCEDURE [dbo].[NP_TableReport]
(
@CreatedOnFrom datetime = NULL,
@CreatedOnTo datetime = NULL
)
AS
BEGIN
SELECT COUNT(ID) [Count]
FROM Table1
WHERE
(@CreatedOnFrom IS NULL OR @CreatedOnFrom <= CreatedOn)
AND (@CreatedOnTo IS NULL OR @CreatedOnTo >= CreatedOn)
END
랜덤 타임 아웃 오류의 원인을 알려주십시오. 전담 서버에서 똑같은 것을 시도했을 때 오류가 사라졌습니다. 아무도 무슨 일이 일어나는지 설명해 주시겠습니까?
태양 광 플레어? 폭동? 진동? –
테스트를 수행하는 동시에 같은 테이블을 쿼리 할 수있는 다른 프로세스가 있습니까? – mbeckish
외래 키가이 쿼리에서 거의 영향을 미치지 않는 것처럼 보입니다. 실제로 CreatedOn에 * 인덱스 *가 있습니까? –