집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server EXEC 문이 실제로 병렬로 실행될 수 있습니까?
SQL Server의 병렬 EXEC 문: 가능합니까?
SQL Server 2008 R2에서 여러 EXEC 문을 병렬로 실행하는 것은 난감한 도전. 다음 예를 고려하십시오.
EXECUTE sp_executesql N'PRINT ''1st '' + convert(varchar, getdate(), 126) WAITFOR DELAY ''000:00:10''' EXECUTE sp_executesql N'PRINT ''2nd '' + convert(varchar, getdate(), 126)'
첫 번째 문이 10초 동안 실행을 지연하는 동안 두 번째 문이 즉시 실행될 것으로 예상되는 것은 첫 번째 문이 완료될 때까지 중단됩니다. 이러한 순서 지정은 T-SQL 동작의 기본 측면입니다.
기본 목표는 레코드를 검색하고 임시로 잠그며 해당 레코드 및 해당 테이블과 관련된 다른 작업을 동시에 실행하는 것입니다. 문을 비동기식으로 실행하면 이 문제를 잠재적으로 해결할 수 있습니다.
BEGIN TRY EXEC sp_OASetProperty N'Is Network Packet Size Limited', 1 EXEC sp_OAGetProperty N'Is Network Packet Size Limited' END TRY
그러나 T-SQL은 주로 데이터 조작을 위한 것이며 잠금 및 커밋/롤백 메커니즘과 결합된 트랜잭션 특성이 진정한 병렬성은 사실상 불가능합니다. 병렬 처리는 ETL 프로세스와 같은 요청 대기열의 독립적인 작업에 더 적합합니다.
따라서 비동기 실행이 부분적인 솔루션을 제공할 수도 있지만 특정 시나리오가 실제로 병렬 처리에 적합한지 평가하는 것이 중요합니다. 이러한 접근 방식을 탐색할 때는 데이터 무결성과 트랜잭션 의미론을 가장 중요하게 고려해야 합니다.
위 내용은 SQL Server EXEC 문이 실제로 병렬로 실행될 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!