我可以重构该查询以使其并行运行吗?
我有一个查询,大约需要3个小时才能在我们的服务器上运行-而且没有利用并行处理。(中有约115万条记录dbo.Deidentified,其中有300条记录dbo.NamesMultiWord)。该服务器可以访问8个核心。 UPDATE dbo.Deidentified WITH (TABLOCK) SET IndexedXml = dbo.ReplaceMultiWord(IndexedXml), DE461 = dbo.ReplaceMultiWord(DE461), DE87 = dbo.ReplaceMultiWord(DE87), DE15 = dbo.ReplaceMultiWord(DE15) WHERE InProcess = 1; 并且ReplaceMultiword是定义为: SELECT @body = REPLACE(@body,Names,Replacement) FROM dbo.NamesMultiWord ORDER BY [WordLength] DESC RETURN @body --NVARCHAR(MAX) 是否要求ReplaceMultiword阻止制定并行计划?有没有办法重写它以允许并行性? ReplaceMultiword 因为某些替代品是其他替代品的短版,所以它们以降序运行,我希望最长的替代品能够成功。 例如,可能有“乔治华盛顿大学”和“华盛顿大学”。如果首先是“华盛顿大学”比赛,那么“乔治”将被甩在后面。 从技术上讲,我可以使用CLR,但我不熟悉该如何使用。