架构师_程序员_码农网

E Ambil kata sandi
Daftar

QQ登录

Hanya satu langkah untuk memulai

Cari
Dilihat:34911|Balasan: 7
打印 上一主题 下一主题

[NET Core]ADO.NET Membuat Pool Koneksi SqlConnection melalui ObjectPool

[Salin tautan]
A 跳转到指定楼层
pemilik
发表于 2020-4-19 18:51:31|只看该作者回帖奖励|MembalikkanPenjelajahan|Mode Baca
ObjectPool adalah fitur baru dari Microsoft, Microsoft membantu kita untuk memelihara beberapa objek yang dapat digunakan kembali.

Sederhananya, mirip dengan berbagi sepeda, ketika Anda menggunakannya untuk memindai kode untuk membukanya, kendaraan ini mewakili ditempati, ketika Anda selesai menggunakannya, ketika Anda menguncinya, kendaraan akan dilepaskan untuk mengosongkannya. Hunian dan pengosongan ini semuanya dikelola oleh platform untuk kita.

Beberapa objek tidak thread-safe, tetapi kita perlu mengkonsumsi beberapa sumber daya setiap kali kita menginstansiasi objek tersebut.

Object Pool di .NET Core
NET Core. https://www.itsvse.com/thread-9152-1-1.html
(Sumber: Arsitek_Programmer)
Pertama, kita membuat kelas SqlConnectionPooledObjectPolicy baru, mewarisi antarmuka IPooledObjectPolicy<T>, dan perlu mengimplementasikan dua metodenya.

Metode Create adalah cara menginstansiasi objek ini, Return mengindikasikan, apakah objek ini masih dapat digunakan kembali, ketika return false, objek ini akan dihapus di dalam object pool.

Kode sumber pengujian adalah sebagai berikut:

Hasil pengujian adalah sebagai berikut:



Seperti yang Anda lihat, kumpulan koneksi lebih lambat saat pertama kali Anda melakukan 10 kueri, dan setelah itu, semuanya lebih cepat daripada menginstansiasi SqlConnection setiap kali.

Terlampir adalah kode sumbernya

Tamu, jika Anda ingin melihat konten tersembunyi dari postingan ini, silakan balas ke






Sebelumnya:Program C # menjalankan kelas uji yang memakan waktu
Berikutnya:Konfigurasi Koneksi Tepercaya MSSQL
Yang pertama adalah menggunakan model yang sama dengan yang digunakan di artikel sebelumnya, dan yang kedua adalah menggunakan model yang sama dengan yang digunakan di artikel sebelumnya.
SQL Server
outlet sofa
发表于 2020-4-19 21:58:46|只看该作者
Ini adalah sesuatu yang baru
Jaringan petani kode, hanya diterbitkan dalam proses praktik, mengalami kesulitan teknis, jangan menyesatkan orang lain.
ringan ringan
发表于 2020-4-30 13:05:18|只看该作者
Saya akan melihatnya, mendukungnya, menyokongnya
Jaringan petani kode, hanya diterbitkan dalam proses praktik, mengalami kesulitan teknis, jangan menyesatkan orang lain.
penjualan sepatu bot ugg
lantai
楼主| 发表于 2021-3-22 15:31:43|只看该作者
Kode sumber DefaultObjectPoolProvider
MaximumRetained Default Environment.ProcessorCount * 2;





Jaringan petani kode, hanya dipublikasikan dalam proses latihan, mengalami kesulitan teknis, jangan menyesatkan orang lain.
penjualan sepatu bot ugg
5#
楼主| 发表于 2021-3-22 15:34:51|只看该作者
Jaringan petani kode, hanya dipublikasikan dalam proses latihan, mengalami kesulitan teknis, jangan menyesatkan orang lain.
6#
楼主| 发表于 2021-3-23 09:50:57|只看该作者
Kode pengujian:

Dengan maximumRetained diatur ke 5 dan dikembalikan setelah setiap penggunaan, Test hanya di-instansiasi sekali, seperti yang ditunjukkan di bawah ini:



Tanpa mengembalikannya, Test diinstansiasi 10 kali, dan meskipun melebihi pengaturan maksimumRetained 5, itu tidak melemparkan pengecualian, mungkin karena didaur ulang secara perlahan setelah selesai digunakan, dan kemudian, hanya 5 instance yang disimpan:


Jaringan petani kode, hanya diterbitkan dalam proses praktik, mengalami kesulitan teknis, tidak menyesatkan orang lain.
penjualan sepatu bot ugg
7#
楼主| 发表于 2021-3-24 18:23:44|只看该作者
Penyatuan Koneksi SQL Server (ADO.NET)

Setiap kali pengguna memanggil Open pada sebuah koneksi, proses pooling akan mencari koneksi yang tersedia di dalam pool. Jika koneksi pool tersedia, ia mengembalikan koneksi tersebut ke pemanggil alih-alih membuka koneksi baru. Ketika aplikasi memanggil Close pada koneksi tersebut, proses pooling mengembalikan koneksi tersebut ke kumpulan koneksi yang aktif dan bukannya menutup koneksi tersebut.

https://docs.microsoft.com/zh-cn ... -pengumpulan-koneksi

Code Farmer, hanya dipublikasikan dalam proses latihan, mengalami kesulitan teknis, jangan menyesatkan orang lain.
8#
发表于 2021-8-17 10:13:07|只看该作者
Saya tidak yakin apakah Anda akan bisa melakukannya.
Jaringan petani kode, hanya diterbitkan dalam proses praktik, mengalami kesulitan teknis, jangan menyesatkan orang lain.
Anda harus masuk sebelum dapat memposting kembali Masuk | Daftar

V ersi aturan integral iniB


PENAFIAN: Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer terbatas hanya untuk digunakan untuk tujuan pembelajaran dan penelitian; konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, semua konsekuensinya akan ditanggung oleh pengguna itu sendiri. Informasi situs ini berasal dari jaringan, sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus menghapus konten di atas sepenuhnya dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, mohon dukung perangkat lunak asli, beli registrasi dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email untuk menanganinya.

Mail To:help@itsvse.com

QQ | ( 鲁ICP备14021824号-2)|Peta Situs

GMT+8, 2024-9-18 21:36

Balas CepatKembali ke atasKembali ke daftar