共用方式為


合併聯結轉換

更新: 2005 年 12 月 5 日

合併聯結轉換提供藉由使用 FULL、LEFT 或 INNER 聯結,來聯結兩個已排序資料集所產生的輸出。例如,您可以使用 LEFT 聯結來聯結包含產品資訊的資料表,以及列出製造產品的國家/地區的資料表。此結果為列出所有產品及其原產國家/地區的資料表。如需詳細資訊,請參閱<使用聯結>。

您可以利用下列方式設定「合併聯結」轉換:

  • 指定聯結為 FULL、LEFT 或 INNER 聯結。
  • 指定聯結使用的資料行。
  • 指定轉換是否要將 Null 值當作相當於其他 Null 處理。
    ms141775.note(zh-tw,SQL.90).gif附註:
    如果 Null 值未當成相等值,則轉換會以與 SQL Server Database Engine 相同的方式處理 Null 值。

「合併聯結」轉換需要兩項輸入都經過排序,且聯結的資料行擁有相符的中繼資料。例如,您無法聯結數值資料類型的資料行,與字元資料類型的資料行。如果資料是字串資料類型,第二個輸入中的資料行長度就必須小於或等於與其合併之第一個輸入中的資料行長度。

資料可藉由在來源的輸出或其他上游資料流程元件上設定排序選項,或藉由將「排序」轉換插入資料流程中的「合併聯結」轉換之前進行排序。如果排序選項表示資料已排序,但實際上資料並未排序,則合併聯結作業可能會產生無法預期的結果。

這個轉換有兩個輸入與一個輸出。它不支援錯誤輸出。

緩衝區調整

合併聯結轉換包括 MaxBuffersPerInput 屬性,用以指定每一次輸入時所容許的使用中緩衝區數目上限。您可以使用這個屬性來微調轉換緩衝區使用的記憶體數量,並進而微調轉換的效能。緩衝區的數目愈大,轉換使用的記憶體就愈多,效能也會愈高。MaxBuffersPerInput 的預設值 5 是多數案例中能夠達到最佳效果的緩衝區數目。若要微調效能,您可以嘗試使用稍有不同的緩衝區數目,例如 4 或 6。如果可能,您應該避免使用過小的緩衝區數目。例如,將 MaxBuffersPerInput 由 5 改設為 1 會對效能造成重大影響。另外,您也不應該將 MaxBuffersPerInput 設為 0。這個值表示不會進行調整,而且依據資料負荷量和記憶體數量而定,封裝可能會不完整。

為了避免發生死結,合併聯結轉換可能會暫時增加其所使用的緩衝區數目,使其超過 MaxBuffersPerInput 的值。解決死結狀況之後,MaxBuffersPerInput 便會回復成原先的設定值。

設定合併聯結轉換

您可以透過 SSIS 設計師或程式設定屬性。

如需可在 [合併聯結轉換編輯器] 對話方塊中設定之屬性的詳細資訊,請參閱<合併聯結轉換編輯器>。

如需可以用程式設計的方式設定之屬性的詳細資訊,請按一下下列其中一個主題:

如需有關如何設定屬性的詳細資訊,請按一下下列主題之一:

請參閱

概念

合併轉換
聯集全部轉換
Integration Services 轉換

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2005 年 12 月 5 日

新增內容:
  • 描述 MaxBuffersPerInput 屬性在轉換效能中所扮演的角色。