2017-07-07 54 views
0

當postgreSQL數據庫服務器獲取查詢時,它如何找到相關的外部數據包裝來解析查詢?外來服務器究竟做了什麼?外部表,外部服務器和外部數據包裝:它們如何通信

我想知道數據庫服務器在外部表上進行查詢時發生的消息順序嗎?

enter image description here

+1

您正在尋找一些低級C的東西或只是一些基本的東西:_Query指向 - >外部表 - >指向 - >外部服務器 - >描述遠程主機和什麼fdw使用_ –

回答

1

讓我們澄清的術語。

  • 外國數據封裝器是一個封裝的代碼用於與外部數據源通信的對象。

  • A 外部服務器是一個對象,指定如何定位某個外部數據源。它屬於外國數據包裝。

  • A 用戶映射是一個對象,其中包含的憑據可以使用外部數據源進行身份驗證。它屬於外部服務器和數據庫用戶。

  • A 外部表是描述包含外部數據源中的數據的對象的對象。它屬於外部服務器。

因此,當一個用戶試圖訪問一個外部表,PostgreSQL的知道如何到達(通過屬於表國外服務器),如何進行身份驗證的數據源(通過用戶映射),什麼功能用於執行此連接並交換數據(通過外部數據包裝器)。

大多數外部數據包裝程序不需要連接到遠程數據源以進行查詢計劃,但是當數據被提取或發送時,將建立連接。

根據外部數據包裝器,當查詢完成或在數據庫會話的生存期內緩存時關閉此連接。