Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

SET NOCOUNT ON και network traffic

Îåêßíçóå áðü ôï ìÝëïò gkontog. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 14-01-2005, 18:43. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  18-10-2004, 10:09 300

    SET NOCOUNT ON και network traffic

     

    Θα έχετε παρατηρήσει ότι σε κάθε εντολή που εκτελείτε στον Query Analyzer, στο τέλος υπάρχει και το γνωστό

     

    (x row(s) affected)

     

    όπου x ο αριθμός των εγγραφών που επιρρεάστηκαν από την εντολή. Το ίδιο γίνεται εσωτερικά κατά την εκτέλεση των stored procedures και μάλιστα η πληροφορία αυτή επιστρέφει στον client. Η πληροφορία αυτή είναι τις περισσότερες φορές άχρηστη και προσωπικά δε μου έχει τύχει να την χρησικοποιήσω σε κάποια περίπτωση. Ταξιδεύοντας όμως στον client δημιουργεί φόρτο στο δίκτυο χωρίς να υπάρχει λόγος. Μπορεί ο φόρτος να είναι μικρός αλλά σε μεγάλες εγκαταστάσεις το ποσοστό γίνεται σημαντικό.

     

    Μπορούμε να παρακάμψουμε το πρόβλημα αυτό με τη χρήση της εντολής SET NOCOUNT ON πάνω – πάνω στον κώδικα σε κάθε SP. Η εντολή αυτή ουσιαστικά σταματά την εμφάνιση, και κατ’ επέκταση την αποστολή, των πληροφοριών αυτών. Πρέπει εδώ να τονιστεί ότι η default τιμή για τον SQL Server είναι SET NOCOUNT OFF. Αν παρ’ ελπίδα εμφανιστεί ανάγκη αποστολής των πληροφοριών αυτών στον client, το μόνο που χρειάζεται αίνει η αντικατάσταση της SET NOCOUNT ON με την SET NOCOUNT ON.

  •  14-01-2005, 14:08 861 σε απάντηση της 300

    Re: SET NOCOUNT ON και network traffic

    Αν δεν κάνω λάθος όμως, με μια π.χ. update SP και set nocount on, δεν μπορείς να ξέρεις τον αριθμό των rows που επηρεάστηκαν, πράγμα σημαντικό σε ορισμένες περιπτώσεις. Αν χρησιμοποιείς κάποιο data access layer όπως π.χ. το MS Data Access App Block, νομίζω οτι σε ορισμένες περιπτώσεις είναι μια πληροφορία που χρειάζεται να την έχεις.


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  14-01-2005, 18:43 867 σε απάντηση της 861

    Re: SET NOCOUNT ON και network traffic

    Σωστό. Και το DataAdapter βασίζεται στον αριθμό των γραμμών που επηρεάστηκαν για να υλοποιήσει το optimistic locking όταν αποθηκεύει ένα Dataset.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems