Ο SQL Server Archiδομή (Εξήγηση)

⚡ Έξυπνη Σύνοψη

Ο SQL Server ArchiΗ δομή ακολουθεί ένα μοντέλο πελάτη-διακομιστή που οργανώνεται σε τρία βασικά επίπεδα: Επίπεδο πρωτοκόλλου για την επικοινωνία δικτύου, Σχεσιακή μηχανή για την επεξεργασία ερωτημάτων και Μηχανή αποθήκευσης για τη διαχείριση και ανάκτηση δεδομένων.

  • Επιλογή πρωτοκόλλου: Επιλέξτε Κοινόχρηστη μνήμη για τοπικές συνδέσεις, TCP/IP για απομακρυσμένη πρόσβαση ή Επώνυμους αγωγούς για περιβάλλοντα LAN με βάση την τοπολογία του δικτύου σας.
  • ???? Επεξεργασία ερωτήματος: Η Σχεσιακή Μηχανή αναλύει τη σύνταξη, βελτιστοποιεί τα σχέδια εκτέλεσης μέσω πολυφασικής ανάλυσης κόστους και αναθέτει την ανάκτηση δεδομένων στη Μηχανή Αποθήκευσης.
  • 📦 Διαχείριση αποθήκευσης: Τα αρχεία δεδομένων χρησιμοποιούν σελίδες 8KB ομαδοποιημένες σε εκτάσεις, με Buffer Ο διαχειριστής χειρίζεται την προσωρινή αποθήκευση και ο διαχειριστής συναλλαγών διασφαλίζει τη συμμόρφωση με το ACID.
  • 🔒 Βελτιστοποίηση απόδοσης: Buffer Η προσωρινή μνήμη μειώνει την είσοδο/έξοδο εξυπηρετώντας δεδομένα που προσπελαύνονται συχνά από τη μνήμη, ενώ η προσωρινή μνήμη Plan αποθηκεύει σχέδια εκτέλεσης για επαναχρησιμοποίηση ερωτημάτων.
  • Συναλλαγή Integrity: Καταγραφή εκ των προτέρων εγγραφής και αργοπορία Writer Οι διεργασίες συνεργάζονται για να διασφαλίσουν την ανθεκτικότητα των δεδομένων και την αποτελεσματική διαχείριση της μνήμης.
  • 📋 Ροή δεδομένων: Κάθε ερώτημα περνάει από κωδικοποίηση πακέτων TDS, ανάλυση CMD, βελτιστοποίηση, εκτέλεση και αλληλεπίδραση επιπέδου αποθήκευσης πριν τα αποτελέσματα επιστρέψουν στον πελάτη.

Ο SQL Server Archiδομή

Ο MS SQL Server είναι μια αρχιτεκτονική client-server. Η διεργασία του MS SQL Server ξεκινά με την εφαρμογή-πελάτης να στέλνει ένα αίτημα. Ο SQL Server δέχεται, επεξεργάζεται και απαντά στο αίτημα με επεξεργασμένα δεδομένα. Ας συζητήσουμε λεπτομερώς ολόκληρη την αρχιτεκτονική που φαίνεται παρακάτω:

Όπως απεικονίζεται στο παρακάτω διάγραμμα, υπάρχουν τρία κύρια στοιχεία στον SQL Server Archiδομή:

  1. Επίπεδο πρωτοκόλλου
  2. Σχεσιακός κινητήρας
  3. Μηχανή αποθήκευσης

Ο SQL Server ArchiΔιάγραμμα κατασκευής που δείχνει τα στοιχεία του επιπέδου πρωτοκόλλου, της σχεσιακής μηχανής και της μηχανής αποθήκευσης

Επίπεδο πρωτοκόλλου – SNI

Το Επίπεδο Πρωτοκόλλου SQL Server, γνωστό και ως Διασύνδεση Δικτύου Διακομιστή (SNI), υποστηρίζει τρεις τύπους αρχιτεκτονικής πελάτη-διακομιστή. Κάθε πρωτόκολλο εξυπηρετεί ένα διαφορετικό σενάριο δικτύου. Η κατανόηση αυτών των πρωτοκόλλων είναι απαραίτητη πριν από την εξερεύνηση του τρόπου με τον οποίο τα ερωτήματα υποβάλλονται σε εσωτερική επεξεργασία.

Κοινή μνήμη

