Нить внутри петли?SQL Server - PullRequest
0 голосов
/ 04 марта 2011

Может ли что-то вроде # pragma_omp ( OpenMP ) в C для циклов

#pragma omp parallel for    
for (ii = 0; ii < nrows; ii++){      
  for(jj = 0; jj < ncols; jj++){       
    for (kk = 0; kk < nrows; kk++){
       array[ii][jj] = array[ii]kk] * array[kk][jj];
    }
  }
}

быть применено к циклу в SQL Server?

WHILE (...) BEGIN
END

Что-то, чтобы парализовать цикл, используя потоки, Как ??

Ответы [ 2 ]

3 голосов
/ 04 марта 2011

В SQL Server вы должны использовать решение на основе SET, а не циклы, SQL - это язык на основе SET.Вы можете использовать Parallel LINQ (PLINQ) для параллельного выполнения некоторых вещей, если они запускаются извне SQL Server

1 голос
/ 05 марта 2011

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

Вместо этого вам следует переформатировать работу как задачу, основанную на SET, например, с помощью UPDATE / INSERT во временную таблицу с вычислениями / манипуляциями, инкапсулированными до начала строки. Затем SQL Server может распараллелить запрос так, как считает нужным.

Чтобы контролировать максимальное количество рабочих, взгляните на OPTION MAXDOP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...