QA@IT
«質問へ戻る

質問を投稿

SQLServerでクエリ実行時に並列処理を強制する

以下の環境で動作しているデータベースがあります。

OS:Windows 2003 Server Standard
DB:SQLServer2005SP2 Standard

最近動作が遅くなったクエリがあると聞いて、上記環境の1ヶ月前のバックアップと
最近のバックアップをそれぞれ開発環境で復元し、クエリの実行計画をとってみました。

その結果1ヶ月前のDBでは実行計画にParallelismが表示され並列処理で動作している
事がわかりました。その場合1秒以内に動作完了します。

最近のDBでは実行計画にParallelismが表示されず、並列処理はされていないようです。
結果が戻ってくるまで30秒以上かかってしまいます。

1ヶ月前のDBでMAXDOPを1にして実行すると30秒以上かかるようになるので、
最近のDBで遅くなってしまったのは並列処理で実行されなくなってしまったからだと
思われます。

最近のDBの方で並列処理を強制するにはどうすればいいのでしょうか。
MAXDOPやcost threshold for parallelism、max degree of parallelismなどを変更して試してみましたが
並列処理になりません。
他に並列処理に関係するパラメータがあるでしょうか。

以下の環境で動作しているデータベースがあります。

OS:Windows 2003 Server Standard
DB:SQLServer2005SP2 Standard

最近動作が遅くなったクエリがあると聞いて、上記環境の1ヶ月前のバックアップと
最近のバックアップをそれぞれ開発環境で復元し、クエリの実行計画をとってみました。

その結果1ヶ月前のDBでは実行計画にParallelismが表示され並列処理で動作している
事がわかりました。その場合1秒以内に動作完了します。

最近のDBでは実行計画にParallelismが表示されず、並列処理はされていないようです。
結果が戻ってくるまで30秒以上かかってしまいます。

1ヶ月前のDBでMAXDOPを1にして実行すると30秒以上かかるようになるので、
最近のDBで遅くなってしまったのは並列処理で実行されなくなってしまったからだと
思われます。

最近のDBの方で並列処理を強制するにはどうすればいいのでしょうか。
MAXDOPやcost threshold for parallelism、max degree of parallelismなどを変更して試してみましたが
並列処理になりません。
他に並列処理に関係するパラメータがあるでしょうか。