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

Άποψη: 63300|Απάντηση: 7

[.NET Πυρήνας] ADO.NET Δημιουργήστε ένα χώρο συγκέντρωσης συνδέσεων SqlConnection μέσω του ObjectPool

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2020-4-19 18:51:31 | | | |
Το ObjectPool είναι μια νέα δυνατότητα από τη Microsoft, η Microsoft μας βοηθά να διατηρήσουμε ορισμένα αντικείμενα που μπορούν να επαναχρησιμοποιηθούν.

Για να το θέσω απλά, παρόμοια με τα κοινόχρηστα ποδήλατα, όταν το χρησιμοποιείτε, σαρώστε τον κωδικό για να το ξεκλειδώσετε, το όχημα σημαίνει ότι είναι κατειλημμένο, όταν το χρησιμοποιείτε, όταν κλειδώνετε το αυτοκίνητο, το όχημα θα απελευθερώσει την πληρότητα. Αυτές οι καταλήψεις και οι απελευθερώσεις διατηρούνται όλες από την πλατφόρμα για εμάς.

Ορισμένα αντικείμενα δεν είναι ασφαλή για νήματα, αλλά κάθε φορά που δημιουργούμε το αντικείμενο, πρέπει να καταναλώνουμε κάποιους πόρους.

Λεπτομερής επεξήγηση του Object Pool στο .NET Core
https://www.itsvse.com/thread-9152-1-1.html
(Πηγή: Architect_Programmer)
Αρχικά, δημιουργούμε μια νέα κλάση SqlConnectionPooledObjectPolicy που κληρονομεί τη διεπαφή IPooledObjectPolicy <T>και πρέπει να εφαρμόσει τις δύο μεθόδους της.

Πώς να δημιουργήσετε το αντικείμενο στη μέθοδο Δημιουργία,Η συνάρτηση Return υποδεικνύει εάν το αντικείμενο μπορεί να επαναχρησιμοποιηθεί και όταν επιστραφεί false, το αντικείμενο θα διαγραφεί από το χώρο συγκέντρωσης αντικειμένων.

Ο πηγαίος κώδικας δοκιμής έχει ως εξής:

Τα αποτελέσματα των δοκιμών είναι τα εξής:



Μπορεί να φανεί ότι η ομάδα σύνδεσης είναι λίγο πιο αργή στα πρώτα 10 ερωτήματα και μετά από αυτό, είναι ταχύτερη από κάθε εμφάνιση του SqlConnection.

Επισυνάπτεται ο πηγαίος κώδικας

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






Προηγούμενος:Τα προγράμματα C# εκτελούν χρονοβόρες δοκιμαστικές τάξεις
Επόμενος:Διαμόρφωση Trusted_Connection MSSQL
Δημοσιεύτηκε στις 2020-4-19 21:58:46 |
Αυτό είναι κάτι νέο
Δημοσιεύτηκε στις 2020-4-30 13:05:18 |
Έλα να δεις, στήριξε, καναπέ
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2021-3-22 15:31:43 |
Πηγαίος κώδικας DefaultObjectPoolProvider
MaximumRetain Προεπιλεγμένο περιβάλλον.ProcessorCount * 2;





 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2021-3-22 15:34:51 |
Μπορεί επίσης να γραφτεί απευθείας


 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2021-3-23 09:50:57 |
Κωδικός δοκιμής:

Το maximumKept έχει οριστεί σε 5 και η δοκιμή πραγματοποιείται μόνο μία φορά όταν επιστρέφεται κάθε φορά που χρησιμοποιείται, όπως φαίνεται στο παρακάτω σχήμα:



Σε περίπτωση μη επιστροφής, η δοκιμή πραγματοποιείται 10 φορές, αν και υπερβαίνει τη μέγιστη ρύθμιση διατήρησης των 5 και δεν θα αποτελέσει εξαίρεση, μπορεί μετά την ολοκλήρωση της χρήσης, να την ανακυκλώσει αργά και στη συνέχεια θα διατηρηθούν μόνο 5 περιπτώσεις:


 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2021-3-24 18:23:44 |
Χώρος συγκέντρωσης συνδέσεων SQL Server (ADO.NET)

Κάθε φορά που ένας χρήστης καλεί το Open σε μια σύνδεση, η διαδικασία του χώρου συγκέντρωσης αναζητά τις συνδέσεις που είναι διαθέσιμες στο χώρο συγκέντρωσης. Εάν υπάρχει διαθέσιμη σύνδεση πισίνας, επιστρέφεται στον καλούντα αντί να ανοίξει μια νέα σύνδεση. Όταν η εφαρμογή καλεί Κλείσιμο σε αυτήν τη σύνδεση, η διεργασία χώρου συγκέντρωσης επιστρέφει τη σύνδεση στο ενεργό σύνολο χώρου συγκέντρωσης συνδέσεων αντί να κλείσει τη σύνδεση.

https://docs.microsoft.com/zh-cn ... -connection-pooling

Δημοσιεύτηκε στις 2021-8-17 10:13:07 |
Μαθαίνω να μαθαίνω
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com