並列処理に関して、会社のアプリベンダーと議論しています。彼らはMaxdop = 1がapp/dbのパフォーマンスを大幅に向上させることを維持していますが、これを証明するものはまったくありません。
Maxdop 4(8ハイパースレッドコア)とCT 150を使用すると、さまざまなDOP/CT設定をテストしたところ、自動テストにより全体的なパフォーマンスが28%向上しました。
ベンダーのDBAは最近、「DOPが「1」の場合でもこの値を使用できるMSSQLの内部プロセスに問題があり、それを使用しているMSSQLサーバーに51未満のSPID、ゴーストクリーンアップなどが存在します。この。"
私はこれを調査しましたが、情報がかなり乏しいにもかかわらず、Paul Randallは少なくともゴーストのクリーンアップは常にシングルスレッドであり、明らかにベンダーのdbaは正しくないと言っています。
Maxdop = 1の場合のCTの影響について何か考えはありますか?
MAXDOP=1
が常に有益であると言うことは、完全に誤った記述です。 MAXDOP値は、SQL ServerのCPUコア構成に従って設定してから、適切なテストを実施する必要があります。 MAXDOP 1で優れた機能を果たすアプリケーションとして、DynamicsAXとSharepointはほとんどありません。
はい、ポールが この記事 で述べたようにゴーストクリーンアップはシングルスレッドですが、システムプロセスがシングルスレッドだからといって、MAXDOP = 1が有益であることを意味しません。これは私があなたの質問から判断するものです。 cost threshold of parallelism value =50
から始めることができます。言及された値5はまったく役に立たず、それは昔のものでした。多くのコアで実行されているシステムでは、並列処理のコストしきい値を50に、MAXDOP値を以下の共有リンクから取得できるように設定することをお勧めします。これがどのように機能するかをご覧ください。
私たちはすでにSEスレッドを持っています MAXDOP値を計算するための良い方法は何ですか このリンクで言及されているクエリからMAXDOP値を取得し、それが環境に役立つかどうかを確認することをお勧めします。
また、ベンダーの推奨事項を完全に無視しているわけではありませんが、ベンダーはSQL Serverクエリエンジンの動作を変更できないアプリケーションを提供しています。