试图了解所有 SQL 可用于结果缓存。
考虑多个脚本从一个大表中提取数据,然后执行不同的操作。 如果我们在应用所有脚本中使用的通用过滤器后使用 BIG 表创建一个易失性表,为什么这不使用结果缓存。考虑到 BIG 表数据不会改变。
在下面的示例中,Script1 Step 1 将使用 Compute。其他脚本中的相同步骤是使用 Compute 还是使用 Result Cache
脚本 1: 第 1 步:创建易失性表 VT_TEST (SELECT COL1,COL2 FROM BIG_TABLE WHERE CODE='TEST')
第 2 步:更新 VT_TEST SET COL1='TEST1'
脚本2: 第 1 步:创建易失性表 VT_TEST (SELECT COL1,COL2 FROM BIG_TABLE WHERE CODE='TEST')
第 2 步:更新 VT_TEST SET COL1='TEST2'
脚本: 第 1 步:创建易失性表 VT_TEST (SELECT COL1,COL2 FROM BIG_TABLE WHERE CODE='TEST')
第 2 步:更新 VT_TEST SET COL1='TESTn'
答案 0 :(得分:1)
答案是可能的。在讨论结果集缓存重用的文档部分中,它列出了使用结果集缓存必须满足的七个条件。如果满足所有七项,则可以使用结果集缓存,但不能保证。
如果要保证Snowflake使用结果集缓存,可以使用result_scan表函数:
server = new ChatServer(...)
在很多情况下,也许是大多数情况下,您根本不需要创建易失性表。您可以简单地执行返回行的查询,并在 24 小时内重复使用结果集缓存中的结果。换句话说,与其像选择一样执行插入,不如简单地执行选择并获取查询 ID。然后,您可以在 24 小时内使用结果集缓存中的结果。