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

Co robi program SQL Server z żądaniem przekroczenia limitu czasu?

Limit czasu jest wymuszany przez ADO.NET. SQL Server nie zna czegoś takiego jak limit czasu polecenia. Klient platformy .NET wyśle ​​polecenie TDS „uwaga”. Możesz zaobserwować to zachowanie w programie SQL Profiler, ponieważ ma zdarzenie „uwaga”.

Gdy SQL Server otrzyma anulowanie, anuluje aktualnie uruchomione zapytanie (tak jak robi to SSMS po naciśnięciu przycisku stop). Przerwie partię (tak jak w SSMS). Oznacza to, że nie można uruchomić żadnego kodu catch. Połączenie pozostanie aktywne.

Z mojego doświadczenia wynika, że ​​transakcja zostanie natychmiast wycofana. Nie sądzę jednak, żeby było to gwarantowane.

TL; DR:Limit czasu w ADO.NET zachowuje się tak samo, jakbyś nacisnął stop w SSMS (lub wywołał SqlCommand.Cancel ).

Oto odniesienie do tego:https://techcommunity.microsoft.com/t5/sql-server-support/how-it-works-attention-attention-or-should-i-say -anuluj/ba-p/315511



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używasz procedury składowanej w Entity Framework 5 z typem złożonym?

  2. Funkcje SQL — silnia

  3. Kolumna nie istnieje w klauzuli IN, ale działa SQL

  4. Jak odzyskać dane z obciętej tabeli

  5. Modelowanie danych dla tych samych tabel z tymi samymi kolumnami