ハブに戻る
FAQ

Snowflake シーケンス FAQ

メインガイドページに載っていない、Snowflake の SEQUENCE オブジェクトに関する追加のよくある質問。

シーケンスの使用に必要な権限は?

NEXTVAL を呼び出すには、シーケンスへの USAGE 権限が必要です。シーケンスの作成・変更には、CREATE SEQUENCE またはスキーマの所有権が必要です。シーケンスは他のスキーマオブジェクトと同様に、スキーマレベルの付与を継承します。

Snowflake のシーケンスキャッシュはどう動きますか?

Snowflake はデフォルトでシーケンス値をキャッシュします(キャッシュサイズ 20)。これにより高頻度の NEXTVAL 呼び出しのパフォーマンスが向上します。キャッシュされた値はサーバー再起動時に失われ、大きなギャップが生じます。ギャップを最小化したい場合は NO CACHE を設定しますが、パフォーマンスは犠牲になります。

シーケンスを特定の値にリセットできますか?

ALTER SEQUENCE seq_name SET VALUE = n でリセットできます。次の NEXTVAL 呼び出しは n + increment を返します。あるいは、新しい START 値でシーケンスを CREATE OR REPLACE することで完全にリセットできます。

シーケンスはトランザクションセーフですか?

NEXTVAL の呼び出しはトランザクションではありません。一度消費された値は、トランザクションがロールバックされても再発行されません。ギャップが生じる可能性がある代わりに、一意性が保証されます。

関連ページ