Σκεφτείτε ένα σενάριο συνομιλίας νωρίς το πρωί. Ο Τομ και η μαμά του βρίσκονται στο ίδιο λογικό μέρος, στο σπίτι τους. Ο Τομ ζητάει καφέ και η μαμά τον σερβίρει απευθείας. Ομοίως, ο SQL Server παρέχει το πρωτόκολλο Κοινόχρηστης Μνήμης όταν ο πελάτης και ο διακομιστής εκτελούνται στον ίδιο υπολογιστή. Και οι δύο επικοινωνούν μέσω κοινόχρηστης μνήμης χωρίς καμία επιβάρυνση δικτύου.

Διάγραμμα πρωτοκόλλου κοινόχρηστης μνήμης που δείχνει τον υπολογιστή-πελάτη και τον SQL Server στον ίδιο υπολογιστή

Αναλογία: Ο Τομ αντιστοιχίζεται στον Πελάτη, η Μαμά αντιστοιχίζεται στον SQL Server, η Αρχική σελίδα αντιστοιχίζεται στο Μηχανή και η λεκτική επικοινωνία αντιστοιχίζεται στο πρωτόκολλο Κοινόχρηστης Μνήμης.

Χάρτης αναλογίας πρωτοκόλλου κοινόχρηστης μνήμηςping πελάτης στον Τομ και SQL Server στη μαμά

Σημειώσεις διαμόρφωσης: In SQL Management Studio, η επιλογή "Όνομα διακομιστή" για μια τοπική σύνδεση μπορεί να είναι ".", "localhost", "127.0.0.1" ή "Machine\Instance".

TCP / IP

Τώρα, σκεφτείτε ότι ο Τομ θέλει καφέ από ένα κατάστημα που βρίσκεται 10 χλμ. μακριά. Ο Τομ είναι στο σπίτι και η καφετέρια βρίσκεται σε μια πολυσύχναστη αγορά. Επικοινωνούν μέσω ενός δικτύου κινητής τηλεφωνίας. Ομοίως, ο SQL Server παρέχει το Πρωτόκολλο TCP / IP όταν ο υπολογιστής-πελάτης και ο SQL Server βρίσκονται σε ξεχωριστούς υπολογιστές συνδεδεμένους μέσω δικτύου.

Διάγραμμα πρωτοκόλλου TCP/IP που δείχνει τον υπολογιστή-πελάτη και τον SQL Server σε απομακρυσμένους υπολογιστές

Αναλογία: Ο Τομ αντιστοιχίζεται στον Πελάτη, η καφετέρια αντιστοιχίζεται στον SQL Server, η οικία και η αγορά αντιστοιχίζονται σε απομακρυσμένες τοποθεσίες και το δίκτυο κινητής τηλεφωνίας αντιστοιχίζεται στο πρωτόκολλο TCP/IP.

Χάρτης αναλογίας πρωτοκόλλου TCP/IPping απομακρυσμένη επικοινωνία πελάτη-διακομιστή

Σημειώσεις διαμόρφωσης: Στο SQL Management Studio, η επιλογή "Όνομα διακομιστή" για μια σύνδεση TCP/IP πρέπει να είναι "Μηχανή\Ένδειξη του διακομιστή". Ο SQL Server χρησιμοποιεί τη θύρα 1433 από προεπιλογή για συνδέσεις TCP/IP.

Με όνομα Pipes

Τέλος, ο Τομ θέλει πράσινο τσάι από τη γειτόνισσά του, τη Σιέρα. Βρίσκονται στην ίδια φυσική τοποθεσία, όντας γείτονες, και επικοινωνούν μέσω ενός ενδοδικτύου. Ομοίως, ο SQL Server παρέχει το πρωτόκολλο Named Pipe όταν ο πελάτης και ο διακομιστής συνδέονται μέσω ενός Τοπικού Δικτύου (LAN).

Διάγραμμα πρωτοκόλλου Named Pipes για συνδέσεις SQL Server που βασίζονται σε LAN

Αναλογία: Ο Tom αντιστοιχίζεται στον Client, η Sierra αντιστοιχίζεται στον SQL Server, οι γείτονες αντιστοιχίζονται στο LAN και οι ενδοδικτύοι αντιστοιχίζονται στο πρωτόκολλο Named Pipe.

