聯結的假設存在參考完整性
有些情況下,您可以從「資料」功能表中選取「假設存在參考完整性」選項來改善聯結的查詢效能。如果使用此選項,Tableau 將僅在檢視中的欄位明確引用查詢中的聯合資料表時才包含該表。
如果您知道資料具有參考完整性(請參閱下面的定義)但資料庫未強制或無法強制參考完整性,則適合於使用此設定。如果您可以選取在資料庫中設定參考完整性,那麼這是一個比使用此設定更好的選取,因為它可以同時提高資料庫和 Tableau 的性能。Tableau 中的 [假設存在參考完整性] 選項只影響 Tableau 端的性能。如果您的資料沒有參考完整性而您啟用了此設定,則查詢結果可能不可靠。
若要瞭解什麼是參考完整性,請假設連線到包含兩個表的銷售資料: [銷售額] 和 [產品目錄] 。這兩個表如下所示:
銷售額
| 產品目錄
|
由於銷售的所有產品都必須在 [產品目錄] 中列出,因此銷售表中的每一列在 [產品目錄] 表中都有一個對應的列。這兩個表透過產品 ID 聯接後,您會得到與下面類似的表:
產品 ID | 產品名稱 | 產品 ID | 銷售額 | 交易日期 |
1 | 10 吋平板電腦 | 1 | 100 | 2012/10/1 |
1 | 10 吋平板電腦 | 1 | 2000 | 2012/10/2 |
2 | 智慧型電話 | 2 | 50 | 2012/9/30 |
3 | 桌燈 | 3 | 10 | 2012/8/21 |
現在,假設您構建了一個檢視來按區域查看銷售額。預設情況下,將 [銷售額] 欄位拖到檢視中可建立如下所示的查詢:
SELECT SUM([Sales Amount]) FROM [Sales] S INNER JOIN [Product Catalog] P ON S.ProductID = P.ProductID
選取 [假設存在參考完整性] 即表示您告知 Tableau 聯接的表具有參考完整性。換句話說,您確認 [銷售] 表始終有一列與 [產品目錄] 表相相符。因為這是真的,因此 Tableau 不需要 [產品目錄] 表中的任何資訊來返回這些結果。將 [銷售額] 欄位拖到檢視中後,Tableau 可將查詢簡化為:
SELECT SUM([Sales Amount]) FROM [Sales]
此簡化的查詢通常可更快地返回結果,因為它省去了聯接操作。此選項僅影響內部聯結,不影響只包含一個表的資料來源。