sql >> Database >  >> RDS >> Sqlserver

SQL Server, een tabel als wachtrij gebruiken

De enige manier om een ​​niet-pooling blokkeringswachtrij te bereiken is WAITFOR (RECEIVE) . Dat impliceert Service Broker-wachtrijen, met alle extra overhead.

Als u gewone tabellen als wachtrijen gebruikt u kunt geen niet-pollingblokkering bereiken. U moet de wachtrij pollen door om een ​​verwijderingsbewerking te vragen, en als deze niets oplevert, slaap dan en probeer het later opnieuw.

Ik ben bang dat ik het hier niet met Andomar eens ben:terwijl zijn antwoord werkt als een algemene vraag 'zijn er rijen in de tabel?' als het gaat om wachtrijen, vanwege de drukke aard van overlappende wachtrijen/de wachtrijen, is het controleren op dit soort rijen een (bijna) gegarandeerde impasse onder belasting. Als het gaat om het gebruik van tabellen als wachtrij, moet men zich altijd houden aan de basisbewerkingen voor wachtrij/de wachtrij en geen fancy dingen proberen.



  1. Synchroniseer de lokale Microsoft MySQL-database met de externe mysql-database die dagelijks wordt gepland

  2. Replicatie van MySQL naar MS SQL

  3. SQL Meest voorkomende waarden selecteren

  4. Bulk insert rowterminator probleem