問題タブ [sp-reset-connection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - SQL Server Profiler で「exec sp_reset_connection」とはどういう意味ですか?
「sp_reset_connection」を発行して、Sql Profiler が何を意味するのかを理解しようとしています。
次の「exec sp_reset_connection」行に続いて、BatchStarting と Completed があります。
基本的に、最初の行「exec sp_reset_connection」は、プロセス全体(接続が開かれ、選択stmtが実行され、接続が閉じられ、プールに解放される)が行われることを意味しますか? または、私の接続はまだオープン段階にあります。
そして、sp_reset_connection が自分の select ステートメントの前に実行されるのはなぜですか? リセットはユーザーの sql の後に来るべきではありませんか?
接続がいつ開かれ、いつ閉じられるかをより詳細に知る方法はありますか?
「exec sp_reset_connection」と表示されているということは、接続が閉じられているということですか?
c# - C# 接続プーリングの sp_resetconnections が非常に多いのはなぜですか?
MS SQL Server 2005 データベースに対して多くの呼び出しを行う C# でコーディングされた Web サービスがあります。コードは、C# の接続プーリングと組み合わせた Using ブロックを使用します。
SQL トレース中に、"sp_resetconnection" への非常に多くの呼び出しが確認されました。これらのほとんどは 0.5 秒未満の短いものですが、場合によっては 9 秒もの通話が続くことがあります。
私が読んだことから、sp_resetconnectionは接続プールに関連しており、基本的に開いている接続の状態をリセットします。私の質問:
- 開いている接続の状態をリセットする必要があるのはなぜですか?
- なぜこれほど多くの電話がかかってくるのでしょう!
- sp_reset 接続の呼び出しに時間がかかる原因は何ですか。
これは私にとってかなりの謎であり、すべての助けに感謝します!
sql-server - パフォーマンスを向上させるために sp_reset_connection の呼び出しを停止できますか?
私のプロファイラ トレースは、exec sp_reset_connection
すべての SQL バッチまたはプロシージャ コールの間に呼び出されていることを示しています。それには理由がありますが、パフォーマンスを向上させるために不要であると確信している場合、呼び出されないようにすることはできますか?
更新: これによりパフォーマンスが向上すると考える理由は 2 つあります。
- SQL Server は接続状態をリセットする必要はありません。これは比較的無視できる改善だと思います。
exec sp_reset_connection
クライアントが を送信し、応答を待ってから、実際に実行したい SQLを送信する必要がないため、ネットワーク レイテンシが短縮されます。
2 番目の利点は、私が興味を持っているものです。私のアーキテクチャでは、クライアントがデータベースから離れていることがあるためです。すべての SQL バッチまたは rpc で 2 回のラウンドトリップが必要な場合、ネットワーク遅延の影響が 2 倍になります。このような二重呼び出しをなくすと、パフォーマンスが向上する可能性があります。
はい、アプリの再構築など、パフォーマンスを改善するためにできることは他にもたくさんあります。私は問題の根本原因を解決することが大好きですが、この場合、sp_reset_connection を防ぐことができるかどうかを知りたいだけです。呼ばれること。次に、パフォーマンスの向上があるかどうかをテストし、これを呼び出さない場合のリスクを適切に評価できます。
これにより、別の質問が生じます。sp_reset_connection を使用したネットワーク通信は、上で概説したように本当に発生するのでしょうか? つまり、クライアントは を送信exec sp_reset_connection
し、応答を待ってから、実際の SQL を送信しますか? それとも、すべて 1 つのチャンクにまとめますか?
java - SQL Server sp_resetconnection機能用のjava.sql.Connectionクラスの同等の関数はありますか?
java.sql.Connectionの単純な接続プールを想像してみてください。接続が解放されてプールに戻された後、トランザクションが開いているかどうか、一時テーブルが作成されているかどうかなどはわかりません。
getAutoCommit()がfalseかどうかを手動でチェックしてから、ロールバックする必要があるかどうかを確認したり、rollback()を呼び出したりするのではなく、SQLサーバーのsp_resetconnectionストアドプロシージャと同様のことを行うreset()関数があることを期待していました。 DBMSに依存しません。ただし、ConnectionのAPIを見ると、そうではないようです。
そのような機能はありますか?