Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Połączenie sql czeka 15 sekund pomimo limitu czasu 3 sekund w ciągu połączenia

Istnieje limit czasu, zanim sprzęt sieciowy zgłosi limit czasu połączenia do sterowników sieciowych, co z kolei powiadamia programy oczekujące na IO sieci. Możesz zweryfikować limity czasu warstwy transportowej przez telnet nazwa_serwera 1433 (zakładając, że twój serwer sql nasłuchuje na porcie 1433).

Ale 3 sekundy to zdecydowanie za mało, aby proces mógł zainicjować sieciowe interfejsy API (zakładając, że Twoja aplikacja internetowa znajduje się we własnej puli aplikacji), wysłać żądanie i poczekać na przekroczenie limitu czasu sprzętu. Aktualizacja BIOS/firmware/sterownika prawdopodobnie nie skróci czasu odpowiedzi aż tak bardzo.

Lepiej byłoby wykonać połączenie asynchronicznie. Nie sugeruję używania EndInvoke do zakończenia połączenia asynchronicznego, ponieważ pechowi użytkownicy mogą nadal potrzebować czekać 3 pełne sekundy, aby zobaczyć jakąkolwiek odpowiedź, gdy baza danych nie działa. Może połączenie Ajax jest lepsze. Jeśli wielu użytkowników stale odwiedza Twoją witrynę internetową, możesz chcieć buforować wyniki sprawdzania połączeń i aktualizować je w sposób zrozumiały dla użytkowników.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server - Transakcje zagnieżdżone w procedurze składowanej

  2. Jak zapobiegać atakom typu SQL Injection przez bezpieczne?

  3. SQL Server i utrata połączenia w trakcie transakcji

  4. Jaki jest dobry pomysł na zapisywanie danych czatu w bazie danych?

  5. Zwróć parametry procedury składowanej lub funkcji zdefiniowanej przez użytkownika w programie SQL Server (przykłady T-SQL)