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

.NET SqlDependency s mnoha upozorněními vs. vysokorychlostní dotazování?

SqlDependency vás pouze upozorní, že došlo ke změně, a budete si muset znovu přečíst celou tabulku. Funguje to dobře s nízkou mírou upozornění. Při vysoké míře musíte vzít v úvahu, že oznámení mají značné náklady. Viz The Mysterious Notification pro více podrobností o tom, jak SqlDependency funguje. Jak vidíte, náklady jsou značné:

  • nastavení oznámení (zápis do sys.dm_qn_subscriptions a do systémových tabulek SSB)
  • spuštění oznámení (zápis sys.dm_qn_subscriptions)
  • doručení oznámení (zápisy do systémových tabulek SSB, cílová fronta)
  • přijetí oznámení (zápisy do cílové fronty, systémové tabulky SSB)

To je poměrně málo zápisů, náklady se rychle zvýší, pokud budete neustále informováni.

Skutečnou otázkou však je, jak přesně chcete v aplikaci reagovat na konstantní rychlost změn? co chcete vědět, to něco změnil? no, víš, ono to tak je vždycky, kdykoli aplikace potřebuje data, raději načte nejnovější stav, protože se určitě změnil. Ani hlasování nedává smysl. Zní to, že to, co opravdu chcete, je buď změnit sledování nebo pravděpodobněji vlastní fronta změn dodávají původci změn.




  1. Jak získat aktuální objekt Connection v Spring JDBC

  2. Najděte skupinu záznamů, které odpovídají více hodnotám

  3. 12c Automatické vyplnění sloupce se sekvenční hodnotou

  4. Vkládání dat velkých objektů do Salesforce.com ze serveru SQL