sqlschool.gr logo

articles

Articles of SQLschool.gr Team

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

Όταν μια εφαρμογή επικοινωνεί με το SQL Server  Database Engine τα APIs που παρέχονται από τo protocol layer ελέγχουν την επικοινωνία αυτή χρησιμοποιώντας ένα format που έχει φτιάξει η Microsoft και το οποίο ονομάζετε Tabular data stream (TDS) packet.

Αυτό δεν μπορεί να «ταξιδέψει» στο δίκτυο και για αυτό το λόγο το SQL Server Network Interface (SNI) layer τόσο στον server όσο και στον client εσωκλείουν το TDS σε κάτι που μπορεί να «ταξιδέψει» και το οποίο δεν είναι κάτι άλλο από ένα network package που χρησιμοποιεί ένα από τα πρωτόκολλα επικοινωνίας όπως TCP/IP ή Named Pipes.

SQL Communication Protocols


Στο server τα network libraries είναι μέρος του SQL Server ενώ στον client είναι μέρος του SQL Native Client.

Μέσα από τον SQL Server Configuration Manager μπορούμε να ορίσουμε τα πρωτόκολλα με τα οποία θέλουμε να δουλεύει ο SQL Server, και εδώ είναι το κύριο στοιχείο της ερώτησης που τίθεται.

O SQL Server έχει τα εξής πρωτόκολλα:

  • Shared Memory.  Είναι το απλούστερο, χωρίς καμία παράμετρο για να ορίσεις, απλά το ενεργοποιείς ή το απενεργοποιείς. Αυτό όμως που πρέπει να τονίσω είναι ότι το συγκεκριμένο σου παρέχει την δυνατότητα να συνδεθείς στον SQL Server μόνο εφόσον έχεις στήσει την εφαρμογή σου πάνω στην ίδια μηχανή που έχεις στήσει τον SQL Server.
    Για να το καταλάβετε καλύτερα. Όταν είσαι φυσικά πάνω στον server και εκτελείς τον SSMS συνδέεσαι με αυτό το πρωτόκολλο. Αν έχεις βάλει στον pc σου  SQL Server και ανοίγεις το SSMS για να συνδεθείς στο τοπικό σου SQL Server instance ή τρέχεις μια εφαρμογή που έχεις στο pc σου και η οποία βλέπει μια βάση που έχεις στο τοπικό SQL Server instance σου πάλι αυτό χρησιμοποιείς.
    Τέλος να τονίσω ότι όσοι clients είναι με MDAC 2.8 και παλαιότερο δεν μπορεί να γίνει σύνδεση μέσω Shared Memory. Στην περίπτωση αυτή γίνεται προσπάθεια να γίνει η σύνδεση με Named Pipes.


  • Named Pipes. Αυτό έχει σχεδιαστεί για LANs. Ένα τμήμα της μνήμης χρησιμοποιείται από ένα process για να περάσει την πληροφορία στο άλλο. Αυτό το άλλο process μπορεί να είναι είτε στον τοπικό υπολογιστή είτε σε απομακρυσμένο.


  • TCP/IP.  Το γνωστό σε όλους μας πρωτόκολλο. Αυτό σημαίνει ότι μπορούμε να εκμεταλλευτούμε όλες του τις δυνατότητες (routing, security κλπ.) απλά θα πρέπει σωστά να το κάνουμε  configure.


/*antonch*/

Comments

Για άλλη μια φορά άψογος. Σ ευχαριστούμε πολύ!

Antonios Chatzipavlis

Antonios Chatzipavlis

Antonios is a Data Solutions Consultant and Trainer. He has been working in IT since 1988. In his career, he has worked as senior developer, IT Manager, Solutions Architect and IT Consultant. Since 1995 he has been devoted on new technologies and software development tools, mainly by Microsoft, either by training company staff and colleagues or assisting them in design, development and implementation as a consultant or chief developer. He has focused in Databases and Data Science since 1995. He specialized in Microsoft SQL Server since version 6.0 in areas like SQL Server Internals, Database Design and Development, Business Intelligence and in 2010 he has started working with Azure Data Platform, NoSQL databases, Big Data Technologies and Machine Learning. He is an active member of many IT communities in Greece, answering colleagues' questions and writing articles in his web site. He is the owner of SQLschool.gr which is a community portal with a lot of information about Microsoft SQL Server. He has been a Microsoft Certified Trainer (MCT) since 2000. Microsoft honored him as MVP on Data Platform due to his activities in SQL Server since 2010. He holds a large number of Microsoft Certifications and Microsoft SQL Server Certifications since version 6.5.

Tip

What's New in SQL Server 2022 - Episodes

More Tips...

Become a member

If you want to receive updates from us become a member to our community.

Connect

Explore

Learn


sqlschool.gr © 2010-2024 All rights reserved

This site uses cookies for operational and analytics purposes only. By continuing to browse this site, you agree to their use.