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

Άποψη: 28055|Απάντηση: 3

[Πηγή] Έλεγχος ταυτόχρονης εκτέλεσης πολλαπλών εκδόσεων του SQL Server

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 28/1/2021 5:55:52 μ.μ. | | |
Η συνέπεια της βάσης δεδομένων είναι επίσης ένας από τους σημαντικούς δείκτες για τη μέτρηση της απόδοσης του DBMS. Προς το παρόν, οι περισσότερες εμπορικές βάσεις δεδομένων (DB2, SQL Server) χρησιμοποιούν το πρωτόκολλο Two-Phase Locking (2PL) για έλεγχο ταυτοχρονισμού, το οποίο διασφαλίζει τη σειριοποίηση της ταυτόχρονης εκτέλεσης συναλλαγών. Ωστόσο, το 2PL πρέπει να κλειδώσει τυχόν δεδομένα για να μπορέσει να τα διαβάσει ή να τα γράψει. Στον πίνακα συμβατότητας αποκλεισμού, οι κλειδαριές S (Share Locks) και οι κλειδαριές X (Exclusive Locks) δεν είναι συμβατές, επομένως όταν η συναλλαγή 1 εκτελεί μια λειτουργία ανάγνωσης στα δεδομένα A (συν ένα κλείδωμα S) και η συναλλαγή 2 θέλει να γράψει στα δεδομένα (προσθέστε ένα κλείδωμα X), τότε η συναλλαγή 2 πρέπει να περιμένει μέχρι η συναλλαγή 1 να απελευθερώσει το κλείδωμα S στα δεδομένα A πριν συνεχίσει. Ο έλεγχος ταυτόχρονης εκτέλεσης πολλαπλών εκδόσεων (MVCC) λύνει καλά αυτό το πρόβλημα. Σε ένα σύστημα πολλαπλών εκδόσεων, κάθε δεδομένα εγγραφής δημιουργεί μια νέα έκδοση και η λειτουργία ανάγνωσης μπορεί να διαβάσει την κατάλληλη έκδοση όπως απαιτείται, έτσι ώστε οι λειτουργίες ανάγνωσης και εγγραφής να μην μπλοκάρουν η μία την άλλη. Το MVCC αυξάνει τον συγχρονισμό, αλλά εισάγει επίσης τα γενικά έξοδα αποθήκευσης για τη διατήρηση πολλαπλών εκδόσεων.

Ο μηχανισμός βάσης δεδομένων του Microsoft SQL Server εισάγει μια νέα υλοποίηση του υπάρχοντος επιπέδου απομόνωσης συναλλαγών - δεσμευμένες αναγνώσεις, οι οποίες παρέχουν στιγμιότυπα σε επίπεδο δήλωσης χρησιμοποιώντας τη διαχείριση εκδόσεων γραμμών. Ο μηχανισμός βάσης δεδομένων του SQL Server εισάγει επίσης ένα νέο επίπεδο απομόνωσης συναλλαγών - στιγμιότυπα για την παροχή στιγμιότυπων σε επίπεδο συναλλαγής που χρησιμοποιούν επίσης διαχείριση εκδόσεων γραμμών.

Η ρύθμιση της επιλογής βάσης δεδομένων READ_COMMITTED_SNAPSHOT σε ΕΝΕΡΓΟΠΟΙΗΣΗ ενεργοποιεί την απομόνωση δεσμευμένης ανάγνωσης χρησιμοποιώντας τη διαχείριση εκδόσεων γραμμών. Η ρύθμιση της επιλογής βάσης δεδομένων ALLOW_SNAPSHOT_ISOLATION σε ON επιτρέπει την απομόνωση στιγμιότυπου. Όταν οποιαδήποτε από τις δύο επιλογές είναι ενεργοποιημένη για τη βάση δεδομένων, ο μηχανισμός βάσης δεδομένων διατηρεί την έκδοση κάθε γραμμής που τροποποιείται. Κάθε φορά που μια συναλλαγή τροποποιεί μια γραμμή, η εικόνα της γραμμής πριν από την τροποποίηση αντιγράφεται σε μια σελίδα στο χώρο αποθήκευσης εκδόσεων. Ένας χώρος αποθήκευσης εκδόσεων είναι μια συλλογή σελίδων δεδομένων στο tempdb. Εάν υπάρχουν πολλές γραμμές τροποποίησης συναλλαγών, πολλές εκδόσεις αυτής της γραμμής θα συνδεθούν σε μια αλυσίδα εκδόσεων. Μια λειτουργία ανάγνωσης που χρησιμοποιεί τη διαχείριση εκδόσεων γραμμών θα ανακτήσει την τελευταία έκδοση κάθε γραμμής που δεσμεύτηκε κατά την έναρξη της συναλλαγής ή της δήλωσης.

Οι εφαρμογές που έχουν συνταχθεί για τον SQL Server 2008 ή είναι νέες στον SQL Server υλοποιούν την απομόνωση των δεσμεύσεων ανάγνωσης χρησιμοποιώντας τη διαχείριση εκδόσεων γραμμών, καθορίζοντας το επίπεδο απομόνωσης συναλλαγών για τις δεσμεύσεις ανάγνωσης όταν η επιλογή READ_COMMITTED_SNAPSHOT βάση δεδομένων είναι ενεργοποιημένη. Όλες οι αναγνώσεις θα εξετάσουν την έκδοση γραμμής που υποβλήθηκε κατά την έναρξη της δήλωσης. Αυτό θα παρέχει ένα στιγμιότυπο σε επίπεδο δήλωσης των δεδομένων.

