WAITFOR 사용
WAITFOR 문은 일괄 처리, 저장 프로시저 또는 트랜잭션의 실행을 다음 시기까지 일시 중지합니다.
- 지정한 시간 간격이 지날 때까지
- 하루 중 지정한 시간에 도달할 때까지
- 지정한 RECEIVE 문이 행을 적어도 하나 이상 수정하거나 Service Broker 큐에 반환할 때까지
실제 시간 지연은 지정된 시간과 다를 수 있으며 서버의 작업 수준에 따라 달라집니다. 시간 카운터는 WAITFOR 문과 연결된 스레드가 예약된 시간에 시작합니다. 서버가 사용 중이면 스레드가 즉시 예약되지 않을 수도 있으므로 시간 지연이 지정된 시간보다 길어질 수 있습니다.
WAITFOR 문은 다음 절 중 하나와 함께 지정됩니다.
WAITFOR 문을 완료하기 전에 time_to_pass 앞에 오는 DELAY 키워드. WAITFOR 문을 완료하기 전에 기다려야 하는 시간은 최대 24시간입니다.
다음 예에서는DELAY
키워드를 사용하여SELECT
문을 수행하기 전에 2초 동안 기다립니다.WAITFOR DELAY '00:00:02' SELECT EmployeeID FROM AdventureWorks.HumanResources.Employee;
WAITFOR 문의 완료 시간을 지정하는 time_to_execute 앞에 오는 TIME 키워드
다음 예에서는TIME
키워드를 사용하여 오후 10시(22:00
)까지 기다렸다가AdventureWorks
데이터베이스를 검사하여 모든 페이지가 제대로 할당되고 사용되었는지 확인합니다.USE AdventureWorks; GO BEGIN WAITFOR TIME '22:00'; DBCC CHECKALLOC; END; GO
Service Broker 큐에서 메시지를 하나 이상 검색하는 RECEIVE 문 절. RECEIVE 문과 함께 WAITFOR를 지정하면 현재 메시지가 없을 경우 이 문은 메시지가 큐에 도착할 때까지 대기합니다.
timeout 앞의 TIMEOUT 키워드는 큐에 메시지가 도착할 때까지 Service Broker가 기다리는 시간(밀리초)을 지정합니다. RECEIVE 문이나 GET CONVERSATION GROUP 문에서 TIMEOUT 키워드를 지정할 수 있습니다.
릴리스 | 내역 |
---|---|
2005년 12월 5일 |
|
참고 항목
관련 자료
RECEIVE(Transact-SQL)
WAITFOR(Transact-SQL)
GET CONVERSATION GROUP(Transact-SQL)