Esecuzione di stored procedure e trigger
In SQL Server 2005 viene archiviata solo l'origine di stored procedure e trigger. Se una stored procedure o un trigger viene eseguito per la prima volta, l'origine viene compilata in un piano di esecuzione. Se la stored procedure o il trigger viene eseguito nuovamente prima che il piano di esecuzione venga rimosso dalla memoria, il motore relazionale rileva e riutilizza il piano esistente. Se il piano è stato rimosso dalla memoria, ne verrà creato uno nuovo. Questo processo è simile al processo eseguito in SQL Server 2005 per tutte le istruzioni SQL. Rispetto ai batch del linguaggio SQL dinamico, il principale vantaggio offerto dalle stored procedure e dai trigger di SQL Server 2005 in termini di prestazioni è rappresentato dalla presenza di istruzioni SQL sempre uguali che, pertanto, il motore relazionale mette agevolmente in corrispondenza con tutti i piani di esecuzione esistenti. I piani di stored procedure e trigger sono quindi facilmente riutilizzabili.
Nelle versioni di SQL Server precedenti alla 7.0 le stored procedure presentavano vantaggi maggiori in termini di prestazioni rispetto alle altre istruzioni SQL. In queste versioni i piani di esecuzione non venivano riutilizzati per batch diversi da stored procedure o trigger. L'unico modo per riutilizzare i piani di esecuzione consisteva nel codificare le istruzioni SQL nelle stored procedure.
Il piano di esecuzione delle stored procedure e dei trigger viene eseguito indipendentemente dal piano di esecuzione del batch che chiama la stored procedure o che attiva il trigger. In tal modo viene garantito un maggiore riutilizzo dei piani di esecuzione delle stored procedure e dei trigger.
Vedere anche
Concetti
Architettura di Query Processor