動的テーブルのリフレッシュに関する一般的な問題の診断¶
このトピックでは、動的テーブルが期待どおりに更新されない場合のトラブルシューティングの解決策について説明します。
動的テーブルの使用に関する制限や、必要な権限がない場合、一部の操作が制限されることがあります。詳細については、 動的テーブルの制限 および 動的テーブルのアクセス制御 をご参照ください。
ここに記載されていない問題が発生した場合は、 Snowflakeサポート までお問い合わせください。
問題 |
解決策 |
---|---|
動的テーブルは増分リフレッシュではなくフルリフレッシュを使用しています。 |
動的テーブルの実際の リフレッシュモード は作成時に決定され、その後は不変です。明示的に指定されない場合、リフレッシュモードのデフォルトは Snowflakeのリリース間で一貫した動作を維持するには、すべての動的テーブルで明示的にリフレッシュモードを設定する必要があります。たとえば、動的テーブルを増分的にのみリフレッシュさせたい場合は、作成時にリフレッシュモードを明示的に 必要な権限 を持つロールを使用して、以下のいずれかの方法でリフレッシュモードを検証できます。
|
動的テーブルの増分リフレッシュが遅いようです。 |
動的テーブルのリフレッシュパフォーマンスは、そのテーブルが扱うワークロードやデータに関する特定の仮定に依存します。 Refresh History を使用して、分散を表示したり、外れ値を検出します。
|
動的テーブルが空のリフレッシュを実行していますが、コストが表示されています。 |
動的テーブルが参照する上流オブジェクトの変更に関連する場合、正味の新しい行がゼロ(つまり、追加、リフレッシュ、削除された行がゼロ)のリフレッシュはウェアハウスリソースを消費します。 たとえば、関連する仮想ウェアハウスが中断され、ベースオブジェクトの変更が識別子で確認されない場合、中断された仮想ウェアハウスは再開されず、クレジットも消費されません。これは、 NO_DATA リフレッシュと呼ばれています。逆に、変更が識別された場合、更新を処理するために仮想ウェアハウスが自動的に再開され、その結果、動的テーブルに適用される行がゼロであってもウェアハウスのリソースが消費されます。 動的テーブルに変更を加えていないにもかかわらずコストが表示される場合は、ソーステーブルの変更が原因である可能性があります。 Snowsight の Refresh History タブを使用して、仮想ウェアハウスのクレジットが消費されたかどうかを確認できます。
詳細については、 動的テーブルのコストを理解する をご参照ください。 |
動的テーブルが再初期化されています。 |
動的テーブルが再初期化されるのは、以下のいずれかの原因が考えられます。
初期化に関する一般的な情報については、 動的テーブル初期化の理解 をご参照ください。 |