Condividi tramite


Pianificazione delle notifiche

Per ottimizzare l'utilizzo della funzionalità di notifica delle query, è consigliabile verificare se le notifiche possono essere utili per l'applicazione, se le query utilizzate dall'applicazione supportano le notifiche e la strategia che verrà utilizzata dall'applicazione per la sottoscrizione e la ricezione delle notifiche.

La notifica delle query consente di ridurre il numero di round trip al database se i dati della query vengono modificati raramente, se l'applicazione non richiede aggiornamenti immediati nel caso di modifica dei dati e se la query soddisfa i requisiti e le limitazioni descritti in Creazione di una query da notificare. Molte applicazioni soddisfano questi requisiti e possono pertanto sfruttare i vantaggi offerti dalla notifica delle query.

La notifica delle query non risulta utile in tutti gli scenari. Le notifiche sono utili quando un'applicazione deve leggere di frequente i dati del database, che vengono tuttavia aggiornati piuttosto raramente. Ad esempio, un'applicazione per la gestione del catalogo in linea viene visualizzata più frequentemente rispetto alla frequenza con cui viene aggiornato il catalogo. Nel caso di un carrello acquisti in linea, è possibile invece che il contenuto venga aggiornato di frequente e pertanto la notifica delle query non risulta particolarmente utile.

Le notifiche delle query sono più efficienti se l'applicazione esegue query con una struttura comune e nelle quali variano solo i valori dei parametri. Ad esempio:

SELECT ProductNumber, Name FROM Production.Product WHERE ListPrice < 300
SELECT ProductNumber, Name FROM Production.Product WHERE ListPrice < 500

In questo caso, il modello interno delle sottoscrizioni di entrambe le notifiche delle query è uguale e pertanto l'overhead richiesto in SQL Server è inferiore rispetto a quello di due notifiche con una struttura di query diversa. Si noti tuttavia che i parametri delle query vengono mantenuti. Benché le query condividano un modello, l'aggiunta di un elemento con un valore ListPrice di 350 determina una notifica per la seconda query, ma non per la prima.

Se la notifica delle query è attiva per una tabella, gli aggiornamenti di tale tabella saranno più costosi. Motore di database deve infatti eseguire operazioni aggiuntive per verificare le sottoscrizioni e, se necessario, per generare le notifiche. Per ridurre al minimo l'overhead per sottoscrizione è possibile riutilizzare i modelli interni. È pertanto consigliabile utilizzare la notifica delle query solo per le applicazioni che eseguono query con strutture simili ed evitare invece di utilizzarla per le applicazioni che eseguono query con strutture diverse.

Ad esempio, un'applicazione che visualizza gli articoli del catalogo compresi in una fascia di prezzo specifica esegue query con la stessa struttura. In questo caso, Motore di database può riutilizzare il modello interno per ogni query e la notifica delle query può migliorare le prestazioni. Un'applicazione che invece consente la creazione di report ad hoc esegue query con una struttura variabile. In questo caso non è consigliabile utilizzare la notifica delle query nell'applicazione.

Motore di database gestisce un modello interno fino a quando viene utilizzato almeno da una sottoscrizione registrata. Motore di database limita il numero di modelli interni diversi per una tabella specifica. Quando viene raggiunto il limite, Motore di database non registra più le sottoscrizioni che comportano la creazione di un nuovo modello. Motore di database genera immediatamente un messaggio che indica che non è possibile registrare la sottoscrizione.

Vedere anche

Concetti

Creazione di una query da notificare

Guida in linea e informazioni

Assistenza su SQL Server 2005