18
貧弱な内部データベース-交換するか、ハードウェアをチャックしますか?
だから-私たちは社内のデータベース、通常の種類のものを持っています:クライアント、電話、販売取引、クライアント契約/スキームを管理します。 これは、Access 2000フロントエンドおよびSQL Server 2000 Standardバックエンドです。単一サーバー、デュアルXeon 3.2GHz、2GB RAM、Windows Server 2003は、1日中約40%のCPU負荷を取得し、OS(HT)から見える4つのコアに分散しています。 バックエンドデータベースの設計は不十分であり、10年以上にわたって有機的に成長し、熟練していない個人によって維持されています。それはひどく正規化されており、いくつかの明らかな問題には、主キーまたはインデックスのない数万行のテーブルが含まれます。これらは、システムの最も頻繁に使用される一部のマルチテーブル結合でも頻繁に使用されます(例:全員のセカンドモニターに1日8時間常駐し、数秒ごとに大きな非効率的なクエリを実行するコールマネージャーアプリケーション)。 フロントエンドはあまり良くありません。それは典型的な数百のフォームの混乱、ネストされた保存されたクエリ、VBAコードでの不十分な記述の埋め込みSQL、数十の「奇癖」などです。「十分に」機能する1つのMDBに決着しました。現在、社内にAccessヘビーウェイトがないため(また、いずれも採用する予定もありません)、変更に関するポリシーはありません。 同社は現在ゆっくりと成長しており、クライアント、コールなどの数が増加し、同時ユーザー数がわずかに増加しています。また、最近ではパフォーマンスが著しく悪化しています(フォーム間を移動するのを待っている、リストにデータが入るのを待っているなど) ) Perfmonより: 1秒あたりのディスク転送:0〜30、平均4。 現在のディスクキューの長さ:1前後 SQL Serverのプロファイラーは、毎分数十万のクエリを確認します。クライアントのCPU使用率はほとんどゼロであり、サーバー側のクエリの実行を待機していることを示しています。DB Engine Tuning Advisorを使用してこのワークロードを配置し、テストバックアップにその提案を適用しましたが、実際にはそれほど大きな違いはありません。 ちなみに、100MBとギガビットイーサネットが混在しており、すべて1つのサブネット上にあり、2つのフロアに40人のユーザーがいます。 質問に。 私が見るように、この状況を解決/改善するための2つの選択肢があります。 それを廃棄して、完全に新しいCRMシステム(特注または一部特注)に置き換えることができます ハードウェアをチャックすることで、このシステムの寿命を延ばすことができます。 ソフトウェアを交換するよりもはるかに少ないコストで、クレイジーなパフォーマンスを備えたIntel i7システムを構築できます。 最終的に新しいシステムが開発されると、このボックスでホストできるため、無駄なハードウェアはありません。新しいCRMシステムはどんどん消えていきます。少なくとも1年間はそうなるとは思いません。 特に自分がここにいる場合は、この状況についての考えをお寄せください。 ありがとう