簡體   English   中英

可記憶的函數 - Snowflake

[英]Memoizable functions - Snowflake

當查詢INFORMATION_SCHEMASHOW FUNCTION ,我們可以找到一列IS_MEMOIZABLE

SELECT IS_MEMOIZABLE, *
FROM INFORMATION_SCHEMA.FUNCTIONS;

內置的 function 都不是可記憶的:

SHOW BUILTIN FUNCTIONS;

SELECT "is_memoizable", *
FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))
WHERE "is_memoizable" <> 'N';
-- 0 rows

記憶化

在計算中,記憶化或記憶化是一種優化技術,主要用於通過存儲昂貴的 function 調用的結果並在再次出現相同輸入時返回緩存的結果來加速計算機程序。

問題是如何創建用戶定義的 function,其IS_MEMOIZABLE屬性等於“Y”(真)?

是否需要任何特定關鍵字和/或它是否適用於特定類型的函數(外部/Python/Java/不可變/...)?

Memoizable 函數是即將推出的功能。

它現在不可用,但一旦您可以使用它,您可能會在以下位置找到文檔:

可記憶的 UDF

標量 SQL UDF 可以記憶。 可記憶的 function 緩存調用標量 SQL UDF 的結果,然后在稍后需要 output 時返回緩存的結果。 使用 memoizable function 的好處是可以提高復雜查詢的性能,例如行訪問策略或屏蔽策略中引用的映射表中的多列查找。

您可以通過指定MEMOIZABLE關鍵字在 CREATE FUNCTION 語句中定義一個標量 SQL UDF 可記憶。 Memoizable 函數不包括 arguments。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM