Είναι διάφοροι παράμετροι οι οποίοι πρέπει να λάβεις υπόψη σου.
Αν τα queries είναι action (INSERT, UPDATE, DELETE) καλό θα είναι να κλείνεις το connection όσο το δυνατόν πιο γρήγορα, μετά από κάθε query.
Αν είναι μόνο SELECT, δεν έχει μεγάλη διαφορά, καθότι αν δεν το κλείσεις και συνεχίσεις, υποτίθεται ότι κερδίζεις χρόνο. Στην πραγματικότητα, δεν λειτουργεί έτσι, γιατί ένα connection όταν κλείνει, επιστρέφει στο connection pool του SQL Server για σύντομο χρονικό διάστημα, και αν χρειαστεί μέσα σε αυτό το διάστημα ένα νέο connection, ξαναγυρνάει για χρήση της εφαρμογής που το ζήτησε.
Έτσι ουσιαστικά δεν ξανανοίγει, αλλά επαναχρησιμοποιήται, με οφέλη και προς τον χρόνο, αλλά και την επαναχρησιμοποίηση των πόρων του server.
Αν μιλάμε για μια ακολουθία από SELECT statements, που συνήθως συμβαίνει στα Web sites, καλό είναι να σκεφτείς την χρήση του cache.
Θα μπορούσες πχ, το result set που σου επιστρέφει ο datareader να το βάλεις στο application cache με κλειδιά, το WHERE κομμάτι του SELECT και το table ή view που αναφέρεται και να μείνει εκεί για κάποιο περιορισμένο χρόνο. Έτσι σε ένα site που έχει μεγάλη κίνηση, θα γλυτώσεις πολλά queries και να ανέβει στο κατακόρυφο η ταχύτητα που θα γίνονται render οι σελίδες...
George J.