---
schema_version: "1"
id: 18541af91f21577dc83d52abbd092092e017a9b576ab27a12098724649e5c069
title: 改善跨資料庫聯結的效能
collection: tableau
version: current
locale: zh-tw
portal_url: https://docs.salesforce.com/tableau/current/zh-tw/public/desktop/joins_xbd_perf.md
canonical_url: https://help.tableau.com/current/public/desktop/zh-tw/joins_xbd_perf.htm
source_site: help.tableau.com
content_type: documentation
content_hash: f0c4b1b1f1398c244f193ca6acc98dd375087a1d93728fcb12704c35d404daa3
description: Improve performance for cross-database joins between databases and files.
---
[跳至主要內容](#main-content)

# 改善跨資料庫聯結的效能

> [!IMPORTANT]
> 
> **重要提示**：此功能會暫時將資料移至 Tableau 之外。請確保您連線的資料庫來自受信任的來源。

在單一資料庫和單一檔案之間聯結資料時，Tableau 可以透過選擇使用資料庫而不是 Hyper 執行聯結來提高效能。此預設設定可讓 Tableau 選擇最快的方法（Hyper 或已連線資料庫）。如果 Tableau 使用已連線的資料庫，則會將檔案連線中的資料移動到資料庫中的暫存資料表，並在那裡執行聯結。

### 功能條件

僅當滿足以下條件時，使用已連線資料庫進行聯結的選項才可用：

- 資料來源由一個或多個基於檔案的連線和單個基於 SQL 的連線組成。
- 要聯結的檔案必須為以下檔案類型之一：Microsoft Excel、PDF 或文字（.csv、.txt、.tsv 或 .tab）。
- 連線的資料庫是下列其中一項：
    - Microsoft SQL Server
    - Oracle
    - PostgreSQL
    - Vertica
    - Teradata
- 在 **Web 製作**中，已啟用「允許使用者使用 Web 製作」選項。

## 變更跨資料庫聯結的偏好選項

1. 連線到第一個資料來源。
    - 在 **Tableau Desktop** 中：在「開始」頁面的「連線」下，連線至支援的檔案類型或支援的資料庫類型。此步驟會在 Tableau 資料來源中建立第一個連線。
    - 在 **Web 製作**中：從「首頁」或「探索」頁面，按一下「建立」 > 「工作簿」，以開啟新的工作簿，然後連線至您的資料。此步驟會在 Tableau 資料來源中建立第一個連線。
2. 選取您想要連線的檔案或資料庫，然後按兩下表或將表拖曳到畫布上。
    
    ![在聯結中新增資料表。](/tableau/current/zh-tw/public/desktop/zh-tw/Img/joins_addtable.gif)
3. 在左側窗格中的「連線」下，按一下「新增」按鈕（在 Web 製作中為 ![新增資料來源圖示。](/tableau/current/zh-tw/public/desktop/zh-tw/Img/add_web_datasource.png)）以將第二個連線新增到 Tableau 資料來源。
    
    ![新增「連線」功能表。](/tableau/current/zh-tw/public/desktop/zh-tw/Img/cross_database_join4.png)
    
    畫面會顯示「 跨資料庫聯結」選項。
    
    ![編輯按鈕以存取跨資料庫聯結設定。](/tableau/current/zh-tw/public/desktop/zh-tw/Img/cross_database_join.png)
    
    **附註**：若您沒有看到此選項，請檢查您是否僅使用受支援的資料來源類型，並且您至少有兩個資料來源（一個資料庫和一個或多個支援類型的檔案）。
4. 若要變更 Tableau 執行聯結的方式，請按一下「跨資料庫聯結」選項旁邊的「編輯」。
5. 在「跨資料庫聯結」對話方塊中，選取下列其中一個選項，然後按一下「確定」：
    
    - 始終在資料庫中執行聯結。此選項會強制 Tableau 使用即時資料庫來執行聯結。
    - 讓 Tableau 決定在何處進行聯結。此選項是預設選項，可讓 Tableau 選擇執行聯結的最快選項 - Hyper 或您連線到的資料庫。
        
        ![跨資料庫聯結設定，其中包含使用 Tableau 或現有資料庫或僅使用 Tableau 的選項。](/tableau/current/zh-tw/public/desktop/zh-tw/Img/cross_database_join2.png)
    
    多個連線面板上的跨資料庫聯結選項將更新，以反映您的選擇。
    
    ![編輯按鈕以存取跨資料庫聯結設定。](/tableau/current/zh-tw/public/desktop/zh-tw/Img/cross_database_join3.png)
    
    > [!IMPORTANT]
    > 
    > **重要提示**：若您選取讓 Tableau 決定在何處進行聯結，Tableau 會在執行聯結時選擇最快的選項。此行為由一組準則（包括聯結類型）預先決定。例如，Tableau 將一律選擇 Hyper 進行非內部聯結。
    
    如果 Tableau 使用 Hyper 執行聯結，此處理序會在背景發生，而不會顯示任何指標來識別執行聯結的位置。
6. 透過從資料來源中選取欄位、選取聯結運運算元並從新增的表中選取欄位來新增一個或多個聯結子句。檢查聯結子句以確保它反映您要連線表的方式。

## 關於使用多連線資料來源

使用多連線資料來源就像使用任何其他資料來源一樣，本部分中討論了一些警告。

### 聯集連線內的資料

若要聯集資料，您必須使用同一連線中的文字表或 Excel 表。這就是說，您不能聯集不同資料庫中的表。在 Tableau Desktop 中，您可以聯集不同 Excel 工作簿中的表以及不同目錄中的檔案。有關詳情，請參閱[使用萬用字元搜尋來聯集表 (Tableau Desktop)](https://help.tableau.com/current/public/desktop/zh-tw/union.htm#union_wildcard)。

如果您需要從不同資料庫中聯集資料，請使用 [Tableau Prep](https://www.tableau.com/zh-tw/support/releases/prep)。

### 計算

排序規則是指確定字串值應如何進行比較和排序的資料庫規則。一般來說，排序規則由資料庫進行處理。然而，當使用跨資料庫聯接時，您可能會聯接具有不同排序規則的列。

例如，假設您的跨資料庫聯接使用聯接鍵，該聯接鍵由 SQL Server 中區分大小寫的欄和 Oracle 中不區分大小寫的欄組成。在這種情況下，Tableau 會將某些排序規則對應到其他項，以儘量正確解釋值。

跨資料庫聯接中使用以下規則：

- 如果某一列使用 Unicode 國際化元件 (ICU) 排序規則標準，則 Tableau 會使用其他列的排序規則。
- 如果所有欄都使用 ICU 排序規則標準，則 Tableau 會使用左表的欄的排序規則。
- 如果列不使用 ICU 排序規則標準，則 Tableau 會使用二進位排序規則。二進位排序規則是指資料庫的地區設定和欄的資料類型，用於確定字串值應如何進行比較和排序。

#### 保持 Excel 資料的大小寫敏感度

當在執行聯結時，如果需要保留 Excel 資料的區分大小寫，可以從「資料」功能表啟用「保留字元大小寫 (Excel)」選項。

![已開啟 Tableau 工作簿並站看「資料」功能表。在「資料」功能表中，突出顯示「主要字元大小寫 (Excel)」選項。](/tableau/current/zh-tw/public/desktop/zh-tw/Img/Excel_character_case.png)

選取此選項時，Tableau 將維持大小寫並唯一標識大小寫不同的值，而不會將這些值組合起來，產生不同的列數。

例如，假設一張工作表包含「House」，另一張工作表包含「house」和「HOUSE」。預設情況下，Tableau 會忽略大小寫，並將「house」的所有三種變化視為相同。啟用「保持字元大小寫 (Excel)」的情況下，聯結資料表時，Tableau 會保留字元大小寫差異。「House」、「house」和「HOUSE」被視為不同的值。

**附註：**此選項適用於所有 Tableau 支援的語言，且不依賴於作業系統的地區設定。此選項僅適用於 Microsoft Excel 資料來源。

### 計算和多連線資料來源

在多連線資料來源中只能使用一部分計算。

- **在 Tableau Desktop 中：**您可以使用特定計算，條件是：

- 多連線資料來源中的所有連線都支援
- Tableau 擷取支援。

- **在 Web 製作（Tableau Cloud 和 Tableau Server）中：**如果多連線資料來源中的所有連線都支援，您可以使用特定計算。

### 預存程序

預存程序不可用於多連線資料來源。

### 從連線內對資料進行樞紐分析

若要對資料進行樞紐分析，您必須使用同一連線中的文字欄或 Excel 欄。也就是說，您不能在樞紐分析中包括不同資料庫中的欄。

### 使擷取檔案成為第一個連線（僅限 Tableau Desktop）

連線到多連線資料來源中的擷取檔案時，請確保與擷取 (.hyper) 檔案的連線是第一個連線。這樣會保留可能屬於擷取的任何自訂，包括預設屬性變更、計算欄位、群組、別名等。

**附註：**如果必須連線到多連線資料來源中的多個擷取檔案，則只會保留第一個連線的擷取中的自訂項。

### 包含基於檔案的資料連線的多連線資料來源的擷取（僅限 Tableau Desktop）

如果要發佈包含基於檔案的資料（例如 Excel）的多連線資料來源的資料擷取，選取「包括外部檔案」選項會將基於檔案的資料複製為資料來源的一部分。在這種情況下，可以下載基於檔案的資料的副本，並且其他使用者可以存取其內容。如果您有意從擷取中排除的基於檔案的資料中存在敏感資訊，_請勿_在發佈資料來源時選取**「包括外部檔案」**。

![突出顯示了包含外部檔案選項的「將資料來源發佈到 Tableau Server」對話方塊。](/tableau/current/zh-tw/public/desktop/zh-tw/Img/join_multiconnection_include_external_files.png)

## 關於查詢和跨資料庫聯接

對於每個連線，Tableau 會向聯接中的資料庫傳送獨立查詢。結果存放在一個臨時表中，採用擷取檔案格式。

> [!IMPORTANT]
> 
> **重要提示**：跨資料庫聯結可能會在資料庫之間移動資料。確保要加入的資料庫是可信來源。

例如，假設您建立與兩個表（dbo.listings 和 reviews$）的連線。這些表存放在兩個不同的資料庫（SQL Server 和 Excel）中。Tableau 會在每個連線中單獨查詢資料庫。資料庫執行查詢，並應用諸如篩選器和計算等自訂項，Tableau 將每個連線的結果存放在一個臨時表中。在此範例中，FQ\_Temp\_1 是與 SQL Server 的連線的臨時表，FQ\_Temp\_2 是與 Excel 的連線的臨時表。

<table><tbody><tr><td><p style="text-align: left;"><b>SQL Server 表</b></p><p style="text-align: left;"><img src="https://help.tableau.com/current/public/desktop/zh-tw/Img/join_query_temp1.png" alt="用於在 dbo 資料庫查詢清單資料表的 SELECT 陳述式。"></p></td><td><p><b>Excel 表</b></p><img src="https://help.tableau.com/current/public/desktop/zh-tw/Img/join_query_temp2.png" alt="演示在檢閱資料表上執行選取操作的資料流程圖。"></td></tr></tbody></table>

當您執行跨資料庫聯接時，Tableau Desktop 會將這些臨時表聯結。這些臨時表是 Tableau 執行跨資料庫聯接所必需的。

聯接了這些表之後，套用前 N 個篩選器以將資料網格中顯示的值數限制為前 1000 列。應用此篩選器是為了說明保持資料網格的回應性以及「資料來源」頁面的整體性能。

**聯接的表**

![演示先聯結、然後 topn、最後選取操作的資料流程圖。](/tableau/current/zh-tw/public/desktop/zh-tw/Img/join_query_join.png)