Οι εφαρμογές που έχουν γραφτεί για τον SQL Server θα εφαρμόσουν την απομόνωση στιγμιότυπου καθορίζοντας το επίπεδο απομόνωσης συναλλαγής στιγμιότυπου όταν η επιλογή βάσης δεδομένων ALLOW_SNAPSHOT_ISOLATION είναι ενεργοποιημένη. Όλες οι αναγνώσεις σε μια συναλλαγή στιγμιότυπου θα εξετάσουν την έκδοση της γραμμής που δεσμεύτηκε κατά την έναρξη της συναλλαγής. Αυτό θα παρέχει ένα στιγμιότυπο των δεδομένων σε επίπεδο συναλλαγής.

Για συναλλαγές που χρησιμοποιούν επίπεδα απομόνωσης βάσει γραμμών, οι αναγνώσεις δεν ζητούν κοινόχρηστα κλειδώματα στα δεδομένα. Αυτό σημαίνει ότι οι αναγνώστες που χρησιμοποιούν τη διαχείριση εκδόσεων σειρών δεν εμποδίζουν άλλους αναγνώστες ή συγγραφείς να έχουν πρόσβαση στα ίδια δεδομένα. Ομοίως, ο συγγραφέας δεν μπαίνει εμπόδιο στον αναγνώστη. Ωστόσο, οι συγγραφείς εμποδίζουν ο ένας τον άλλον (ακόμα και όταν τρέχουν σε επίπεδο απομόνωσης με βάση την έκδοση σειρών). Δύο λειτουργίες εγγραφής δεν μπορούν να τροποποιήσουν τα ίδια δεδομένα ταυτόχρονα.

Η δυνατότητα "Απομόνωση στιγμιότυπου" επεκτείνει το πλαίσιο κλειδώματος στον SQL Server 2008, επιτρέποντας στις εφαρμογές να προβάλλουν τιμές πριν από την πραγματοποίηση τροποποιήσεων δεδομένων. Αυτό αποτρέπει το κλείδωμα της εφαρμογής ενώ εξακολουθεί να παρέχει πραγματικά υποβληθέντα δεδομένα. Το Read Committed Snapshot του SQL Server 2008 απαιτεί την ενεργοποίηση ενός διαχειριστή βάσης δεδομένων, επιτρέποντας την ανάγνωση των δεδομένων από συναλλαγές μόνο για ανάγνωση. Επομένως, ο έλεγχος ταυτοχρονισμού των συναλλαγών μόνο για ανάγνωση από το SI είναι πολύ καλός, αλλά δεν είναι σαφές εάν αυτό ισχύει για τις συναλλαγές ενημέρωσης. Είναι πιο δυσμενές για τις μακροχρόνιες συναλλαγές ενημέρωσης να ανταγωνίζονται τις βραχυπρόθεσμες συναλλαγές υψηλού επιπέδου. Εάν μια συναλλαγή σε βάσεις δεδομένων επιχειρήσει να χρησιμοποιήσει το πρότυπο απομόνωσης στιγμιότυπου (SI), αντί για όλες τις βάσεις δεδομένων που έχουν οριστεί, η συναλλαγή αποτυγχάνει. Αυτό αναμφίβολα δημιουργεί ορισμένα εμπόδια στην επεκτασιμότητα. Φαίνεται ότι η Microsoft έχει ακόμη πολύ δρόμο να διανύσει για να πετύχει το δικό της SI που είναι ισχυρότερο από την προδιαγραφή SQL 92.

Πριν από οποιαδήποτε τροποποίηση, δημιουργήστε ένα αντίγραφο της προηγούμενης έκδοσης και όλες οι επόμενες λειτουργίες ανάγνωσης θα διαβάσουν την αντιγραμμένη έκδοση και η τροποποίηση θα δημιουργήσει μια νέα έκδοση. Με αυτόν τον τρόπο,Οι λειτουργίες ανάγνωσης και εγγραφής δεν μπλοκάρουν η μία την άλλη. Το πλεονέκτημα της χρήσης αυτού του μηχανισμού έκδοσης γραμμής είναι ότι ο ταυτοχρονισμός του προγράμματος είναι σχετικά υψηλός, αλλά το μειονέκτημα είναι ότι παρόλο που ο χρήστης δεν διαβάζει βρώμικα δεδομένα, μπορεί να είναι μια τιμή δεδομένων που τροποποιείται και πρόκειται να λήξει. Εάν τροποποιήσετε τα δεδομένα με βάση αυτήν την τιμή που έχει λήξει, θα προκληθεί λογικό σφάλμα

Εντολές SQL:


Σύνδεσμοι αναφοράς:

Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.





Προηγούμενος:Το Elasticsearch (ES) αναπαράγει τον δείκτη κλώνων
Επόμενος:Εκμάθηση cubase10.5
Δημοσιεύτηκε στις 29/1/2021 9:13:40 π.μ. |
xuexi
Δημοσιεύτηκε στις 15/7/2021 8:37:16 μ.μ. |
Το θέλω, το θέλω, το θέλω, το θέλωθέλω
Δημοσιεύτηκε στις 12/12/2021 1:22:12 π.μ. |
Το θέλω, το θέλω, το θέλω
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com