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 Chatzipavlis is a highly experienced Data Solutions Consultant and Trainer. He has been working in the IT industry since 1988, holding various roles such as senior developer, IT Manager, Data & AI Solutions Architect and Consultant.

Since 1995, Antonios has focused on modern technologies and software development tools, primarily by Microsoft. He has specialized in Data & AI since 2000, with expertise in Microsoft Data Platform (SQL Server, Azure SQL Databases, Azure Synapse Analytics, Microsoft Fabric, Power BI, AI) and Databricks.

Antonios is also a Microsoft Certified Trainer (MCT) for over 25 years, has been recognized as a Microsoft Most Valuable Professional (MVP) in Data Platform since 2010 and he is in the Data Expert 40 Powerlist 2024 by Boussias. He is the co-founder and visionary behind XLYTiCA, a company dedicated to Data & AI solutions.

Episode

Task Flows in Microsoft Fabric

image

More Episodes...

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-2025 All rights reserved

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