Korzystam z programu SQL Server 2008 R2 z dodatkiem SP1 na komputerze z systemem Windows Server 2008. Mam skrypt .NET uruchomiony z programu Visual Studio 2010, który wykonuje następujące czynności:
- Sięga do bazy danych
- Dokonuje zmiany
- Iteruje
Całkowita liczba iteracji wynosi 150, jednak zatrzymuje się na 100 połączeniach i nie mogę zrozumieć, dlaczego. Mógłbym dostosować mój skrypt, aby używał tylko jednego wątku, ale wolałbym wiedzieć, gdzie brakuje mi ustawienia maksymalnego połączenia, ponieważ będzie to bardziej przydatne w przyszłości.
Oto gdzie sprawdziłem do tej pory:
- Ciąg połączenia SQL w Visual Studio 2010 (jest ustawiony na 1000)
- Właściwości połączenia z instancją bazy danych SSMS (jest ustawiona na 0 połączeń użytkownika [nieskończoność])
- Przeszukano niektóre informacje na temat Server 2008, wygląda na to, że może obsłużyć ponad 100 połączeń
- Przeszedłem obok mojego kodu,
SP_WHO2
który daje więcej informacji na temat połączeń logicznych, widząc, że liczba połączeń zaczyna się od 52, a błędy skryptu z błędem „Osiągnięto maksymalną liczbę połączeń w puli” przy 152 połączeniach logicznych. - Zmieniono parametry połączenia do użycia
Data Source=PerfSQL02;Initial Catalog=Masked;Integrated Security=True;Max Pool Size=1000
Nie wiem, gdzie jeszcze to sprawdzić, wiem, że mam tu wiele ruchomych części, ale mam wrażenie, że gdzieś brakuje mi ustawienia maksymalnego basenu.
System.Data.SqlClient
Domyślnie jest to 100, dlatego widzisz wyczerpanie puli połączeń).