Ο σύνδεσμος προς το άρθρο έχει ως εξής:
http://www.cnblogs.com/LoveJenny/archive/2011/10/31/2229738.html
1: Είναι το SqlConnection ασφαλές για νήματα;
Μπορεί να είναι γνωστό ότι η χρήση μιας σύνδεσης για την εκτέλεση μιας πρότασης Sql σε ένα περιβάλλον πολλαπλών νημάτων είναιΔεν είναι ασφαλέςΣτόχος.
Το SqlConnection δεν είναι ασφαλές για νήματα, επομένως το multithreading είναι βέβαιο ότι θα είναι πρόβλημα. Στην πραγματικότητα, το .net παρέχει αυτόματα διαχείριση χώρου συγκέντρωσης σύνδεσης, εφόσον η συμβολοσειρά σύνδεσης είναι η ίδια (πρέπει να είναι ακριβώς η ίδια), θα βρίσκεται στον ίδιο χώρο συγκέντρωσης, το άνοιγμα και το κλείσιμο λαμβάνουν στην πραγματικότητα μια σύνδεση από τον χώρο συγκέντρωσης και επανατοποθετούν τη σύνδεση στον χώρο συγκέντρωσης, κάτι που δεν θα προκαλέσει προβλήματα απόδοσης. Επομένως, μετά το άνοιγμα κάθε σύνδεσης, θα πρέπει να κλείνει το συντομότερο δυνατό μετά τη χρήση, έτσι ώστε η σύνδεση να μπορεί να επιστραφεί στην πισίνα για χρήση από άλλα προγράμματα.
2: Γιατί οι άνθρωποι εξακολουθούν να χρησιμοποιούν την παραπάνω μέθοδο γραφής για να δημιουργήσουν συνδέσεις;
Νομίζω ότι μπορεί να πιστεύουν ότι η δημιουργία πολλαπλών συνδέσεων είναι χρονοβόρα και ότι οι πολλαπλές συνδέσεις καταλαμβάνουν μνήμη, επηρεάζουν την απόδοση κ.λπ.
3: Κάθε νέο SqlConnection καταλαμβάνει μνήμη και πόρους, επηρεάζοντας την απόδοση;
Αυτό είναι τυφλή σκέψη, τυφλή ανησυχία.
ΕπειδήΗ "δημιουργία πολλαπλών συνδέσεων" δεν δημιουργεί απαραίτητα πολλές νέες συνδέσεις βάσης δεδομένωνΗ σύνδεση με τη βάση δεδομένων είναι ένας πολύτιμος πόρος, όσον αφορά τον MS SQL Server, αυτός ο πολύτιμος πόρος θα βελτιστοποιηθεί εσωτερικά και η σύνδεση θα επαναχρησιμοποιηθεί.
Ο χώρος συγκέντρωσης σύνδεσης παρέχεται από το .net, υπάρχει μια ιδιότητα Pooling στη συμβολοσειρά σύνδεσης, η προεπιλογή είναι αληθής, δηλαδή, ο χώρος συγκέντρωσης συνδέσεων είναι ενεργοποιημένος από προεπιλογή, αυτό δεν έχει καμία σχέση με τον sql server, εάν γράψετε Pooling=false στη συμβολοσειρά σύνδεσης, τότε δεν υπάρχει χώρος συγκέντρωσης σύνδεσης, αυτό είναι εντελώς. Βελτιστοποίηση .NET.
Διερεύνηση των συνεπειών της χρήσης της ίδιας σύνδεσης βάσης δεδομένων σε πολλά νήματα Σύνδεσμος άρθρου: http://www.th7.cn/Program/java/201503/415005.shtml
Περίληψη: Σε ένα περιβάλλον πολλαπλών νημάτων, η χρήση μιας μεμονωμένης σύνδεσης μπορεί να προκαλέσει σύγχυση συναλλαγών χωρίς ασφαλή χειρισμό της σύνδεσης.... Επηρεάζει τη χρήση των συναλλαγών JDBC...
|