Teradata有一个“智能”内存引擎,它根据使用情况动态地将一些数据加载到内存中。
我如何强迫它一直在内存中创建或存储一个表?
发布于 2016-01-09 11:21:23
有关(TIM)的问题和其他信息的答案可以在关于的Orange图书中找到。另外,在附录中还有一些SQL示例,用于查询Teradata,以验证特定表的温度。
请注意,有一个一般的建议,不要直接加载数据为“非常热”,而是“热”,让电视然后处理温度特性。否则,降温可能是个问题。
要直接回答你的问题,有三种选择:
1)等待并访问表,直到TVM看到数据“非常热”为止。如果正常的查询特性经常访问该表,则该表很有可能加载到内存中并停留在那里。
2)使用queryband强迫它“非常热”。
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中加载了一个巨大的表,则DBA并不会感到好笑,这会迫使其他数据不驻留在TIM中。有一个原因可以解释为什么queryband被限制..。
https://dba.stackexchange.com/questions/125720
复制相似问题