sql >> データベース >  >> RDS >> Sqlserver

接続文字列で 3 秒のタイムアウトがあるにもかかわらず、SQL 接続が 15 秒待機する

    ネットワーク ハードウェアがネットワーク ドライバーに接続タイムアウトを報告するまでにタイムアウトが発生し、ネットワーク IO を待機しているプログラムに通知されます。 telnet サーバー名 1433 を介してトランスポート層のタイムアウトを確認できます (SQL サーバーがポート 1433 でリッスンしていると仮定します)。

    しかし、プロセスがネットワーク API を初期化し (Web アプリが独自のアプリケーション プールにあると仮定)、要求を送信し、ハードウェアがタイムアウトするのを待つには 3 秒では短すぎます。 BIOS/ファームウェア/ドライバーを更新しても、おそらく応答時間はそれほど短縮されません。

    接続は非同期で行ったほうがよいでしょう。不運なユーザーは、データベースがダウンしているときに応答を確認するために 3 秒間待つ必要がある可能性があるため、EndInvoke を使用して非同期呼び出しを終了することはお勧めしません。多分 Ajax 呼び出しの方が良いでしょう。多くのユーザーが常に Web サイトにアクセスしている場合は、接続チェックの結果をキャッシュし、ユーザーにとって意味のある方法で更新することをお勧めします。



    1. カスタム列名を使用した外部キ​​ーのマッピング

    2. 作成時のみのMySQLタイムスタンプ

    3. TypeORMのPostgres列挙型

    4. SQL-特定の値を挿入するステートメントを検索します