當前位置:編程學習大全網 - 編程語言 - 在SQLserver裏面“命名管道”是什麽意思

在SQLserver裏面“命名管道”是什麽意思

SQL Server中的命名管道(named pipe)及其使用

1. 什麽是命名管道?

與TCP/IP(傳輸控制協議或internet協議)壹樣,命名管道是壹種通訊協議。它壹般用於局域網中,因為它要求客戶端必須具有訪問服務器資源的權限。

要解釋這個問題,我還是摘錄微軟官方的資料比較好

/library/ms187892.aspx

若要連接到 SQL Server 數據庫引擎,必須啟用網絡協議。Microsoft SQL Server 可同時通過多種協議處理請求。客戶端用單個協議連接到 SQL Server。如果客戶端程序不知道 SQL Server 正在偵聽哪個協議,可以配置客戶端按順序嘗試多個協議。使用 SQL Server 配置管理器啟用、禁用以及配置網絡協議。

Shared Memory

Shared Memory 是可供使用的最簡單協議,沒有可配置的設置。由於使用 Shared Memory 協議的客戶端僅可以連接到同壹臺計算機上運行的 SQL Server 實例,因此它對於大多數數據庫活動而言是沒用的。如果懷疑其他協議配置有誤,請使用 Shared Memory 協議進行故障排除。

註意:

使用 MDAC 2.8 或更早版本的客戶端不能使用 Shared Memory 協議。如果這些客戶端嘗試使用,將自動切換為 Named Pipes 協議。

TCP/IP

TCP/IP 是 Internet 上廣泛使用的通用協議。它與互連網絡中硬件結構和操作系統各異的計算機進行通信。TCP/IP 包括路由網絡流量的標準,並能夠提供高級安全功能。它是目前在商業中最常用的協議。將計算機配置為使用 TCP/IP 可能會很復雜,但大多數聯網的計算機已經配置正確。若要配置未在 SQL Server 配置管理器中出現的 TCP/IP 設置,請參閱 Microsoft Windows 文檔。

Named Pipes 是為局域網而開發的協議。內存的壹部分被某個進程用來向另壹個進程傳遞信息,因此壹個進程的輸出就是另壹個進程的輸入。第二個進程可以是本地的(與第壹個進程位於同壹臺計算機上),也可以是遠程的(位於聯網的計算機上)。

VIA

虛擬接口適配器 (VIA) 協議和 VIA 硬件壹同使用。有關如何使用 VIA 的信息,請與硬件供應商聯系。

Named Pipes 與 TCP/IP 套接字

在快速局域網 (LAN) 環境中,傳輸控制協議或 Internet 協議 (TCP/IP) 套接字客戶端和 Named Pipes 客戶端在性能方面不相上下。但是,網絡速度越慢[如在廣域網 (WAN) 或撥號網絡上],TCP/IP 套接字客戶端與 Named Pipes 客戶端的性能差異越明顯。這是因為進程間通信 (IPC) 的機制在對等項間的通信方式不同。

對於 Named Pipes,通常網絡通信交互性更強。壹個對等方直到另壹個對等方使用讀取命令請求數據時才發送數據。在開始讀取數據前,網絡讀取壹般包括壹系列窺視 Named Pipes 的信息。這在慢速網絡中可能開銷非常大,並會導致過多的網絡流量,其他的網絡客戶端反過來也會受到影響。

闡明所討論的是本地管道還是網絡管道也很重要。如果服務器應用程序在運行 SQL Server 實例的計算機的本地運行,則可以選擇本地 Named Pipes 協議。本地 Named Pipes 以內核模式運行且速度非常快。

對於 TCP/IP 套接字,數據傳輸的效率更高,開銷也更少。數據傳輸還可以利用 TCP/IP 套接字性能增強機制的優點,例如窗口化、延遲確認等。這在慢速網絡中可能非常有益。對於應用程序的不同類型,這類性能差異可能非常大。

TCP/IP 套接字還支持積壓隊列。試圖連接到 SQL Server 時,與可能導致管道忙錯誤的 Named Pipes 相比,該隊列可以帶來有限的平穩效果。

通常,TCP/IP 在慢速 LAN、WAN 或撥號網絡中效果較好。而當網絡速度不成問題時,Named Pipes 則是更好的選擇,因為其功能更強、更易於使用並具有更多的配置選項。

啟用協議

該協議必須在客戶端和服務器上都啟用才能正常工作。服務器可以同時監聽所有已啟用的協議的請求。客戶端計算機可以選取壹個協議,或按照 SQL Server 配置管理器中列出的順序嘗試這些協議。

註意:

Microsoft SQL Server 不支持 Banyan VINES 順序包協議 (SPP)、多協議、AppleTalk 或 NWLink IPX/SPX 網絡協議。以前使用這些協議連接的客戶端必須選擇其他協議才能連接到 SQL Server。

實際上,命名管道在SQL Server配置管理器中看起來是下面這樣。其實,在安裝好SQL Server之後就自動會有壹個管道名稱。妳當然也可以修改該名稱的。

2. 為什麽用命名管道?

使用命名管道的原因壹般有兩個方面

提高速度

假設同樣在局域網中,那麽使用命名管道協議會比TCP/IP協議快壹些。

增加安全性

因為命名管道是只能用於局域網的,那麽如果服務器關閉了TCP/IP協議而僅啟用命名管道,就可以避免壹些安全隱患

3. 如何使用命名管道?

要使用命名管道連接到SQL Server,客戶端代碼中的連接字符串大致的語法是這樣的

"server=.;database=northwind;uid=sa;pwd=pass@word;Network Library=dbnmpntw"

如果服務器是命名實例,則

"server=.\instanceName;database=northwind;uid=sa;pwd=pass@word;Network Library=dbnmpntw"

註意必須在服務器啟用named pipe協議,並且啟動Broswer服務

為了避免在連接字符串中這麽麻煩,也為了避免泄露我們連接數據的壹些機密信息。SQL Server Native Client還支持定義別名

  • 上一篇:初中畢業學計算機怎麽樣
  • 下一篇:互聯網部門有哪些_互聯網公司有哪些部門
  • copyright 2024編程學習大全網