Teradata
如何強制 Teradata 在記憶體中創建表?
Teradata 有一個“智能”記憶體引擎,可以根據使用情況將一些數據動態載入到記憶體中。
如何強制它一直在記憶體中創建或儲存表?
您的問題的答案以及有關 Teradata 智能記憶體 (TIM) 的其他資訊可以在關於 Teradata 智能記憶體的橙皮書中找到。附錄中還有一些 SQL 範例,用於查詢 Teradata 以驗證特定表的溫度。
請注意,一般建議不要將數據直接載入為“非常熱”,而是“熱”並讓 TVS 然後處理溫度特性。否則冷卻可能是個問題。
要直接回答您的問題,有 3 個選項:
- 等待並訪問表,直到 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 不會感到好笑。查詢帶受到限制是有原因的……