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

SQL Server, używając tabeli jako kolejki

Jedynym sposobem na osiągnięcie kolejki blokowania bez puli jest WAITFOR (RECEIVE) . Co implikuje kolejki Service Broker, ze wszystkimi dodatkowymi kosztami.

Jeśli używasz zwykłych tabeli jako kolejek nie będziesz w stanie osiągnąć blokowania bez odpytywania. Musisz odpytać kolejkę, prosząc o operację usunięcia z kolejki, a jeśli nic nie zwróci, uśpij i spróbuj ponownie później.

Obawiam się, że nie zgodzę się tutaj z Andomarem:podczas gdy jego odpowiedź działa jako ogólne pytanie „czy są jakieś wiersze w tabeli?” jeśli chodzi o kolejkowanie, ze względu na zajętą ​​naturę nakładania się na siebie kolejkowania/usuwania kolejek, sprawdzanie wierszy takich jak ten jest (prawie) gwarantowanym zakleszczeniem pod obciążeniem. Jeśli chodzi o używanie tabel jako kolejki, należy zawsze trzymać się podstawowych operacji wpisywania/usuwania z kolejki i nie próbować wymyślnych rzeczy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Naruszone ograniczenie wielokrotności Struktura encji 5

  2. Zapytanie o dopasowanie adresu IP w SQL Server

  3. Rekurencyjne łączenie elementów nadrzędnych

  4. Ms SQL geography.STDistance zwraca nieprawidłową odległość

  5. Odbiornik zmian bazy danych programu SQL Server C#