Temporary-Tables

Teradata:臨時表與創建和刪除表

  • June 27, 2022

目前,我看到了一個 ETL 流程,其中使用者創建了用於儲存中間結果的表,然後在 ETL 流程結束時刪除這些表。

乍一看,我覺得這不是正確的做法,因為我一直都知道這應該通過臨時表來完成,但是當涉及到與使用者爭論為什麼他應該使用臨時表來進行推理時普通表(最後下降)我找不到任何理由。

臨時表通常具有以下優點:

  • 可以關閉對它們的 DML 操作的日誌記錄,從而減少系統上的 I/O 負載(在事務異常終止的情況下存在失去數據的風險)。
  • 臨時表中的數據僅對插入這些數據的會話可見,即使多個會話同時引用同一個全域臨時表;每個會話都有自己的臨時表的物化副本。這提高了處理敏感數據時的安全性。
  • 臨時表中的數據會在事務或會話結束時自動刪除,具體取決於表定義,從而使您不必手動執行此操作。此操作也不會被記錄(即再次減少 I/O)。

另一方面,與正常表相比,臨時表有一些功能限制(例如,可能不支持某些類型的約束),因此如果您的 ETL 流程需要此類功能,則不能使用它們。

引用自:https://dba.stackexchange.com/questions/313739