Maison  >  Article  >  base de données  >  Utiliser des pipelines pour combiner les opérations

Utiliser des pipelines pour combiner les opérations

PHPz
PHPzavant
2023-09-04 19:29:02653parcourir

Utiliser des pipelines pour combiner les opérations

Dans un workflow DSS, le pipeline SQL est le processus de mélange de plusieurs recettes ultérieures (chacune utilisant le même moteur SQL). Une seule activité de travail contenant ces recettes intégrées (peut-être des recettes visuelles et des recettes de requête SQL) peut ensuite être exécutée.

En général, les requêtes SQL sont converties en expressions d'algèbre relationnelle, une série d'opérations relationnelles. Si nous effectuions seulement une opération à la fois, cela entraînerait des coûts trop élevés car nous aurions besoin de créer des fichiers temporaires sur le disque pour stocker les résultats de ces opérations temporaires. Des fichiers temporaires volumineux doivent être créés et stockés sur disque, mais cela prend du temps et n'est généralement pas nécessaire puisque le processus suivant utilisera ces fichiers immédiatement comme entrée. Il est courant de générer du code d'exécution de requête qui correspond à des algorithmes pour des combinaisons spécifiques d'opérations dans la requête afin de réduire le nombre de fichiers temporaires.

Exemple

Par exemple, une méthode avec deux fichiers d'entrée et un fichier de sortie pourrait effectuer une opération JOIN et deux SELECT sur les fichiers d'entrée, ainsi qu'une opération PROJECT finale sur le fichier de résultat, plutôt que d'implémenter chacune de ces opérations individuellement. Au lieu de créer quatre fichiers temporaires, nous appliquons la méthode et obtenons un seul fichier résultant. Pipelining ou traitement par flux sont les termes utilisés à cette fin.

Conclusion

Afin d'effectuer un grand nombre d'opérations, il est courant de générer dynamiquement du code d'exécution de requêtes. Les requêtes sont générées en créant du code contenant de nombreux algorithmes correspondant à différents processus. Une fois qu'une opération est effectuée, le tuple résultant est généré et utilisé comme entrée pour d'autres opérations. Par exemple, si deux opérations SELECT sur une relation de base sont suivies d'une opération JOIN, les tuples créés par chaque opération SELECT seront introduits dans un flux ou un pipeline et utilisés comme entrée dans le processus JOIN.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer