All'inizio dello sviluppo della nostra app, stavamo usando SQLDependency abbastanza pesantemente per memorizzare nella cache i risultati del db fino a quando le notifiche dicevano alla nostra app di prendere una nuova copia.Utilizzo di SQLDependency rispetto al polling periodico di una tabella (impatto sulle prestazioni)
Durante il test, abbiamo notato che le prestazioni di sql db venivano martellate dal servizio di notifica sqldependency. Abbiamo ridimensionato il numero di tabelle che stavamo usando sqldependency e notato un notevole aumento delle prestazioni. Quindi, pensavamo di averla appena terminata e abbiamo proseguito. Adesso siamo a pochi tavoli.
Successivamente abbiamo scoperto che non è stato possibile ridimensionare il livello di accesso di sicurezza per il nome utente che stabilirà la dipendenza. Potremmo avere più di una stringa di connessione per ogni db (uno per la dipendenza e uno per il resto dell'app) ma con più db e db mirroring, si tratta di un dolore (dal punto di vista amministrativo sql db e sviluppo app)
a questo punto ci sono solo pensando di allontanarsi da SqlDependency tutto in base alla seguente logica:
- non abbiamo bisogno di notifica "istantanea" che i dati sono cambiati. Se sapessimo entro 1 secondo, sarebbe abbastanza veloce.
- Con un po 'di reticolazione, potremmo scendere a un solo tavolo e interrogare quel tavolo una volta al secondo.
Qualcuno vede un difetto in questa logica?
Il polling di una tabella una volta al secondo causerebbe più o meno carico sul db rispetto a SQLDependency?
Qualcuno ha avuto problemi di prestazioni simili con SQLDependency?
In che modo il sondaggio rileva che sono stati apportati cambiamenti? Trigger? –
Sì - trigger. – SLoret
Come barra laterale; Non ho mai usato questa tecnologia, ma potresti trovarla utile: http://msdn.microsoft.com/en-us/library/ms130764(v=sql.105).aspx – MarkD