Σημειώσεις διαμόρφωσης: Οι επώνυμες σωληνώσεις είναι απενεργοποιημένες από προεπιλογή και πρέπει να ενεργοποιηθούν μέσω του SQL Configuration Manager.

Τι είναι το TDS;

Τώρα που οι τρεις τύποι αρχιτεκτονικής πελάτη-διακομιστή είναι σαφείς, ακολουθεί μια ματιά στο TDS:

  • Το TDS σημαίνει Tabular Data Stream.
  • Και τα τρία πρωτόκολλα χρησιμοποιούν πακέτα TDS.
  • Το TDS είναι ενθυλακωμένο σε πακέτα δικτύου, επιτρέποντας τη μεταφορά δεδομένων από τον υπολογιστή-πελάτη στον υπολογιστή-διακομιστή.
  • Το TDS αναπτύχθηκε αρχικά από την Sybase και τώρα ανήκει στην Microsoft.

Ο παρακάτω πίνακας συγκρίνει τα τρία πρωτόκολλα σύνδεσης του SQL Server:

Χαρακτηριστικό Κοινή μνήμη TCP / IP Με όνομα Pipes
Πεδίο εφαρμογής δικτύου Ίδιο μηχάνημα Απομακρυσμένο (WAN/Διαδίκτυο) Μόνο LAN
Προεπιλεγμένη θύρα Δ/Ε 1433 445
💪 Βελτίωση της απόδοσης στην άσκηση Ταχύτερο (χωρίς επιβάρυνση δικτύου) Καλό (βελτιστοποιημένο για WAN) Καλό (βελτιστοποιημένο για LAN)
Ενεργοποιημένο από προεπιλογή Ναι Ναι Οχι
καλυτερα Use Case Τοπική ανάπτυξη και δοκιμές Απομακρυσμένη πρόσβαση στην παραγωγή Αξιόπιστα περιβάλλοντα LAN

Με το Επίπεδο Πρωτοκόλλου να χειρίζεται την επικοινωνία δικτύου, το επόμενο βήμα στην αρχιτεκτονική του SQL Server είναι η επεξεργασία του ίδιου του ερωτήματος. Εδώ αναλαμβάνει η Σχεσιακή Μηχανή.

Σχεσιακός κινητήρας

Η Σχεσιακή Μηχανή είναι επίσης γνωστή ως Επεξεργαστής Ερωτημάτων. Περιέχει τα στοιχεία του SQL Server που καθορίζουν τι πρέπει να κάνει ένα ερώτημα και πώς μπορεί να εκτελεστεί με τον πιο αποτελεσματικό τρόπο. Είναι υπεύθυνη για την εκτέλεση ερωτημάτων χρηστών ζητώντας δεδομένα από τη Μηχανή Αποθήκευσης και επεξεργάζοντας τα αποτελέσματα που επιστρέφονται.

Όπως απεικονίζεται στο αρχιτεκτονικό διάγραμμα, υπάρχουν τρία κύρια στοιχεία της Σχεσιακής Μηχανής:

CMD Parser

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

Στοιχείο CMD Parser που εμφανίζει συντακτικό έλεγχο, σημασιολογικό έλεγχο και δημιουργία δέντρου ερωτημάτων

Συντακτικός έλεγχος: Όπως κάθε άλλη γλώσσα προγραμματισμού, ο SQL Server έχει ένα προκαθορισμένο σύνολο λέξεων-κλειδιών και γραμματικών κανόνων. Οι λέξεις-κλειδιά SELECT, INSERT, UPDATE και πολλές άλλες ανήκουν στη λίστα προκαθορισμένων λέξεων-κλειδιών. Ο αναλυτής CMD επαληθεύει ότι η εισαγωγή ακολουθεί αυτούς τους κανόνες. Εάν η εισαγωγή του χρήστη αποκλίνει από την αναμενόμενη σύνταξη, ο αναλυτής επιστρέφει ένα σφάλμα.

Παράδειγμα: Φανταστείτε έναν Ρώσο που μπαίνει σε ένα ιαπωνικό εστιατόριο και παραγγέλνει στα ρωσικά. Ο σερβιτόρος καταλαβαίνει μόνο Ιαπωνικά και δεν μπορεί να επεξεργαστεί την παραγγελία. Ομοίως, εάν ένας χρήστης πληκτρολογήσει "SELECT" αντί για "SELECT", ο αναλυτής CMD επιστρέφει σφάλμα επειδή δεν αναγνωρίζει τη λέξη-κλειδί.

