このクエリをリファクタリングして、並列に実行できますか?
サーバーで実行するのに約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を使用できますが、その方法はよくわかりません。