Встроенная поддержка TSQL для параллельных запросов. - PullRequest
5 голосов
/ 19 ноября 2011

Существует ли встроенная поддержка параллельного выполнения запросов из хранимой процедуры в SQL Server 2008 R2?Возьмите этот псевдокод, например:

create proc dbo.MySproc
as
   delete from SomeTable where Predicate = true [as parallel]
   delete from AnotherTable where Predicate = false [as parallel]

   [wait for queries]

   select * from SomeTable join AnotherTable on Predicate = true

Я видел примеры этого, но они требуют установки не родных процедур CLR, чего я хочу избежать.

ПРИМЕЧАНИЕ : я не говорю о планах выполнения, я имею в виду выполнение двух несвязанных запросов одновременно, асинхронно, а не один за другим.

Ответы [ 2 ]

6 голосов
/ 19 ноября 2011

Нет, синтаксиса T-SQL для управления параллелизмом не существует.

Существует ряд игр, в которые вы можете играть, чтобы получить нечто подобное, но все они требуют не-T-SQL сущности.Например, SQL Server Jobs, CLR SP, которые порождают несколько потоков, приложение C #, которое порождает потоки, использование sqlcmd для выполнения T-SQL и т. Д.

2 голосов
/ 19 ноября 2011

Как запустить параллельные хранимые процедуры на сервере sql? - речь идет о хранимых процедурах, но, возможно, вы найдете что-то полезное.

...