sql >> Databáze >  >> RDS >> Sqlserver

Sql připojení čeká 15 sekund navzdory 3 sekundovému časovému limitu v připojovacím řetězci

Než síťový hardware oznámí vypršení časového limitu připojení síťovým ovladačům, uplyne časový limit, což zase upozorní programy čekající na síťový IO. Časové limity transportní vrstvy můžete ověřit pomocí telnet servername 1433 (za předpokladu, že váš sql server naslouchá na portu 1433).

Ale 3 sekundy jsou příliš málo na to, aby proces inicializoval síťová rozhraní API (za předpokladu, že vaše webová aplikace je ve vlastním fondu aplikací), odeslal požadavek a počkal, než vyprší časový limit hardwaru. Aktualizace BIOSu/firmwaru/ovladače pravděpodobně tolik nezkrátí dobu odezvy.

Bylo by lepší provést spojení asynchronně. Nedoporučuji používat EndInvoke k ukončení asynchronního volání, protože nešťastní uživatelé mohou stále muset počkat 3 celé sekundy, aby viděli jakoukoli odpověď, když je databáze mimo provoz. Možná je lepší zavolat Ajax. Pokud váš web neustále navštěvuje mnoho uživatelů, možná budete chtít uložit do mezipaměti výsledek kontroly připojení a aktualizovat je způsobem, který je pro vaše uživatele smysluplný.



  1. 50 odstínů NULL – různé významy NULL v SQL

  2. Vytvořte sloupec automatického zvýšení v SQLite

  3. Zkombinujte dvě tabulky do nové, takže vybrané řádky z druhé tabulky budou ignorovány

  4. Jak vynásobit dva sloupce v SQL