Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 19962|Απάντηση: 0

[Πηγή] Πώς να χρησιμοποιήσετε σωστά το SqlConnection, είναι ασφαλές το νήμα SqlConnection;

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 19/11/2016 8:46:14 π.μ. | | |
Ο σύνδεσμος προς το άρθρο έχει ως εξής:

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...




Προηγούμενος:javascrip{filter}t:η διαφορά μεταξύ history.go() και History.back().
Επόμενος:C# Σύνδεση σε βάσεις δεδομένων SQL Κοινές συμβολοσειρές σύνδεσης
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com