Σημασιολογικός έλεγχος: Αυτό εκτελείται από τον Κανονικοποιητή. Ελέγχει εάν τα ονόματα στηλών, τα ονόματα πινάκων και άλλα αντικείμενα που υποβάλλονται σε ερώτημα υπάρχουν πράγματι στο σχήμα. Εάν υπάρχουν, ο Κανονικοποιητής τα συνδέει με το ερώτημα. Αυτή η διαδικασία είναι επίσης γνωστή ως Σύνδεση. Όταν τα ερωτήματα χρήστη περιέχουν μια ΠΡΟΒΟΛΗ, ο Κανονικοποιητής την αντικαθιστά με τον εσωτερικά αποθηκευμένο ορισμό προβολής.

Παράδειγμα: Τρέξιμο SELECT * from USER_ID θα προκαλούσε την εμφάνιση σφάλματος από τον αναλυτή κατά τον σημασιολογικό έλεγχο, εάν ο πίνακας USER_ID δεν υπάρχει στη βάση δεδομένων.

Δημιουργία δέντρου ερωτημάτων: Αυτό το βήμα δημιουργεί διαφορετικά δέντρα εκτέλεσης που αντιπροσωπεύουν τους διάφορους τρόπους με τους οποίους μπορεί να εκτελεστεί ένα ερώτημα. Όλα τα δέντρα παράγουν το ίδιο επιθυμητό αποτέλεσμα.

Optimizer

Το Optimizer δημιουργεί ένα σχέδιο εκτέλεσης για το ερώτημα του χρήστη. Αυτό το σχέδιο καθορίζει τον τρόπο εκτέλεσης του ερωτήματος. Δεν είναι όλα τα ερωτήματα βελτιστοποιημένα. Η βελτιστοποίηση ισχύει για εντολές DML (Data Modification Language) όπως SELECT, INSERT, DELETE και UPDATE. Οι εντολές DDL όπως CREATE και ALTER δεν είναι βελτιστοποιημένες, αλλά μεταγλωττίζονται σε μια εσωτερική φόρμα.

Ροή εργασίας SQL Server Optimizer που εμφανίζει τρεις φάσεις βελτιστοποίησης

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

Παράδειγμα: Φανταστείτε ότι θέλετε να ανοίξετε έναν ηλεκτρονικό τραπεζικό λογαριασμό. Μία τράπεζα χρειάζεται το πολύ 2 ημέρες. Έχετε επίσης μια λίστα με 20 άλλες τράπεζες που μπορεί να χρειαστούν ή όχι λιγότερο χρόνο. Η αναζήτηση και στις 20 τράπεζες μπορεί να μην βρει μια πιο γρήγορη επιλογή και η ίδια η αναζήτηση κοστίζει χρόνο. Θα ήταν καλύτερο να επιλέξετε την πρώτη τράπεζα. Ομοίως, το SQL Optimizer χρησιμοποιεί εξαντλητικούς και ευρετικούς αλγόριθμους για να ελαχιστοποιήσει τον χρόνο εκτέλεσης του ερωτήματος.

Το Optimizer αναζητά σε τρία στάδια:

Φάση 0: Αναζήτηση για Σχεδιασμό Ασήμαντου Σχεδίου

Αυτό είναι το στάδιο προ-βελτιστοποίησης. Για ορισμένα ερωτήματα, υπάρχει μόνο ένα πρακτικό σχέδιο, γνωστό ως τριπλό σχέδιο. Δεν χρειάζεται περαιτέρω αναζήτηση, επειδή οποιαδήποτε πρόσθετη αναζήτηση θα έβρισκε το ίδιο σχέδιο εκτέλεσης με επιπλέον κόστος.

Φάση 1: Αναζήτηση σχεδίων επεξεργασίας συναλλαγών

Αυτό περιλαμβάνει την αναζήτηση τόσο απλών όσο και σύνθετων σχεδίων. Η αναζήτηση απλών σχεδίων χρησιμοποιεί στατιστική ανάλυση δεδομένων στηλών και ευρετηρίων, συνήθως περιορισμένη σε ένα ευρετήριο ανά πίνακα. Εάν δεν βρεθεί απλό σχέδιο, εκτελείται μια πιο σύνθετη αναζήτηση που περιλαμβάνει πολλαπλά ευρετήρια ανά πίνακα.

Φάση 2: Παράλληλη Επεξεργασία και Βελτιστοποίηση

Εάν οι προηγούμενες στρατηγικές δεν παράγουν ένα επαρκές σχέδιο, το Optimizer αναζητά δυνατότητες παράλληλης επεξεργασίας με βάση τις δυνατότητες επεξεργασίας του μηχανήματος. Εάν η παράλληλη επεξεργασία δεν είναι δυνατή, ξεκινά μια τελική φάση βελτιστοποίησης που χρησιμοποιεί όλες τις υπόλοιπες επιλογές για να βρει το καλύτερο δυνατό σχέδιο εκτέλεσης.

Εκτελεστής ερωτήματος

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

Εκτελεστής ερωτήματος που διαβιβάζει σχέδιο εκτέλεσης στη μέθοδο πρόσβασης στη μηχανή αποθήκευσης

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

Μηχανή αποθήκευσης

Η Μηχανή Αποθήκευσης είναι υπεύθυνη για την αποθήκευση δεδομένων σε ένα σύστημα αποθήκευσης, όπως ένας δίσκος ή ένα SAN, και την ανάκτησή τους όταν χρειάζεται. Πριν εξετάσετε τα στοιχεία της Μηχανής Αποθήκευσης, είναι σημαντικό να κατανοήσετε τον τρόπο με τον οποίο αποθηκεύονται φυσικά τα δεδομένα.

Αρχιτεκτονική μηχανής αποθήκευσης που δείχνει τη μέθοδο πρόσβασης, Buffer Διευθυντής και Διευθυντής Συναλλαγών

Αρχεία δεδομένων και επεκτάσεις

Τα αρχεία δεδομένων αποθηκεύουν φυσικά δεδομένα με τη μορφή σελίδων δεδομένων, με κάθε σελίδα να έχει μέγεθος 8KB. Αυτή είναι η μικρότερη μονάδα αποθήκευσης στο Ο SQL ServerΟι σελίδες δεδομένων ομαδοποιούνται λογικά σε επεκτάσεις (extents). Κανένα αντικείμενο δεν αντιστοιχίζεται απευθείας σε μια μεμονωμένη σελίδα. Αντίθετα, η συντήρηση γίνεται μέσω επεκτάσεων (extents). Κάθε σελίδα έχει μια κεφαλίδα σελίδας (96 byte) που περιέχει μεταδεδομένα όπως τύπο σελίδας, αριθμό σελίδας, χρησιμοποιημένο χώρο, ελεύθερο χώρο και δείκτες προς την επόμενη και την προηγούμενη σελίδα.

Τύποι αρχείων

Τύποι αρχείων SQL Server που εμφανίζουν αρχεία πρωτεύοντος, δευτερεύοντος και αρχείου καταγραφής

Κύριο αρχείο: Κάθε βάση δεδομένων περιέχει ένα κύριο αρχείο. Αποθηκεύει όλα τα σημαντικά δεδομένα που σχετίζονται με πίνακες, προβολές, εναύσματα και άλλα αντικείμενα. Η επέκταση είναι συνήθως .mdf, αλλά μπορεί να είναι οποιαδήποτε επέκταση.

Δευτερεύον αρχείο: Μια βάση δεδομένων μπορεί να περιέχει ή να μην περιέχει πολλά δευτερεύοντα αρχεία. Αυτά είναι προαιρετικά και περιέχουν δεδομένα ειδικά για τον χρήστη. Η επέκταση είναι συνήθως .ndf, αλλά μπορεί να είναι οποιαδήποτε επέκταση.

Αρχείο καταγραφής: Γνωστά και ως Αρχεία Καταγραφής Εκ των Προτέρων Εγγραφής. Η επέκταση είναι .ldf. Τα αρχεία καταγραφής χρησιμοποιούνται για τη διαχείριση συναλλαγών, την ανάκτηση από ανεπιθύμητες παρουσίες και την εκτέλεση επαναφοράς μη δεσμευμένων συναλλαγών.

Η Μηχανή Αποθήκευσης έχει τρία κύρια στοιχεία. Κάθε ένα παίζει έναν συγκεκριμένο ρόλο στη διαχείριση της πρόσβασης και της ακεραιότητας των δεδομένων.

