Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 65312|Yanıt: 7

[.NET Core] ADO.NET ObjectPool üzerinden bir SqlConnection bağlantı havuzu oluşturun

[Bağlantıyı kopyala]
Yayınlandı 19.04.2020 18:51:31 | | | |
ObjectPool, Microsoft'un yeni bir özelliğidir, Microsoft, yeniden kullanılabilecek bazı nesneleri korumamıza yardımcı oluyor.

Basitçe söylemek gerekirse, paylaşılan bisikletlere benzer şekilde, kullandığınızda kodu tararak kilidini açıyorsunuz, araç doludur, kullandığınızda, arabayı kilitlediğinizde araç dolayı serbest bırakır. Bu meslekler ve serbest bırakmalar platform tarafından bizim için sağlanıyor.

Bazı nesneler iş parçacığı güvenli değildir, ancak her nesneyi örneklediğimizde bazı kaynakları tüketmemiz gerekir.

.NET Core'da Nesne Havuzu hakkında ayrıntılı açıklama
https://www.itsvse.com/thread-9152-1-1.html
(Kaynak: Architect_Programmer)
İlk olarak, IPooledObjectPolicy arayüzünü devralan ve iki yöntemini uygulaması gereken yeni bir SqlConnectionPooledObjectPolicy sınıfı <T>oluşturuyoruz.

Nesneyi Create yönteminde nasıl örnekleşir,Return, nesnenin hâlâ yeniden kullanılamayacağını gösterir ve false dönerse nesne nesne havuzundan silinir.

Test kaynak kodu şöyledir:

Test sonuçları aşağıdaki gibidir:



Bağlantı havuzunun ilk 10 sorguda biraz daha yavaş olduğu ve sonrasında SqlConnection'ın her bir örneğinden daha hızlı olduğu görülebilir.

Kaynak kodu eklenmiş

Turistler, bu gönderinin gizli içeriğini görmek isterseniz lütfenYanıt






Önceki:C# programları zaman alıcı test dersleri çalıştırır
Önümüzdeki:MSSQL Trusted_Connection yapılandırması
Yayınlandı 19.04.2020 21:58:46 |
Bu yeni bir şey
Yayınlandı 30.04.2020 13:05:18 |
Gel bak, destek, kanepe
 Ev sahibi| Yayınlandı 22.03.2021 15:31:43 |
DefaultObjectPoolProvider kaynak kodu
MaximumRetained Varsayılan Ortam.ProcessorCount * 2;





 Ev sahibi| Yayınlandı 22.03.2021 15:34:51 |
Ayrıca doğrudan da yazılabilir


 Ev sahibi| Yayınlandı 23.03.2021 09:50:57 |
Test kodu:

maximumRetained 5'e ayarlanmıştır ve test yalnızca bir kez her kullanıldığında uygulanır, aşağıdaki şekilde gösterildiği gibi:



Geri dönmeme durumunda, Test 10 kez örneklenir, ancak maksimum 5 ayarını aşmış ve istisna yapmaz; kullanım tamamlandıktan sonra yavaş yavaş geri dönüştürülebilir ve sadece 5 örnek tutulur:


 Ev sahibi| Yayınlandı 24.03.2021 18:23:44 |
SQL Server Bağlantı Havuzu (ADO.NET)

Bir kullanıcı bir bağlantıda Aç çağırdığında, havuz işlemi havuzdaki bağlantıları arar. Bir havuz bağlantısı mevcutsa, yeni bağlantı açmak yerine arayana geri gönderilir. Uygulama o bağlantıda Close çağırdığında, havuz işlemi bağlantıyı kapatmak yerine aktif bağlantı havuzu setine döndürür.

https://docs.microsoft.com/zh-cn ... -connection-pooling

Yayınlandı 17.08.2021 10:13:07 |
Öğrenmeyi öğren
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com