この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 19962|答える: 0

[出典] SqlConnectionを正しく使うにはどうすればいいですか?SqlConnectionスレッドは安全ですか?

[リンクをコピー]
掲載地 2016/11/19 8:46:14 | | |
記事へのリンクは以下の通りです:

http://www.cnblogs.com/LoveJenny/archive/2011/10/31/2229738.html

1: SqlConnectionはスレッドセーフか?

マルチスレッド環境でConnectionを使ってSQL文を実行することは、安全ではありませんターゲット。

SqlConnectionはスレッド安全ではありませんですので、マルチスレッドは問題になるのは避けられません。
実際、.netは接続プール管理を自動的に提供します。接続文字列が同じ(完全に同じでなければならない)であれば、同じプール内にあります。オープンとクローズはプールから接続を取り戻し、その接続をプールに戻すため、パフォーマンスの問題は発生しません。 したがって、各接続が開かれた後は、使用後できるだけ早く閉じて、他のプログラムが利用できるように接続をプールに戻すべきです。



2: なぜ人々は今でも上記の書き方を使ってコネクションを作るのか?

複数の接続を作成するのは時間がかかり、複数の接続がメモリを消費したりパフォーマンスに影響したりすると考えているのかもしれません。


3: 新しいSqlConnectionは毎回メモリやリソースを消費し、パフォーマンスに影響しますか?

これは盲目的な考え方、盲目的な心配です。

というのは「複数の接続を作成する」ことは必ずしも複数の新しいデータベース接続を作成するわけではありませんデータベース接続は貴重なリソースであり、MS SQL Serverに関しては内部的に最適化され、接続は再利用されます。

接続プールは.netによって提供されており、接続文字列にPoolingプロパティがあり、デフォルトはtrue、つまり接続プールはデフォルトでオンです。これはSQL Serverとは関係ありません。もし接続文字列にPooling=falseと書けば、接続プールは存在せず、完全に です。 .NETの最適化。



同じデータベース接続を複数のスレッドで使用した場合の結果を探る
記事リンク:http://www.th7.cn/Program/java/201503/415005.shtml

まとめ:マルチスレッド環境では、単一の接続を使用すると、スレッド安全な接続処理ができないままトランザクションの混乱を引き起こす可能性があります。 JDBC取引の利用に影響します...




先の:javascrip{filter}t:history.go()とHistory.back()の違い。
次に:C# SQLデータベースへの接続 一般的な接続文字列
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com