MSSyncを使用して、サーバーからクライアントのSQL Server Express 2005にデータをダウンロードするアプリケーションがあります。クライアントにはハイパースレッディングを備えたデュアルコアがあるため、合計4コアになります。
私はSQL Server Expressの制限について多くの調査を行いましたが、1つの物理ソケットに起因すると思いますが、そのソケットでは最大4つのコアを使用しています。しかし、それは私が実際に認識しているものとは対照的にいくつかの疑問を提起します。
私たちの同期プロセスは1コアを最大化し、同期プロセスを溺死させます。その結果、より高いGHzのデバイスよりもパフォーマンスが10〜20倍遅くなり、SQL Server Express 2005で使用されている単一コアを最大化しません。
しかし、SQL Serverが1ソケットで4コアの使用を許可されている場合、同期プロセスに1のみを使用するのはなぜですか?これは、1つの接続に専用のコアがあるためですか?または、制限仕様を正しく理解していませんか? SQL Server Expressを最新バージョンにアップグレードすると、より多くのコアを使用できるようになりますか?
私はもう少し研究をしました。私はSQL Server Express 2012を使用し、SQL Server Developer 2012も使用しました。したがって、明らかに、これはExpressの制限とは関係ありません。
おそらく、単一の接続/トランザクション内でのクエリが単一のコアにとどまるという技術的な制限です。おそらく、これはトランザクションの一貫性を保証するための論理的な要件です。
SQL Server 2012の時点で私が見ているのは、負荷が別のコアに時々スワップするが、同時に複数のコアを使用することはないということです。開発版でもありません。
誰かがこれらの仮定を確認できれば、それは歓迎されます。
Limited to one CPU
のようなサポートを備えています。CPUはソケットを意味し、コアとハイパースレッディングに限定されません。 2008年まではこれがポリシーであり、サポートされていない2005バージョンのドキュメントは残っていませんが、2008 R2 のドキュメントにはまだ記載されています :SQL Serverは、指定されたプロセッサソケット数に、各ソケットの論理CPU数を掛けたものをサポートしています。たとえば、次の表は、この表では単一のプロセッサと見なされます。
ソケットごとに2つの論理CPUを備えたシングルコアのハイパースレッドプロセッサ。
2つの論理CPUを備えたデュアルコアプロセッサ。
4つの論理CPUを備えたクアッドコアプロセッサ。
1ソケットまたは4コアの小さい方に限定
MAXDOP
設定、並列プランではクエリが選択されていません)。その他の参考資料:
次のようないくつかの理由が考えられるライセンスに関係なく、ワークロードがコア間で並列にならない場合