2

私はオンラインの写真コミュニティを運営していますが、サイトがデータベースへのアクセスでクロールし、タイムアウトになることがあるようです。

私は自分自身が SQL クエリの作成とテーブルの設計にかなりの能力があると考えていますが、決して DBA ではありません...それが問題です。

背景:

  1. 私のサイトと SQL サーバーはリモート ホストで実行されています。Visual Studio から ASP.NET コードを更新し、SQL Server Mgmt を介して SQL を更新します。スタジオエクスプレス。サーバーに物理的にアクセスできません。

  2. すべてのストアド プロシージャ (すべて取得したと思います) は、トランザクションでラップされています。

  3. 現時点では、メイン テーブルは 9400 レコードのみです。毎晩、このテーブルに 12 個の新しいレコードを追加します。

  4. このメイン テーブルには、他の複数のテーブルのデータを 1 つのビューにまとめるビューがあります。

  5. セカンダリ テーブルは小さいレコードですが、より多くのレコードです。あるものは70,000、別のものは115,000。これらは、#3 の項目に対するコメントと評価の記録です。

  6. インデックスは、最も必要なフィールドにあります。そして、大きなテーブルで統計を自動再計算するように設定しました。

サイトが停止したときに、コードを実行してトランザクション ログをクリアし、統計を更新し、メイン ビューを再構築し、ストアド プロシージャを再構築してコメントを取得すると、速度が回復します。ただし、これを手動で行う必要があります。

悲しいことに、ユーザーはこれらの問題に不満を感じ、参加が減っていきます。

私の質問は...リモート環境で、SQLデータベースをピーク時に実行し続けるためにメンテナンス計画をセットアップしてスケジュールする最良の方法は何ですか?

本当にありがとう!KLK

4

2 に答える 2

0

メンテナンス タスクをメンテナンス計画として設定する必要はありません。

実行したいメンテナンス タスク、インデックスの再構築、統計の更新などを実行するストアド プロシージャを作成するだけです。

次に、ストアド プロシージャを呼び出すジョブを作成します。ジョブは、希望のスケジュールで実行するように構成できます。

ジョブを作成するには、プロシージャ sp_add_job を使用します。

スケジュールを作成するには、プロシージャ sp_add_schedule を使用します。

私が詳しく説明した内容が明確で理解できるものであることを願っていますが、さらにサポートが必要な場合はお気軽にお問い合わせください。

乾杯、ジョン

于 2009-03-02T17:01:12.577 に答える