ユーザーの最新のアクティビティ時間を記録している SQL サーバー データベースにテーブルがあります。複数の更新要求が異なるユーザーから同時に受信された場合、SQL サーバーがシナリオを自動的に処理することを確認してください。このテーブルでは 25 ~ 50 の同時更新リクエストが予想されますが、各リクエストはテーブル内の異なる行の更新を担当します。接続プーリングなどの追加機能が必要ですか?
1 に答える
はい、Sql Server はこのシナリオを処理します。
これは SGDB であり、このようなシナリオを想定しています。
SQLで行を挿入/更新/削除すると、SQLはテーブル/行/ページをロックして、必要なことを実行できることを保証します。このロックは、行の挿入/更新/削除が完了すると解放されます。
しかし、あなたがしなければならないことがいくつかあります:
1 - やりたいことをすぐに実行できるようにします。ロックの問題により、長時間接続したままにしておくと、完了するまで同じテーブルへの他のリクエストがロックされ、タイムアウトが発生する可能性があります。
2 - 常にトランザクションを使用します。
3 - インデックスの FILL FACTOR を調整してください。MSDN で FILL FACTOR を確認してください。
4 - 必要に応じて分離レベルを調整します。
5 - 未使用のインデックスを削除して、挿入/更新を高速化します。
接続プーリングは、あなたの質問とはあまり関係ありません。接続プーリングは、リクエストを送信するたびにデータベースへの新しい接続を作成する余分なオーバーヘッドを回避する手法です。ADO を使用する C# およびその他の言語では、これは自動的に行われます。これをチェックしてください:SQL Server Connection Pooling。
役に立つかもしれない他のリンク: