Επεξήγηση αρχιτεκτονικής διακομιστή SQL: Named Pipes, Optimizer, Buffer Manager

Πίνακας περιεχομένων:

Anonim

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

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

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

Ας συζητήσουμε λεπτομερώς για τις τρεις παραπάνω βασικές ενότητες. Σε αυτό το σεμινάριο, θα μάθετε.

  • Επίπεδο πρωτοκόλλου - SNI
    • Κοινή μνήμη
    • TCP / IP
    • Ονομασμένοι σωλήνες
    • Τι είναι το TDS;
  • Σχεσιακή μηχανή
    • Αναλυτής CMD
    • Βελτιστοποιητής
    • Εκτελεστής ερωτημάτων
  • Μηχανή αποθήκευσης
    • Τύποι αρχείων
    • Μέθοδος πρόσβασης
    • Διαχείριση Buffer
    • Προγραμματίστε την προσωρινή μνήμη
    • Ανάλυση δεδομένων: προσωρινή μνήμη & αποθήκευση δεδομένων
    • Διαχειριστής συναλλαγών

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

Το MS SQL SERVER PROTOCOL LAYER υποστηρίζει 3 τύπους αρχιτεκτονικής διακομιστή πελάτη. Θα ξεκινήσουμε με το " Three Type of Client Server Architecture" που υποστηρίζει ο MS SQL Server.

Κοινή μνήμη

Ας επανεξετάσουμε ένα σενάριο συνομιλίας νωρίς το πρωί.

MOM και TOM - Εδώ ο Τομ και η μαμά του, βρίσκονταν στο ίδιο λογικό μέρος, δηλαδή στο σπίτι τους. Ο Τομ ήταν σε θέση να ζητήσει καφέ και η μαμά ήταν σε θέση να το σερβίρει ζεστό.

MS SQL SERVER - Εδώ ο διακομιστής MS SQL παρέχει SHARED MEMORY PROTOCOL . Εδώ ο διακομιστής CLIENT και MS SQL εκτελούνται στον ίδιο υπολογιστή. Και οι δύο μπορούν να επικοινωνούν μέσω πρωτοκόλλου κοινής μνήμης.

Αναλογία: Ας χαρτογραφήσουμε οντότητες στα παραπάνω δύο σενάρια. Μπορούμε εύκολα να αντιστοιχίσουμε τον Τομ στον Πελάτη, το διακομιστή Mom to SQL, το Home to Machine και το Λεκτικό Προνόμιο σε Κοινόχρηστη Μνήμη.

Από το γραφείο διαμόρφωσης και εγκατάστασης:

Για σύνδεση σε τοπικό DB - Στο SQL Management Studio, η επιλογή "Όνομα διακομιστή" θα μπορούσε να είναι

"."

"localhost"

"127.0.0.1"

"Μηχανή \ Instance"

TCP / IP

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

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

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

Σημειώσεις από το γραφείο διαμόρφωσης / εγκατάστασης:

  • Στο SQL Management Studio - Για σύνδεση μέσω TCP \ IP, η επιλογή "Όνομα διακομιστή" πρέπει να είναι "Machine \ Instance του διακομιστή."
  • Ο διακομιστής SQL χρησιμοποιεί τη θύρα 1433 σε TCP / IP.

Ονομασμένοι σωλήνες

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

Εδώ ο Τομ και ο γείτονάς του , η Σιέρα, βρίσκονται στην ίδια φυσική τοποθεσία, ο ένας του άλλου γείτονας. Επικοινωνούν μέσω δικτύου εντός. Ομοίως, το MS SQL SERVER παρέχει τη δυνατότητα αλληλεπίδρασης μέσω του πρωτοκόλλου Named Pipe . Εδώ το CLIENT και το MS SQL SERVER συνδέονται μέσω LAN .

Αναλογία: Ας χαρτογραφήσουμε οντότητες στα παραπάνω δύο σενάρια. Μπορούμε εύκολα να χαρτογραφήσουμε τον Τομ στον Πελάτη, τον διακομιστή Sierra σε SQL, το Γείτονα στο LAN και τέλος το Διαδίκτυο στο Πρωτόκολλο Named Pipe.

Σημειώσεις από το γραφείο διαμόρφωσης / εγκατάστασης:

  • Για σύνδεση μέσω Named Pipe. Αυτή η επιλογή είναι απενεργοποιημένη από προεπιλογή και πρέπει να ενεργοποιηθεί από το SQL Configuration Manager.

Τι είναι το TDS;

Τώρα που γνωρίζουμε ότι υπάρχουν τρεις τύποι αρχιτεκτονικής πελάτη-διακομιστή, ας ρίξουμε μια ματιά στο TDS:

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

Σχεσιακή μηχανή

Το Relational Engine είναι επίσης γνωστό ως Query Processor. Έχει τα στοιχεία του SQL Server που καθορίζουν τι ακριβώς πρέπει να κάνει ένα ερώτημα και πώς μπορεί να γίνει καλύτερα. Είναι υπεύθυνη για την εκτέλεση των ερωτημάτων χρήστη ζητώντας δεδομένα από τη μηχανή αποθήκευσης και επεξεργάζεται τα αποτελέσματα που επιστρέφονται.

Όπως απεικονίζεται στο Αρχιτεκτονικό Διάγραμμα, υπάρχουν 3 βασικά στοιχεία του Relational Engine. Ας μελετήσουμε λεπτομερώς τα συστατικά:

Αναλυτής CMD

Τα δεδομένα που λαμβάνονται μόλις από το Protocol Layer μεταφέρονται στη συνέχεια στη Relational Engine. Το "CMD Parser" είναι το πρώτο συστατικό του Relational Engine που έλαβε τα δεδομένα ερωτήματος. Η κύρια δουλειά του CMD Parser είναι να ελέγξει το ερώτημα για σφάλμα Συντακτικού και Σημασιολογικού. Τέλος, δημιουργεί ένα δέντρο ερωτήσεων . Ας συζητήσουμε λεπτομερώς.

Συντακτικός έλεγχος:

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

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

Η απάντηση είναι - ο σερβιτόρος δεν μπορεί να επεξεργαστεί περαιτέρω την παραγγελία.

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

Θα μάθουμε περισσότερα για το ερώτημα MS SQL σε προσεχή μαθήματα. Ωστόσο, εξετάστε παρακάτω το πιο βασικό Σύνταγμα ερωτημάτων ως

SELECT * from ;

Τώρα, για να κατανοήσετε τι κάνει η συντακτική, πείτε εάν ο χρήστης εκτελεί το βασικό ερώτημα όπως παρακάτω:

SELECR * from 

Σημειώστε ότι αντί για «SELECT» ο χρήστης πληκτρολόγησε «SELECR».

Αποτέλεσμα: Το CMD Parser θα αναλύσει αυτήν τη δήλωση και θα ρίξει το μήνυμα σφάλματος. Καθώς το "SELECR" δεν ακολουθεί το προκαθορισμένο όνομα και τη γραμματική της λέξης-κλειδιού. Εδώ ο CMD Parser περίμενε "SELECT".

Σημασιολογικός έλεγχος:

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

Ας το καταλάβουμε με τη βοήθεια του παρακάτω παραδείγματος -

SELECT * from USER_ID

Αποτέλεσμα: Το CMD Parser θα αναλύσει αυτήν τη δήλωση για σημασιολογικό έλεγχο. Ο αναλυτής θα εμφανίσει ένα μήνυμα σφάλματος καθώς ο Κανονικοποιητής δεν θα βρει τον πίνακα που ζητήθηκε (USER_ID) καθώς δεν υπάρχει.

Δημιουργία δέντρου ερωτήσεων:

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

Βελτιστοποιητής

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

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

Ο ρόλος του Optimizer είναι να βρει το φθηνότερο, όχι το καλύτερο, οικονομικό σχέδιο εκτέλεσης.

Πριν προχωρήσουμε σε περισσότερες τεχνικές λεπτομέρειες του Optimizer, εξετάστε παρακάτω το πραγματικό παράδειγμα:

Παράδειγμα:

Ας πούμε, θέλετε να ανοίξετε έναν online τραπεζικό λογαριασμό. Γνωρίζετε ήδη για μία τράπεζα που διαρκεί το πολύ 2 ημέρες για να ανοίξει λογαριασμό. Ωστόσο, έχετε επίσης μια λίστα με 20 άλλες τράπεζες, οι οποίες ενδέχεται να διαρκέσουν ή όχι λιγότερο από 2 ημέρες. Μπορείτε να αρχίσετε να αλληλεπιδράτε με αυτές τις τράπεζες για να προσδιορίσετε ποιες τράπεζες χρειάζονται λιγότερο από 2 ημέρες. Τώρα, ενδέχεται να μην βρείτε τράπεζα που διαρκεί λιγότερο από 2 Ημέρες και χάθηκε επιπλέον χρόνος λόγω της ίδιας της δραστηριότητας αναζήτησης. Θα ήταν καλύτερα να ανοίξετε λογαριασμό με την ίδια την πρώτη τράπεζα.

Συμπέρασμα: Είναι πιο σημαντικό να επιλέξετε με σύνεση. Για να είμαστε ακριβείς, επιλέξτε ποια είναι η καλύτερη, όχι η φθηνότερη.

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

Φάση 0: Αναζήτηση για ασήμαντο σχέδιο:

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

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

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

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

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

Εκτελεστής ερωτημάτων

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

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

Το έργο του Storage Engine είναι να αποθηκεύει δεδομένα σε ένα σύστημα αποθήκευσης όπως το Disk ή το SAN και να ανακτά τα δεδομένα όταν χρειάζεται. Πριν εμβαθύνουμε στη μηχανή αποθήκευσης, ρίξτε μια ματιά στον τρόπο αποθήκευσης των δεδομένων στη βάση δεδομένων και στον τύπο των διαθέσιμων αρχείων.

Αρχείο δεδομένων και έκταση:

Data File, αποθηκεύει φυσικά δεδομένα με τη μορφή σελίδων δεδομένων, με κάθε σελίδα δεδομένων να έχει μέγεθος 8KB, σχηματίζοντας τη μικρότερη μονάδα αποθήκευσης στον SQL Server. Αυτές οι σελίδες δεδομένων ομαδοποιούνται λογικά για να σχηματίσουν επεκτάσεις. Κανένα αντικείμενο δεν έχει αντιστοιχιστεί μια σελίδα στον SQL Server.

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

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

  1. Κύριο αρχείο
  • Κάθε βάση δεδομένων περιέχει ένα πρωτεύον αρχείο.
  • Αυτό αποθηκεύει όλα τα σημαντικά δεδομένα που σχετίζονται με πίνακες, προβολές, Triggers κ.λπ.
  • Η επέκταση είναι. mdf συνήθως αλλά μπορεί να έχει οποιαδήποτε επέκταση.
  1. Δευτερεύον αρχείο
  • Η βάση δεδομένων μπορεί ή όχι να περιέχει πολλά δευτερεύοντα αρχεία.
  • Αυτό είναι προαιρετικό και περιέχει δεδομένα ειδικά για το χρήστη.
  • Η επέκταση είναι. ndf συνήθως αλλά μπορεί να έχει οποιαδήποτε επέκταση.
  1. Αρχείο καταγραφής
  • Επίσης γνωστό ως καταγραφή αρχείων μπροστά.
  • Η επέκταση είναι. ldf
  • Χρησιμοποιείται για διαχείριση συναλλαγών.
  • Αυτό χρησιμοποιείται για την ανάκτηση από τυχόν ανεπιθύμητες περιπτώσεις. Εκτελέστε σημαντική εργασία επαναφοράς σε μη δεσμευμένες συναλλαγές

Η μηχανή αποθήκευσης έχει 3 εξαρτήματα. ας τα εξετάσουμε λεπτομερώς.

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

Λειτουργεί ως διεπαφή μεταξύ εκτελεστή ερωτημάτων και Buffer Manager / Transaction Logs.

Η ίδια η μέθοδος πρόσβασης δεν εκτελεί καμία εκτέλεση.

Η πρώτη ενέργεια είναι να καθοριστεί εάν το ερώτημα είναι:

  1. Επιλέξτε δήλωση (DDL)
  2. Μη επιλεγμένη δήλωση (DDL & DML)

Ανάλογα με το αποτέλεσμα, η μέθοδος πρόσβασης ακολουθεί τα ακόλουθα βήματα:

  1. Εάν το ερώτημα είναι DDL , SELECT statement, το ερώτημα μεταβιβάζεται στον Buffer Manager για περαιτέρω επεξεργασία.
  2. Και εάν το ερώτημα είναι DDL, ΔΕΝ ΕΠΙΛΕΞΤΕ δήλωση , το ερώτημα μεταβιβάζεται στον Διαχειριστή συναλλαγών. Αυτό περιλαμβάνει κυρίως τη δήλωση ΕΝΗΜΕΡΩΣΗ.

Διαχείριση Buffer

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

  • Προγραμματίστε την προσωρινή μνήμη
  • Ανάλυση δεδομένων: προσωρινή μνήμη & αποθήκευση δεδομένων
  • Βρώμικη σελίδα

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

Προγραμματίστε την προσωρινή μνήμη

  • Υφιστάμενο πρόγραμμα ερωτημάτων: Ο διαχειριστής buffer ελέγχει εάν το σχέδιο εκτέλεσης υπάρχει στο αποθηκευμένο Cache προγράμματος. Εάν ναι, τότε χρησιμοποιείται η προσωρινή μνήμη προγράμματος ερωτήματος και η σχετική κρυφή μνήμη δεδομένων.
  • Πρόγραμμα προσωρινής αποθήκευσης για πρώτη φορά: Από πού προέρχεται το υπάρχον σχέδιο προσωρινής μνήμης;

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

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

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

Buffer Cache - Soft Parsing:

Το Buffer Manager αναζητά δεδομένα στο Buffer στην προσωρινή μνήμη δεδομένων. Εάν υπάρχουν, τότε αυτά τα δεδομένα χρησιμοποιούνται από το Query Executor. Αυτό βελτιώνει την απόδοση καθώς μειώνεται ο αριθμός λειτουργίας I / O κατά την ανάκτηση δεδομένων από την προσωρινή μνήμη σε σύγκριση με την ανάκτηση δεδομένων από την αποθήκευση δεδομένων.

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

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

Βρώμικη σελίδα

Αποθηκεύεται ως λογική επεξεργασίας του Transaction Manager. Θα μάθουμε λεπτομερώς στην ενότητα Διαχείριση συναλλαγών.

Διαχειριστής συναλλαγών

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

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

  • Το Log Manager παρακολουθεί όλες τις ενημερώσεις που πραγματοποιούνται στο σύστημα μέσω αρχείων καταγραφής σε αρχεία καταγραφής συναλλαγών.
  • Τα αρχεία καταγραφής έχουν αριθμό ακολουθίας αρχείων καταγραφής με το αναγνωριστικό συναλλαγής και την εγγραφή τροποποίησης δεδομένων .
  • Αυτό χρησιμοποιείται για την παρακολούθηση της συναλλαγής που έχει δεσμευτεί και της επαναφοράς συναλλαγής .

Διαχειριστής κλειδώματος

  • Κατά τη διάρκεια της συναλλαγής, τα συσχετισμένα δεδομένα στην αποθήκευση δεδομένων βρίσκονται στην κατάσταση κλειδώματος. Αυτή η διαδικασία αντιμετωπίζεται από το Lock Manager.
  • Αυτή η διαδικασία διασφαλίζει τη συνοχή και την απομόνωση των δεδομένων . Επίσης γνωστό ως ιδιότητες ACID.

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

  • Το Log Manager ξεκινά την καταγραφή και το Lock Manager κλειδώνει τα σχετικά δεδομένα.
  • Το αντίγραφο των δεδομένων διατηρείται στην προσωρινή μνήμη Buffer.
  • Το αντίγραφο των δεδομένων που υποτίθεται ότι πρέπει να ενημερωθεί διατηρείται στο buffer Log και όλα τα συμβάντα ενημερώνουν τα δεδομένα στο buffer δεδομένων
  • Οι σελίδες που αποθηκεύουν τα δεδομένα είναι επίσης γνωστές ως Dirty Pages .
  • Checkpoint and Write-Ahead Logging: Αυτή η διαδικασία εκτελείται και επισημαίνει όλη τη σελίδα από Dirty Pages έως Disk, αλλά η σελίδα παραμένει στην προσωρινή μνήμη. Η συχνότητα είναι περίπου 1 εκτέλεση ανά λεπτό. Αλλά η σελίδα ωθείται πρώτα στη σελίδα δεδομένων του αρχείου καταγραφής από το αρχείο καταγραφής Buffer. Αυτό είναι γνωστό ως εγγραφή στο προσκήνιο.
  • Lazy Writer: Η σελίδα Dirty μπορεί να παραμείνει στη μνήμη. Όταν ο διακομιστής SQL παρατηρεί ένα τεράστιο φορτίο και απαιτείται μνήμη Buffer για μια νέα συναλλαγή, απελευθερώνει Dirty Pages από την προσωρινή μνήμη. Λειτουργεί σε LRU - Λιγότερο πρόσφατα χρησιμοποιημένος αλγόριθμος για τον καθαρισμό σελίδας από buffer pool σε δίσκο.

Περίληψη:

  • Υπάρχουν τρεις τύποι αρχιτεκτονικής διακομιστή πελάτη: 1) Κοινή μνήμη 2) TCP / IP 3) Ονομαζόμενοι σωλήνες
  • Το TDS, που αναπτύχθηκε από τη Sybase και τώρα ανήκει στη Microsoft, είναι ένα πακέτο που είναι ενθυλακωμένο σε πακέτα δικτύου για μεταφορά δεδομένων από τον υπολογιστή-πελάτη στον υπολογιστή διακομιστή.
  • Το Relational Engine περιέχει τρία βασικά συστατικά:

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

    Optimizer: Ο ρόλος του Optimizer είναι να βρει το φθηνότερο, όχι το καλύτερο, οικονομικό σχέδιο εκτέλεσης.

    Query Executor: Query executer κλήσεις Μέθοδος πρόσβασης και παρέχει σχέδιο εκτέλεσης για τη λήψη δεδομένων λογική που απαιτείται για την εκτέλεση.

  • Υπάρχει τρεις τύποι αρχείων Κύριο αρχείο, δευτερεύον αρχείο και αρχεία καταγραφής.
  • Μηχανή αποθήκευσης: Έχει τα ακόλουθα σημαντικά στοιχεία

    Μέθοδος πρόσβασης: Αυτό το στοιχείο καθορίζει εάν το ερώτημα είναι Επιλογή ή μη επιλογή. Επικαλείται ανάλογα τον Buffer και το Transfer Manager.

    Buffer Manager: Ο διαχειριστής Buffer διαχειρίζεται βασικές λειτουργίες για το πρόγραμμα Cache, Data Parsing & Dirty Page.

    Transaction Manager: It Manager Non-Select Transaction με τη βοήθεια Log Log και Lock Managers. Επίσης, διευκολύνει τη σημαντική υλοποίηση των εγγραφών Write Ahead και Lazy.