2011-03-04 34 views
0

能像#pragma_ompOpenMP)的下循環循環內的線程? SQL Server的

#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 

東西平行循環,使用線程,如何?

回答

1

運行在一個存儲過程,我將很多登記的,所以我想這paralelize,東西最大控制工人..

您應該做的是將工作重新格式化爲基於SET的任務,例如將UPDATE/INSERT用於預先填充的計算/操作的臨時表中。然後,SQL Server可以按照它認爲合適的方式並行化查詢。

要控制最大的工人,看看OPTION MAXDOP

+0

你有沒有一個例子,來跟隨你的想法? – cMinor

3

在SQL Server中,您應該使用基於SET的解決方案而不是循環,SQL是基於SET的語言。你可以使用Parallel LINQ (PLINQ)平行一些東西,如果從外部的SQL Server

+0

在一個存儲過程,我將很多登記的,所以我想這paralelize,東西最大控制工人... – cMinor

+0

SQLMenace是點上 - 僅使用循環作爲最後的手段,或者如果要求確實微不足道。 –