Gérer l’actualisation des tables dynamiques

L’actualisation des tables dynamiques peut être contrôlée à l’aide des opérations suivantes :

Tâche

Description

Suspendre

Suspendre les actualisations d’une table dynamique.

Reprendre

Reprendre les actualisations d’une table dynamique suspendue.

Actualiser manuellement

Déclencher l’actualisation manuelle d’une table dynamique.

Modifier la latence d’une table dynamique

Modifier ou spécifier la latence d’une table dynamique.

Les tables dynamiques peuvent être suspendues automatiquement. Pour plus d’informations, voir Présentation du comportement de la suspension automatique plus loin dans cette rubrique.

Le diagramme suivant illustre les opérations de suspension, de reprise et d’actualisation manuelle dans le contexte des relations en amont et en aval avec d’autres tables dynamiques.

Relationship between dynamic tables. Used to help explain suspend, resume, and manual refresh.

Le diagramme représente un pipeline de données déclaratif simple construit avec des tables dynamiques. La table dynamique DTRoot est le point de départ du pipeline. Comme l’eau qui coule dans un ruisseau, les données d’un pipeline de table dynamique s’écoulent de la racine vers l’aval, en direction de la table dynamique feuille DTEnd :

  • DT2 est décrite comme en aval de DT1 parce qu’elle dépend de cette table dynamique, et comme en amont de DT3, qui en dépend.

  • DT3 est en aval de DT2 et DT1, car elle dépend directement de DT2 et indirectement de DT1.

  • DT1 est directement ou indirectement en amont des autres tables dynamiques.

Suspendre

L’action « Suspendre » arrête, ou suspend les actualisations, sur une table dynamique.

Important

La suspension se répercute sur les tables dynamiques en aval.

Dans le diagramme des relations, la suspension de DT1 entraînerait la suspension de DT2, ce qui entraînerait la suspension de DT3.

Pour obtenir des informations sur l’affichage de l’état des tables dynamiques, consultez Notes sur l’utilisation.

  • Pour suspendre l’actualisation d’une table dynamique :

    ALTER DYNAMIC TABLE <name> SUSPEND;
    
    Copy

Pour connaître la syntaxe complète de la commande ALTER DYNAMIC TABLE, voir ALTER DYNAMIC TABLE.

Reprendre

L’action « Reprendre » redémarre, ou reprend, les actualisations d’une table dynamique.

Important

La reprise se répercute sur les tables dynamiques en aval qui ne sont pas suspendues manuellement.

Dans le diagramme des relations, la reprise de DT1 entraînerait également la reprise de DT2, qui entraînerait la reprise de DT3.

Seules les tables dynamiques implicitement suspendues sont reprises de cette manière. Les tables dynamiques suspendues manuellement ne sont pas reprises lorsqu’une table dynamique en amont est reprise.

Pour obtenir des informations sur l’affichage de l’état de la table dynamique, voir Répertorier les tables dynamiques et afficher des informations sur une table dynamique.

  • Pour reprendre l’actualisation d’une table dynamique :

    ALTER DYNAMIC TABLE product RESUME;
    
    Copy

Actualiser manuellement

Déclencher manuellement une actualisation dynamique des tables.

Important

L’actualisation manuelle se répercute sur toutes les tables dynamiques en amont.

Dans le diagramme des relations, l’actualisation manuelle de DT3 entraîne également l’actualisation de DT2, qui entraîne à son tour l’actualisation de DT1.

  • Pour actualiser manuellement une table dynamique :

    ALTER DYNAMIC TABLE <name> REFRESH;
    
    Copy

Modifier la latence d’une table dynamique

Lorsqu’une table dynamique est basée sur d’autres tables dynamiques, vous pouvez spécifier TARGET_LAG = DOWNSTREAM. En spécifiant DOWNSTREAM, une table dynamique est actualisée en fonction de la latence des tables dynamiques situées en aval.

Pour plus de détails et des exemples de Comprendre la latence cible, consultez TARGET_LAG = DOWNSTREAM.

  • Spécifiez la latence DOWNSTREAM pour une table dynamique :

    ALTER DYNAMIC TABLE <name> SET TARGET_LAG = DOWNSTREAM;
    
    Copy

Lorsqu’une table dynamique doit être actualisée périodiquement pour maintenir un niveau spécifique d’actualisation, vous pouvez spécifier TARGET_LAG = {num} { seconds | minutes | hours | days }

ALTER DYNAMIC TABLE <name> SET TARGET_LAG = '1 hour';
Copy

Présentation du comportement de la suspension automatique

Note

Une table dynamique est suspendue si le système observe cinq erreurs continues d’actualisation. Les tables dynamiques suspendues en raison d’erreurs d’actualisation sont communément appelées suspendues automatiquement car elles sont suspendues par le système et non par une action de l’utilisateur.

Toutes les tables dynamiques qui dépendent de la table dynamique suspendue sont également suspendues. SCHEDULING_STATE décrit l’état actuel d’une table dynamique.

  • Pour voir l’état de planification de la table dynamique, appelez la fonction de table DYNAMIC_TABLE_GRAPH_HISTORY et examinez la colonne SCHEDULING_STATE.