2008-09-15 11 views
12

.NETコードとSQ​​L Server間の実行時間を改善するためのチェックリスト。 基本から奇妙なものまで何でも感謝しています。.NETアプリケーションをSQL Serverタイムアウトの問題に修正し、実行時間を改善するためのチェックリスト

コード:コマンドとavgbodyでの接続で

の変更デフォルトのタイムアウト。

avgbodyでインラインSQLステートメントの代わりにストアドプロシージャ呼び出しを使用します。

アクティビティモニタを使用してブロック/ロックを探します(Jay Shepherd)。

SQL Serverの:

AlexCuseにより、ストアド・プロシージャでスニッフィングパラメータには注意してください。

Martin Clarkeによってデータベースを動的に拡張することに注意してください。

プロファイラを使用して、100ミリ秒以上かかるクエリ/ストアドプロシージャをBradOで検索します。

トランザクションタイムアウトをavgbody増加します。

ダイナミックストアドプロシージャを静的ステートメントに変換する場合はavgbodyです。

サーバーのビジー状態を確認してください。Jay Shepherd

答えて

1

まずは、実際に実行されているクエリを確認してください。 SQL Server Profilerを使用してプログラムをセットアップし、すべてのクエリで正しいジョインと参照キーを使用できることを確認します。

0

いくつかの簡単なもの...

    それはロックアクティビティモニタ
  • ネットワークの問題/パフォーマンスで起こって/遮断するためのルック
  • あまりにも忙しいかどうかを確認するために、サーバーの
  • チェックプロセッサの使用
3

応答時間が長いという不満のための奇妙な「解決策」は、より興味深い進歩バーを持つことです。意味、ユーザーの感情に作用します。 1つの例は、Windows Vistaの待機アイコンです。その速い回転円は、物事がより速くなっているという感情を与えます。 GoogleはAndroidで同じトリックを使用しています(少なくとも私が見たバージョン)。

しかし、まず技術的な問題に取り組み、選択肢から外れたときだけ人間の行動に取り組むことをお勧めします。過去には

5

私の解決策の一部がされている:新しいSqlCommandオブジェクトとして

薄暗いmyCommand(「[DBO]:

  1. は、SqlCommandオブジェクトの設定をデフォルトの時間を修正してください。【spSetUserPreferences]」、MyConnectionと)

    myCommand.CommandType = CommandType.StoredProcedure

    myCommand.CommandTimeout = 120

  2. 増加接続タイムアウト列:

    データソース= MyDatabaseという;初期カタログ=一致;セキュリティ情報を真に保つ=ユーザーID =ユーザー;パスワード=パスワード; 接続タイムアウト= 120

  3. SQL Server 2005でトランザクションタイムアウトを増やす

    管理スタジオの[ツール]> [オプション]>デザイナで[テーブルデザイナの更新に接続文字列のタイムアウト値を上書きする]チェック/チェックされていません。静的なもの

  4. 変換ダイナミックストアドプロシージャは、コードの呼び出しの代わりにコード内でインラインSQL文を書くのストアドプロシージャを確認します。

0

クエリの実行時間を測定するためにプロファイラを実行します。
アプリケーションログにデッドロックがないかどうかを確認します。

0

私はSQL Server Profilerも好きです。営業日中に15〜30分の時間がかかるように、データベースサーバー上のクライアントサイトにトレースをセットアップし、すべてのクエリ/ストアドprocsを100ミリ秒を超えて記録するのが好きです。とにかく「長期実行」クエリのための私の基準です。

0

今日も適用される可能性のあるSQL Server 2000に適用される奇妙な1:

あなたが動的に本番データベースを成長しようとしていないことを確認してください。余分なスペースを割り振るのに要する時間と通常のロードが実行されると、クエリがタイムアウトになる(そして成長することもあります)

関連する問題