Condividi tramite


Utilizzo della notifica delle query

In SQL Server 2005 è stata introdotta la nuova funzionalità di notifica delle query che consente alle applicazioni di richiedere l'invio di una notifica da SQL Server ogni volta che si verificano cambiamenti nei risultati di una query. Tramite questa funzionalità, i programmatori possono progettare applicazioni che eseguono query sul database solo se vengono apportate modifiche ai dati già recuperati dall'applicazione.

Ad esempio, un'applicazione per la gestione del catalogo in linea può inserire nella cache i risultati di una query relativa all'elenco degli articoli in vendita. I dati del catalogo presentati dall'applicazione sono basati sui dati inseriti nella cache. Se l'elenco degli articoli viene modificato, un gestore dell'evento dell'applicazione riceve l'evento di notifica ed elimina i dati nella cache. La volta successiva che un cliente richiede l'elenco degli articoli in vendita, viene eseguita una query sul database relativa ai dati correnti e viene ripetuta la sottoscrizione di notifica.

Le applicazioni possono utilizzare la notifica delle query per ridurre il numero di round trip al database. Anziché scrivere codice che riesegue periodicamente una query per mantenere aggiornati i risultati, è possibile progettare le applicazioni in modo da ricevere automaticamente una notifica quando i risultati di una query non sono più aggiornati. Tramite la funzionalità di notifica delle query, l'applicazione esegue un comando che include una query e una richiesta di notifica. I risultati della query o il contenuto dinamico generato da tali risultati vengono inseriti nella cache dell'applicazione. Quando riceve la notifica delle query, l'applicazione elimina il contenuto della cache e quindi riesegue la query e la richiesta di notifica quando deve utilizzare i risultati aggiornati.

Motore di database utilizza le sottoscrizioni di notifica per tenere traccia delle richieste di notifica delle query. Se un comando include una richiesta di notifica, il database registra la richiesta come una sottoscrizione di notifica e quindi esegue il comando.

Per inviare i messaggi di notifica, Motore di database utilizza Service Broker, che pertanto deve essere attivo nel database per il quale viene richiesta la sottoscrizione. Per utilizzare la funzionalità di notifica delle query, non è necessario che sia disponibile o che venga utilizzato Notification Services. Le notifiche delle query non dipendono dalle notifiche degli eventi.

Per ricevere un messaggio di notifica in un database diverso da quello che include la sottoscrizione, la proprietà TRUSTWORTHY di quest'ultimo database deve essere impostata su ON. Per ulteriori informazioni, vedere ALTER DATABASE (Transact-SQL).