Udostępnij za pośrednictwem


Buforowanie połączeń

Nawiązywanie połączenia ze źródłem danych może być czasochłonne. Aby zminimalizować koszty otwierania połączeń, ADO.NET używa techniki optymalizacji o nazwie buforowanie połączeń, co minimalizuje koszt wielokrotnego otwierania i zamykania połączeń. Buforowanie połączeń jest obsługiwane inaczej dla dostawców danych programu .NET Framework. Podczas gdy buforowanie połączeń zwiększa wydajność i wykorzystanie zasobów, kilka czynników może mieć wpływ na wydajność w zależności od środowiska i konfiguracji bazy danych:

  • limity połączeń i ograniczenia zasobów: W środowiskach baz danych limity połączeń są często powiązane z warstwami usług lub konfiguracjami zasobów. Na przykład usługa Azure SQL Database definiuje limity połączeń na podstawie wybranej warstwy usługi, podczas gdy usługa Azure SQL Managed Instance wymusza limity na podstawie przydzielonych zasobów, takich jak procesor CPU, pamięć lub rdzenie wirtualne. Gdy konfiguracje puli połączeń przekraczają te limity, aplikacje mogą napotkać odrzucone połączenia, ograniczanie przepustowości lub obniżoną wydajność.

  • Metody uwierzytelniania: Mechanizmy uwierzytelniania oparte na tokenach, takie jak Microsoft Entra ID, mogą wpływać na zarządzanie pulą połączeń ze względu na wygaśnięcie tokenu. Wygasłe tokeny mogą unieważniać połączenia w puli, zakłócając ponowne użycie. Takie zachowanie występuje zarówno w systemach baz danych opartych na chmurze, jak i lokalnych, które korzystają z nowoczesnych protokołów uwierzytelniania.

  • Opóźnienie sieci i punkty końcowe: Opóźnienia sieci i konfiguracje punktów końcowych mogą mieć wpływ na wydajność buforowania połączeń. Publiczne punkty końcowe, często używane w bazach danych hostowanych w chmurze, zwykle powodują większe opóźnienia w porównaniu z połączeniami prywatnymi lub bezpośrednimi. W aplikacjach natywnych dla chmury z dynamicznym adresowaniem IP ponowne użycie połączeń może być zakłócone, jeśli reguły zapory nie zostaną zaktualizowane, aby uwzględnić zmieniające się adresy IP.

  • Wymagania dotyczące szyfrowania: Bazy danych, które wymuszają szyfrowanie TLS/SSL, wymagają wyrównania między konfiguracjami buforowania połączeń a ustawieniami szyfrowania. Na przykład pominięcie wymaganych parametrów szyfrowania w ciągach połączenia, takich jak Encrypt=True, może prowadzić do błędów połączeń, zmniejszając efektywność puli.

  • Rozpoznawanie nazw DNS: Prywatne punkty końcowe i niestandardowe konfiguracje DNS mogą stanowić wyzwanie dla zarządzania pulą połączeń. Błędnie skonfigurowane lub niespójne ustawienia DNS mogą opóźnić lub zablokować ustanowienie połączenia, co wpływa na wydajność i niezawodność ponownego użycia połączenia. Jest to szczególnie istotne w środowiskach z konfiguracjami chmury hybrydowej lub prywatnej.

W tej sekcji

puli połączeń programu SQL Server (ADO.NET)
Zawiera omówienie buforowania połączeń i opisuje sposób działania buforowania połączeń w programie SQL Server.

OLE DB, ODBC i Oracle Connection Pooling
W tym artykule opisano buforowanie połączeń dla dostawcy danych programu .NET Framework dla OLE DB, dostawcy danych programu .NET Framework dla ODBC i dostawcy danych programu .NET Framework dla Oracle.

Zobacz też