Teradata

如何強制 Teradata 在記憶體中創建表?

  • January 9, 2016

Teradata 有一個“智能”記憶體引擎,可以根據使用情況將一些數據動態載入到記憶體中。

如何強制它一直在記憶體中創建或儲存表?

您的問題的答案以及有關 Teradata 智能記憶體 (TIM) 的其他資訊可以在關於 Teradata 智能記憶體的橙皮書中找到。附錄中還有一些 SQL 範例,用於查詢 Teradata 以驗證特定表的溫度。

請注意,一般建議不要將數據直接載入為“非常熱”,而是“熱”並讓 TVS 然後處理溫度特性。否則冷卻可能是個問題。

要直接回答您的問題,有 3 個選項:

  1. 等待並訪問表,直到 TVM 看到數據“非常熱”。如果正常的查詢特徵經常訪問表,則表很可能會被載入到記憶體中並留在那裡。

2)使用查詢帶強制它“非常熱”

SET QUERY_BAND='TVSTEMPERATURE_PRIMARY=VERYHOT;' FOR SESSION;

但是,您需要訪問宏 DBC.VHCTRL()。否則 TD 會默默地將您的數據設置為“熱”。

3)使用雪貂:

> force "ADW_DB.INVOICE" P TEMPERATURE=VERYHOT
force "ADW_DB.INVOICE" P TEMPERATURE=VERYHOT
FORCE command changed the temperature of table ADW_DB.INVOICE
to VERY-HOT.
The temperature of 638 cylinders have been changed to VERY-HOT.

另請注意,如果您在生產環境中突然在 TIM 中載入一個巨大的表,從而迫使其他數據不駐留在 TIM 中,那麼 DBA 不會感到好笑。查詢帶受到限制是有原因的……

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