1

저장 프로 시저에는 2 개의 dml 문, 즉 2 개의 업데이트 쿼리가 들어 있습니다. 첫 번째 쿼리를 완전히 종료 한 후에 만 ​​두 번째 문을 실행해야합니다. 여기SP의 Dml 문은 병렬로 또는 순차적으로 SQL Server에서 실행됩니까?

CREATE PROCEDURE usp_pn 
AS 
BEGIN 

Update [db1].dbo.[table1] 
SET 
    [date1] = DateDiff(MI,[Ar_DateTime],[Departure_DateTime]) 



    Update [db1].dbo.[table1] 
SET 
    [InMinutes] = [date1]+some_calculation 



END 
GO 

내가 2 업데이 트를 확인하려면 첫 번째 업데이트가 위에 표시 또는

있습니다 sugest하시기 바랍니다 # ?? 필요한 수정이 있으므로 그래서 내가 저장 프로 시저를 작성할 수 완료된 후에 만 ​​실행해야

난 단지 실행 세부 사항을 알고 싶다 : sp에 하나 이상의 dml 문이 있고 그 다음이 2 개가 병렬로 실행되거나 하나씩 실행된다.

기본 질문 일지 모르지만 어떤 생각을 알고 ... 감사합니다

답변

2

항상 명령문은 순차적으로 실행됩니다.

개별 문을 병렬 처리 할 수 ​​있지만 SQL Server는 동일한 병합에서 다른 문을 병렬로 실행하지 않습니다.

Remus Rusanu 글이 (등을) 논의는 Understanding how SQL Server executes a query

이는 SQL 일괄 처리 문 (=> 요청 => 작업 => 근로자)에서 실행할 수 있는지 여부를 자주 물어 문제를 해결해야한다입니다 parallel : 아니요, 이 단일 스레드 (=> 작업자)에서 실행되면 각 문은 다음 시작 전에 완료되어야합니다.

하지만 귀하의 질문에 구체적인 예를 들어

(아마도 이것은이 간단한 예 이상?) 나는 하나의 문

UPDATE [db1].dbo.[table1] 
SET [date1] = DateDiff(MI, [Ar_DateTime], [Departure_DateTime]), 
     [InMinutes] = DateDiff(MI, [Ar_DateTime], [Departure_DateTime]) + some_calculation 
을 사용
관련 문제