0

私は小さな会社で働いており、私の仕事の 1 つは ERP システム「AXAVIA」 (www.axavia.com) の管理です。

サイズが約 10 GB の .NET クライアントと MSSQL Server 2005 データベースがあります。システムはメタデータ モデルで動作します。これは、テーブルが非常に少なく (データ型ごとに 1 つ、リレーション用にいくつか)、このデータがアドホック クエリで計算されることを意味します。最大 2000 バッチ/秒...

インデックスの断片化について何も知らず、未使用のインデックスをすでにたくさん削除したため、データベースの専門家は実際にはいないと思います-現在、データベースは約30%小さくなっています...

パフォーマンスを向上させるために他に何ができますか? - 今では毎晩インデックスを再構築しています

  • 「不足しているインデックス」はなく、主キーも少なくとも「OK」であると思います
  • ファイルシステムは高速な 10 RAID で、6.6 GB RAM では IO はほとんどありません
  • サーバーは 1 つの仮想 CPU を備えた VM Ware です。ここで私が推測する最善の可能性は次のとおりです。小さなバッチの膨大な量は、4 コアの物理 CPU の恩恵を受けるでしょうか?!
  • パーティション分割されたテーブルについても考えていますが、現時点では、データベースが十分に大きくなく、これによって多くのメリットが得られません。

それで - 他のアイデアはありますか?

4

3 に答える 3

1

少なくともテスト用に CPU を追加します。ここで問題が発生する可能性が高いと言えます。一般的に、つまり、本当に一般的に言えば、コア VMS はもう 1 つもありません。最小のマシンでも 2 つのコアがあります。Windows レベルでも処理が大幅に高速化されます (OS 操作は 2 番目のコアで実行されます)。

今日の10GBは小さいです。それでも、くだらないプログラミングで殺すことができないデータベースはありません(そして、あなたの説明から、多くのくだらないプログラミングが行われている可能性があります)。物事が待っている理由の完全な分析を開始します。何らかの操作で大量のシーケンシャル SQL を使用してサーバーにアクセスしている場合、できることは、(a) 待機時間をできるだけ少なくし、(b) CPU をできるだけ高速にすることだけです。あなたが説明したようなsdatabaseでは、問題はプログラムに深刻にあり、基本的にデータベースレベルで調整できるものは限られています。

于 2014-10-05T08:11:03.060 に答える
1

サーバーの問題を判断するには、Glenn Berry のスクリプトを使用することをお勧めします。

https://dl.dropboxusercontent.com/u/13748067/SQL%20Server%202005%20Diagnostic%20Information%20Queries(September%202014).sql

インデックスの欠落だけでなく、他にも多くの潜在的な問題があります。

このスクリプトをナレッジ データベースとして使用して、ERP の状態をチェックする独自のツールを作成しました。そして、それはうまく機能していると言えます。

于 2014-10-05T08:04:46.123 に答える
1

まだの場合は、データ ファイルとログ ファイルを別のドライブに置きます。tempdb を独自のドライブに移動したり、複数のファイルに分割したりすることもできます。ここで tempdb に関する Brent の記事を読んでください: Brent Ozar

于 2011-02-10T22:01:52.197 に答える