Diagnostic des problèmes courants liés à l’actualisation des tables dynamiques¶
Ce sujet aborde les solutions de dépannage des tables dynamiques qui ne s’actualisent pas comme prévu :
Certaines actions peuvent être restreintes en raison de limitations concernant l’utilisation de tables dynamiques ou si vous ne disposez pas des privilèges nécessaires. Pour plus d’informations, voir Limites des tables dynamiques et Contrôle de l’accès aux tables dynamiques.
Si vous rencontrez un problème qui n’est pas répertorié ici, contactez le support Snowflake.
Problème |
Solution |
---|---|
Ma table dynamique utilise une actualisation complète au lieu d’une actualisation incrémentielle. |
Le mode d’actualisation d’une table dynamique est déterminé au moment de la création et est immuable par la suite. S’il n’est pas spécifié explicitement, le mode d’actualisation est par défaut Pour un comportement cohérent entre les versions de Snowflake, définissez explicitement le mode d’actualisation de toutes les tables dynamiques. Par exemple, si vous souhaitez que vos tables dynamiques soient actualisées uniquement de manière incrémentielle, vous devez définir explicitement le mode d’actualisation sur En utilisant un rôle doté des privilèges nécessaires, vous pouvez vérifier le mode d’actualisation à l’aide de l’une des méthodes suivantes :
|
L’actualisation incrémentielle de ma table dynamique est lente. |
Les performances d’actualisation d’une table dynamique reposent sur des hypothèses spécifiques concernant la charge de travail ou les données qu’elle traite. Utilisez Refresh History pour voir la variance ou repérer les valeurs aberrantes :
|
Ma table dynamique exécute une actualisation vide, mais je vois un coût. |
Les actualisations qui ne produisent aucune nouvelle ligne nette (c’est-à-dire aucune ligne ajoutée, mise à jour ou supprimée) consomment des ressources de l’entrepôt lorsqu’elles sont associées à des changements dans l’un des objets en amont référencés par la table dynamique. Par exemple, si l’entrepôt virtuel associé est suspendu et qu’aucun changement dans les objets de base n’est identifié, l’entrepôt virtuel suspendu ne reprend pas et aucun crédit n’est consommé. C’est ce que l’on appelle une actualisation NO_DATA. Inversement, si des changements sont identifiés, l’entrepôt virtuel est automatiquement repris pour traiter les mises à jour, ce qui consomme des ressources de l’entrepôt même si le résultat net est zéro ligne appliquée à la table dynamique. Si vous constatez un coût alors que vous n’avez apporté aucune modification à votre table dynamique, cela peut être dû à une modification de votre table source. Vous pouvez utiliser l’onglet Refresh History dans Snowsight pour vérifier si les crédits de l’entrepôt virtuel ont été consommés :
Pour plus d’informations, voir Compréhension du coût des tables dynamiques. |
Ma table dynamique se réinitialise. |
Il se peut que votre table dynamique se réinitialise pour l’une des raisons suivantes :
Pour des informations générales sur l’initialisation, voir Compréhension de l’initialisation des tables dynamiques. |