Μέθοδος πρόσβασης

Η μέθοδος πρόσβασης λειτουργεί ως διεπαφή μεταξύ του Εκτελεστή ερωτήματος και του Buffer Αρχεία καταγραφής συναλλαγών ή διαχείρισης. Δεν εκτελεί το ίδιο το πρόγραμμα, αλλά καθορίζει τον τύπο του ερωτήματος:

  • Εάν το ερώτημα είναι ένα Δήλωση SELECT (DML), διαβιβάζεται στον Buffer Διευθυντή για περαιτέρω επεξεργασία.
  • Εάν το ερώτημα είναι ένα Δήλωση που δεν είναι SELECT (DDL και DML), διαβιβάζεται στον Διαχειριστή Συναλλαγών. Αυτό περιλαμβάνει κυρίως τις εντολές UPDATE, INSERT και DELETE.

Μέθοδος πρόσβασης που δρομολογεί ερωτήματα SELECT σε Buffer Διαχειριστής και μη-SELECT σε Διαχειριστής Συναλλαγών

Buffer Manager

The Buffer Ο διαχειριστής διαχειρίζεται βασικές λειτουργίες για την προσωρινή μνήμη Plan, την ανάλυση δεδομένων και τον χειρισμό μη προσβάσιμων σελίδων.

Buffer Αρχιτεκτονική διαχειριστή που εμφανίζει την προσωρινή μνήμη Plan, Buffer Αλληλεπίδραση προσωρινής μνήμης και αποθήκευσης δεδομένων

Προσωρινή μνήμη σχεδίου

Υπάρχον σχέδιο ερωτημάτων: The Buffer Ο διαχειριστής ελέγχει εάν το σχέδιο εκτέλεσης υπάρχει στην αποθηκευμένη προσωρινή μνήμη σχεδίων. Εάν υπάρχει, το σχέδιο ερωτήματος που είναι αποθηκευμένο στην προσωρινή μνήμη και η σχετική προσωρινή μνήμη δεδομένων χρησιμοποιούνται απευθείας.

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

Ανάλυση δεδομένων: Buffer Προσωρινή μνήμη και αποθήκευση δεδομένων

The Buffer Ο διαχειριστής παρέχει πρόσβαση στα απαιτούμενα δεδομένα. Δύο προσεγγίσεις είναι δυνατές ανάλογα με το εάν υπάρχουν δεδομένα στην προσωρινή μνήμη:

Buffer Cache – Ήπια ανάλυση

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

Buffer Ροή μαλακής ανάλυσης προσωρινής μνήμης όπου τα δεδομένα ανακτώνται από την προσωρινή μνήμη

Αποθήκευση Δεδομένων – Σκληρή Ανάλυση

Εάν δεν υπάρχουν δεδομένα στο Buffer Στην προσωρινή μνήμη, τα απαιτούμενα δεδομένα αναζητούνται στον χώρο αποθήκευσης δεδομένων στο δίσκο. Στη συνέχεια, τα δεδομένα αποθηκεύονται επίσης στην προσωρινή μνήμη δεδομένων για μελλοντική χρήση.

Ροή σκληρής ανάλυσης όπου τα δεδομένα ανακτώνται από τον χώρο αποθήκευσης δίσκου και αποθηκεύονται στην προσωρινή μνήμη

Υπεύθυνος Συναλλαγών

Ο Διαχειριστής Συναλλαγών καλείται όταν η Μέθοδος Πρόσβασης προσδιορίσει ότι ένα ερώτημα δεν είναι μια πρόταση SELECT. Εξασφαλίζει τη συνέπεια και την ανθεκτικότητα των δεδομένων μέσω διαφόρων υποστοιχείων:

Διαχειριστής συναλλαγών που εμφανίζει τον Διαχειριστή καταγραφής, τον Διαχειριστή κλειδώματος και τη ροή διεργασίας εκτέλεσης

Διαχειριστής καταγραφής

Ο Διαχειριστής Καταγραφής διατηρεί track όλων των ενημερώσεων που εκτελούνται στο σύστημα μέσω αρχείων καταγραφής που είναι αποθηκευμένα στα Αρχεία Καταγραφής Συναλλαγών. Κάθε καταχώρηση αρχείου καταγραφής περιέχει έναν Αριθμό Ακολουθίας Καταγραφής μαζί με το Αναγνωριστικό Συναλλαγής και την Εγγραφή Τροποποίησης Δεδομένων. Αυτός ο μηχανισμός tracks δεσμευμένες και ανακληθείσες συναλλαγές.

