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

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

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

[Bağlantıyı kopyala]
2020-4-19 tarihinde 18:51:31 tarihinde yayınlandı | | | |
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ı
2020-4-19 tarihinde 21:58:46 tarihinde yayınlandı |
Bu yeni bir şey
2020-4-30 tarihinde 13:05:18 tarihinde yayınlandı |
Gel bak, destek, kanepe
 Ev sahibi| 2021-3-22 15:31:43 tarihinde yayınlandı |
DefaultObjectPoolProvider kaynak kodu
MaximumRetained Varsayılan Ortam.ProcessorCount * 2;





 Ev sahibi| 2021-3-22 tarihinde 15:34:51 tarihinde yayınlandı |
Ayrıca doğrudan da yazılabilir


 Ev sahibi| 2021-3-23 09:50:57 tarihinde yayınlandı |
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| 2021-3-24 18:23:44 tarihinde yayınlandı |
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

2021-8-17 10:13:07 tarihinde yayınlandı |
Öğ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