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

SQL Server pomocí tabulky jako fronty

Jediným způsobem, jak dosáhnout fronty blokování bez sdružování, je WAITFOR (RECEIVE) . Což znamená fronty Service Broker se všemi přidanými režiemi.

Pokud jako fronty používáte běžné tabulky nebudete moci dosáhnout blokování bez dotazování. Musíte se dotazovat fronty tím, že požádáte o operaci vyřazení z fronty, a pokud nic nevrací, přepněte do režimu spánku a zkuste to znovu později.

Obávám se, že zde budu nesouhlasit s Andomarem:zatímco jeho odpověď funguje jako obecná otázka „jsou v tabulce nějaké řádky?“ pokud jde o zařazování do fronty, kvůli zaneprázdněnosti překrývajících se front/dequeue je kontrola řádků, jako je tato, (téměř) zaručeným uváznutím při zatížení. Pokud jde o použití tabulek jako fronty, vždy se musíte držet základních operací enqueue/dequeue a nezkoušejte přepychové věci.



  1. Oracle Přidejte 1 hodinu v SQL

  2. vložte datum do databáze mysql

  3. Problém s časovým limitem 8 hodin MYSQL

  4. Odstranění úvodních nul z pole v příkazu SQL