Lock Manager

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

Διαδικασία Εκτέλεσης

Η διαδικασία εκτέλεσης ακολουθεί τα εξής βήματα:

  1. Ο Διαχειριστής Καταγραφής ξεκινά την καταγραφή και ο Διαχειριστής Κλειδώματος κλειδώνει τα σχετικά δεδομένα.
  2. Ένα αντίγραφο των δεδομένων διατηρείται στο Buffer Cache.
  3. Ένα αντίγραφο των δεδομένων που πρόκειται να ενημερωθούν διατηρείται στο Αρχείο Καταγραφής Bufferκαι όλα τα συμβάντα ενημερώνουν δεδομένα στα Δεδομένα Buffer.
  4. Οι σελίδες που αποθηκεύουν τροποποιημένα δεδομένα είναι γνωστές ως Βρώμικες σελίδες.

Σημείο Ελέγχου και Καταγραφή Εκ των Προτέρων Εγγραφής

Η διαδικασία σημείου ελέγχου εκτελείται περίπου μία φορά ανά λεπτό και επισημαίνει όλες τις μη προσβάσιμες σελίδες για εγγραφή στο δίσκο. Ωστόσο, η σελίδα μεταφέρεται πρώτα στη σελίδα δεδομένων του αρχείου καταγραφής από το Buffer Καταγραφή. Αυτός ο μηχανισμός είναι γνωστός ως Καταγραφή Εκ των Προτέρων Εγγραφής. Οι μη καθαρές σελίδες παραμένουν στην προσωρινή μνήμη ακόμα και μετά την εγγραφή τους στο δίσκο.

Τεμπέλης Writer

Όταν ο SQL Server παρατηρεί μεγάλο φόρτο εργασίας και απαιτείται προσωρινή μνήμη για νέες συναλλαγές, απελευθερώνει τις βρώμικες σελίδες από την προσωρινή μνήμη. Writer Λειτουργεί με τον αλγόριθμο LRU (Least Recently Used - Λιγότερο Πρόσφατα Χρησιμοποιημένο) για τον καθαρισμό σελίδων από την περιοχή buffer στον δίσκο.

Πώς ο SQL Server επεξεργάζεται ένα ερώτημα από άκρο σε άκρο

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

The Επίπεδο πρωτοκόλλου λαμβάνει το αίτημα μέσω Κοινόχρηστης Μνήμης, TCP/IP ή Επώνυμων Διαύλων και το τυλίγει σε ένα πακέτο TDS. Σχεσιακός κινητήρας Στη συνέχεια, αναλαμβάνει: ο αναλυτής CMD ελέγχει τη σύνταξη και τη σημασιολογία, ο βελτιστοποιητής δημιουργεί το φθηνότερο σχέδιο εκτέλεσης και ο εκτελεστής ερωτημάτων ξεκινά την ανάκτηση δεδομένων.

Ο Εκτελεστής Ερωτήματος καλεί το Μηχανή αποθήκευσης Μέθοδος Πρόσβασης, η οποία δρομολογεί ερωτήματα SELECT προς Buffer Ερωτήματα διαχειριστή και τροποποίησης προς τον διαχειριστή συναλλαγών. Buffer Ο διαχειριστής ελέγχει την προσωρινή μνήμη του προγράμματος και Buffer Πρώτα αποθηκεύστε στην προσωρινή μνήμη (soft parsing). Εάν τα δεδομένα δεν αποθηκευτούν στην προσωρινή μνήμη, εκτελεί ανάγνωση δίσκου (hard parsing). Για τις λειτουργίες εγγραφής, ο Διαχειριστής Συναλλαγών συντονίζει τον Διαχειριστή Καταγραφής, τον Διαχειριστή Κλειδώματος και τη διαδικασία σημείου ελέγχου για να διασφαλίσει τη συμμόρφωση με το ACID.

Μόλις η Μηχανή Αποθήκευσης επιστρέψει τα ζητούμενα δεδομένα, η Σχεσιακή Μηχανή μορφοποιεί το σύνολο αποτελεσμάτων και το Επίπεδο Πρωτοκόλλου το παραδίδει πίσω στην εφαρμογή-πελάτη μέσω του ίδιου πρωτοκόλλου TDS.

