8GBのRAMを搭載した8CPU2.5 GHzマシンは、4GBのRAMを搭載したデュアルコア2.19GHzよりも低速でSQLクエリを実行します。
Microsoft SQL Server 2000が両方のマシンにインストールされているのに、なぜこれが当てはまるのでしょうか。
8GBのRAMを搭載した8CPU2.5 GHzマシンは、4GBのRAMを搭載したデュアルコア2.19GHzよりも低速でSQLクエリを実行します。
Microsoft SQL Server 2000が両方のマシンにインストールされているのに、なぜこれが当てはまるのでしょうか。
これらのリンクをチェックして、ボトルネックがどこにあるかを示してください
ディスク レイアウトと、どの SQL サーバー データベース ファイルが問題を引き起こしているかが原因だと思います。
また、SQL Serverの設定が異なる場合があります(メモリ割り当てとAWEメモリ、スレッド、最大クエリメモリ、プロセッサアフィニティ、優先度の向上)。
マルチコア サーバー向けのソリューション (私たちのアプリは非常に複雑なクエリを多数実行し、多くのスレッドを作成する傾向があり、これらはインターロックを開始し、時にはデッドロックさえも開始します):
sp_configure 'show advanced options', 1
reconfigure
go
sp_configure 'max degree of parallelism', 1
reconfigure
これは理想的な解決策ではありませんが、他のアクションのパフォーマンスの低下は確認されていません。
もちろん、ディスク レイアウトも最適化し、時には 64 ビット サーバーの SQL サーバー メモリを制限する必要があります。
両方のマシンで同じクエリの実行プランを確認し、可能であれば、ここに投稿してください。
おそらくそうなるでしょう。
あるマシンが別のマシンよりも高いクロック速度とメモリで実行されているCPUを多く持っているからといって、必ずしも特定の問題を別のマシンよりも速く解決できるとは限らないことに注意してください。
詳細は提供しませんが、8 CPUマシンに8つのソケットがあり、それぞれにシングルコアCPU(たとえば、P4時代のXeon)と1 GBのローカル(たとえば、RDRAM)RAMが搭載されている可能性があります。2番目のマシンは、4GBのDDR2RAMを搭載した最新のCore2Duoです。
マシン#1の各CPUの個別の周波数は高くなりますが、netburstアーキテクチャはCore2アーキテクチャよりもクロックごとにはるかに低速です。さらに、CPUの負荷は軽いが、最初のマシンのCPUに対してローカルの1GBに収まらないメモリを大量に消費する負荷がある場合、最初のマシンではメモリアクセスのコストがはるかに高くなる可能性があります(発生する必要があるため)。他のCPU経由)。さらに、Core 2マシンのDDR2は、XeonのRDRAMよりもはるかに高速です。
CPU周波数と合計メモリがすべてではありません。CPUアーキテクチャ、メモリタイプ、CPUとメモリの階層も重要です。
もちろん、他の回答が示唆しているように、それははるかに単純な回答かもしれません-SQLServerはクエリを並列化しようとしてそれ自体をつまずきます。