03 Jun 2008

Όπου μπορείτε μην χρησιμοποιείτε (SELECT *)

Αν θέλετε να εκτελέσετε ένα Query το οποίο επιστρέφει κάποια πεδία είναι πολύ καλύτερο και γρηγορότερο να δώσετε τα ονόματα των πεδίων παρά να δώσετε *.

Έτσι το query SELECT pub_name,city FROM dbo.publishers θα εκτελεστεί γρηγορότερα από το SELECT * FROM dbo.publishers, αρκεί να έχουμε ορίσει κάποιο Index στα πεδία pub_name και city. Αν συμβαίνει αυτό τότε όλες οι τιμές που θα επιστραφούν θα είναι από τον Index και θα μειωθούν τα logical reads.

Στο παρακάτω παράδειγμα χρησιμοποιούμε τη STATISTICS IO για να δούμε πόσα Logical Reads έχουμε


SET STATISTICS IO ON
GO
SELECT pub_name,city FROM dbo.publishers

Table 'Products'. Scan count 1, logical reads 1, physical reads 0, read-ahead reads 0. 


SET STATISTICS IO ON
GO
SELECT * FROM dbo.publishers

Table 'Products'. Scan count 1, logical reads 7, physical reads 0, read-ahead reads 0.

kick it on KickIt.gr

Categories: SQL Server
Comments are closed