Attualità e Information Technology

July 9, 2007

Sempre sulle performance di SQL Server

Filed under: IT, SQL

Già che ci siamo segnalo un altro post interessante riguardante il tema performance in SQL Server.

Questa volta si tratta di quanto il mancato uso del “owner” quando si chiama una stored procedure faccia decare le performance, soprattutto in SQL Server 2000. In SQL Server 2005 l’impatto è minore. Dal test comunque si nota anche quanto SQL Server 2005 sia nettamente più performante di SQL Server 2000.

Performance Impact of Procedure Calls without Owner Qualification

Technorati tags , , ,

AddThis Social Bookmark Button

Procedure Cache

Filed under: IT, SQL

Visto che oggi ho avuto modo di parlare di Procedure Cache in SQL Server con un cliente, posto un interessante articolo al riguardo e a quanto l’uso di parametri influenzi la crescita della stessa.

Procedure Cache Tuning/Sizing - From 1GByte to 768KBytes - Increase the size of usable Data Cache

Così la prossima volta potrò spiegarlo segnalando semplicemente un link invece che spiegarlo a voce ;)

Technorati tags , , , , ,

AddThis Social Bookmark Button

SQL Server 2005 - OUTPUT command

Filed under: IT, SQL

Solo oggi scopro l’esistenza, l’utilizzo e la potenza del comando OUTPUT introdotto in SQL Server 2005.

Permette di dire a SQL cosa farci restituire di una data operazione. Mi spiego meglio.

Supponiamo di fare la delete di alcune tuple di una tabella (Tab) secondo un dato criterio (campoC > 7) e voler sapere quali record siano stati eliminati. Abbiamo due possibilità: fare prima una select e dopo la delete, il tutto dentro una transazione, oppure definire un trigger sulla delete così da intercettare le tuple eliminate.

Sfruttando invece il comando OUTPUT possiamo risolvere in maniera più elengante scrivendo un codice come questo:

DELETE FROM Tab
OUTPUT Deleted.CampoA, Deleted.CampoB, Deleted.CampoC
WHERE CampoC > 7

Come si nota si sfrutta la tabella Deleted proprio come si farebbe in un trigger. Analogamente per operazioni di insert si sfrutta la tabella Inserted e per operazioni di update si sfrutta Deleted per la tupla pre-aggiornamento e Inserted per quella post-aggiornamento.

Per una spiegazione più chiara e meticolosa vi rimando a:

OUTPUT Clause (Transact-SQL)
The OUPUT Command
OUTPUT Clause in SQL Server 2005

Technorati tags , , ,

AddThis Social Bookmark Button
   

Get free blog up and running in minutes with Blogsome | Theme designs available here