Πώς να επιλέξετε το σωστό πρωτόκολλο για συνδέσεις SQL Server

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

Χρήση κοινόχρηστης μνήμης όταν η εφαρμογή-πελάτης εκτελείται στον ίδιο υπολογιστή με τον SQL Server. Αυτή είναι η ταχύτερη επιλογή επειδή εξαλείφει όλη την επιβάρυνση δικτύου. Είναι ιδανική για τοπική ανάπτυξη, δοκιμές και αναπτύξεις σε έναν υπολογιστή.

Χρήση TCP/IP όταν ο υπολογιστής-πελάτης και ο διακομιστής βρίσκονται σε διαφορετικά μηχανήματα συνδεδεμένα μέσω WAN ή διαδικτύου. Αυτό είναι το πιο συχνά χρησιμοποιούμενο πρωτόκολλο σε περιβάλλοντα παραγωγής. Ο SQL Server ακούει στη θύρα 1433 από προεπιλογή και αυτό το πρωτόκολλο υποστηρίζει κρυπτογραφημένες συνδέσεις μέσω TLS.

Χρήση επώνυμων σωλήνων όταν ο υπολογιστής-πελάτης και ο διακομιστής βρίσκονται στο ίδιο αξιόπιστο τοπικό δίκτυο (LAN) και η απόδοση σε εσωτερικά δίκτυα αποτελεί προτεραιότητα. Οι επώνυμοι αγωγοί είναι απενεργοποιημένοι από προεπιλογή και πρέπει να ενεργοποιηθούν μέσω του SQL Server Configuration Manager. Είναι λιγότερο συνηθισμένο στις σύγχρονες αναπτύξεις, αλλά παραμένει χρήσιμο για παλαιότερες εφαρμογές intranet.

Συχνές Ερωτήσεις

Η αρχιτεκτονική του SQL Server αποτελείται από τρία επίπεδα: το Επίπεδο Πρωτοκόλλου (διαχειρίζεται την επικοινωνία δικτύου μέσω Κοινόχρηστης Μνήμης, TCP/IP ή Επώνυμων Διαύλων), τη Σχεσιακή Μηχανή (επεξεργάζεται ερωτήματα) και τη Μηχανή Αποθήκευσης (διαχειρίζεται την αποθήκευση και την ανάκτηση δεδομένων).

Το TDS (Tabular Data Stream - Ροή Δεδομένων σε Πίνακα) είναι ένα πρωτόκολλο που χρησιμοποιείται και από τις τρεις μεθόδους σύνδεσης του SQL Server. Ενσωματώνει δεδομένα σε πακέτα δικτύου για μεταφορά μεταξύ υπολογιστή-πελάτη και διακομιστή. Το TDS αναπτύχθηκε αρχικά από τη Sybase.

Η μαλακή ανάλυση ανακτά δεδομένα από το Buffer Αποθήκευση προσωρινής μνήμης (cache) στη μνήμη, με αποτέλεσμα ταχύτερη εκτέλεση. Η σκληρή ανάλυση (hard parsing) συμβαίνει όταν τα δεδομένα δεν αποθηκεύονται προσωρινά και πρέπει να διαβαστούν από τον χώρο αποθήκευσης του δίσκου, απαιτώντας περισσότερες λειτουργίες εισόδου/εξόδου.

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

Οι βρώμικες σελίδες είναι σελίδες δεδομένων στο Buffer Μνήμη cache που έχει τροποποιηθεί αλλά δεν έχει εγγραφεί ακόμη στο δίσκο. Η διαδικασία ελέγχου και η Lazy Writer χειρίζεστε την περιοδική απομάκρυνση βρώμικων σελίδων στον χώρο αποθήκευσης του δίσκου.

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

Ναι. Τα εργαλεία διαχείρισης βάσεων δεδομένων με τεχνητή νοημοσύνη μπορούν να αναλύσουν μοτίβα ερωτημάτων, να προτείνουν βελτιστοποιήσεις ευρετηρίων, να προβλέψουν σημεία συμφόρησης πόρων και να αυτοματοποιήσουν εργασίες ρύθμισης της απόδοσης που παραδοσιακά απαιτούν χειροκίνητη παρέμβαση DBA.

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

Συνοψίστε αυτήν την ανάρτηση με: