Définir le lieu d'exécution de l'UDTF

Le système invoque les UDTF soit sur l'hôte, soit sur une SPU, soit sur toutes les SPU, à la discrétion de l'optimiseur. Lorsque vous créez ou modifiez l'UDTF, vous pouvez spécifier à l'optimiseur le lieu d'exécution préféré de l'UDTF.

Si vous enregistrez l'UDTF comme PARALLEL ALLOWED, la fonction de table peut être invoquée soit sur l'hôte, soit sur une SPU. L'optimiseur choisit le lieu sur la base de ses calculs pour une performance optimale. En général, si vous spécifiez PARALLEL ALLOWED et que vous utilisez des arguments non littéraux, l'UDTF s'exécute sur le SPU. Si vous enregistrez la fonction comme PARALLEL NOT ALLOWED (ou --noparallel pour la commande 'nzudxcompile ), le système invoque l'UDTF sur l'hôte ou sur une seule SPU, mais pas sur toutes les SPU. Le comportement par défaut est PARALLEL ALLOWED.

Une fonction de table non corrélée (avec tous les arguments littéraux) s'exécute toujours sur l'hôte car, dans le cas contraire, la requête peut avoir un comportement incohérent. Le résultat variera en fonction du nombre de tranches de données.