在 DSS 工作流程中,SQL 管道是一個混合多個後續配方(每個配方都使用相同 SQL 引擎)的過程。然後,可以執行包含這些整合配方(可能是視覺配方和「SQL 查詢」配方)的單一作業活動。
通常,SQL 查詢會轉換為關係代數中的表達式,即一系列關係運算。如果我們一次只執行一項操作,則會產生太多成本,因為我們需要在光碟上建立臨時檔案來儲存這些臨時操作的結果。必須建立大型臨時檔案並將其儲存在光碟上,但這需要時間並且通常不需要,因為以下過程將立即使用這些檔案作為輸入。通常的做法是產生與查詢中特定操作組合的演算法相對應的查詢執行程式碼,以減少臨時檔案的數量。
例如,一種具有兩個輸入檔和一個輸出檔的方法可以對輸入檔執行JOIN 和兩個SELECT 操作,並對結果檔執行最終的PROJECT 操作,而不是單獨實作這些操作中的每一個。我們不創建四個臨時文件,而是應用該方法並僅獲得一個結果文件。流水線或基於流的處理是用於此目的的術語。
為了執行大量操作,通常的做法是動態產生查詢執行程式碼。查詢由創建的程式碼生成,該程式碼包含與不同進程相對應的眾多演算法。執行操作後,將產生結果元組並將其用作其他操作的輸入。例如,如果對基本關係的兩個選擇操作後面跟著一個聯接操作,則每個 SELECT 操作建立的元組將被饋送到流或管道中並用作聯接過程的輸入。
以上是使用管道組合操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!