1

2008 SQL Server Express インスタンスがそれぞれにインストールされている 3 台のホーム PC がありますが、現在、データベースを持っているのは 1 台だけで、データベースから大量のデータを要求するアプリケーションもそのマシンで実行しています。

サーバー アーキテクチャについてはよくわかりませんが、複数のサーバーでクエリを実行する方法に関する Microsoft の Web サイトのガイドをいくつか読みました ( http://msdn.microsoft.com/en-us/library/bb964743.aspx ) 。

すべてのクエリがストアド プロシージャを使用しているため、すべての変更がクエリ内にある場合、それを行うのは難しくないと思います。最適な設定方法についての一般的な情報が必要です。詳細は次のとおりです。

  1. 私のPCは少し弱いので、できるだけ多くの自宅のPCを使用して負荷を分散するようにしています. 現在、データベースを備えた PC が 1 台しかなく、同じ PC でアプリケーションを実行しています。

  2. 私のデータベースは約4GBです。

    a. 特定の行を探すストアド プロシージャが 1 つあります。

    b. 一時テーブルを使用して、約 20 ~ 30 行から取得したデータに基づいて結果を計算するストアド プロシージャがいくつかあります。

    c. 検索している列には既にインデックスがあります。

  3. 約 500 のエンティティを作成する DB と同じ PC でアプリケーションを実行し、各エンティティは約 50 のノードを持つことができます。各ノードはデータベースからデータを要求します。要求は単一値ストアド プロシージャのいずれかに対して行うことができます。テーブルを構築するストアド プロシージャに (明らかに後者の方が遅くなります)。ノードは、データベースが負荷を処理できる限り高速に実行されます。

  4. 現在、SQLサーバーがボトルネックになっているようですので、他のPCに負荷を分散させたいと考えています。

そして私の質問は次のとおりです。

  1. データベースを他の PC に配置すると、パフォーマンスは向上しますか?

  2. この場合、SQL Server をセットアップする最善の方法は何ですか?

  3. その他のヒント/リファレンスはありますか? 私の問題を解決するためのより良い方法はありますか?

参考までに: ハードウェアはまだ購入したくありません... ソフトウェア ソリューションを望んでいます。また、友人から無料のサーバーを入手できるかどうかを待っていますが、より大きなサーバーを入手したとしても負荷分散を行う方法を知りたいです。

4

3 に答える 3

3

サーバーを購入します。真剣に。

大量の RAM、RAID ディスク、サーバー OS、メモリ制限なし...

特にこの低レベルでは、スケールアウトするよりもスケールアップすることをお勧めします。

于 2009-06-11T19:04:12.973 に答える
2

その他のヒント/リファレンスはありますか? 私の問題を解決するためのより良い方法はありますか?

私見はそれにハードウェアを投げます。システム/ソフトウェアを常に構成しようとして時間を無駄にする前に、少なくとも「弱い」ではなく「適切」と表現できるもので実行してください。

于 2009-06-11T19:02:11.853 に答える
0

あなたの問題は、一時テーブルが原因である可能性が最も高いIOです。より高速なハード ドライブ (または RAID 0 ハード ドライブのセットアップ) を購入して、そこに tempdb データベースを配置できるかどうかを確認してください。あなたが説明した問題に対して、クラスタリングのセットアップや複数の読み取り専用サーバーさえも必要としないことは間違いありません。

現在、SQLサーバーがボトルネックになっているようですので、他のPCに負荷を分散させたいと考えています。

興味がありますが、どのようにしてこの結論に達したのですか?

于 2009-06-11T19:25:09.630 に答える