Question

Nous avons 15 tables de piste de vérification qui doivent être combinés pour rechercher des ajustements d'inventaire avec certains critères seulement.

Est-il préférable de faire un UNION ALL avec toutes les tables, puis filtrer les critères, ou de jeter les critères dans le mélange sur chaque table avant de faire une UNION ALL?

Chaque table est seulement quelques milliers de dossiers et la liste filtrée finale est généralement inférieure à un millier, qui est sortie pour les rapports.

Une application génère les tables foxpro et nous avons peu de contrôle de la conception de base de données sur cette fin.

Était-ce utile?

La solution

Il est généralement une bonne pratique pour réduire le nombre de lignes le plus tôt possible dans la requête, ce qui signifie filtrer chaque requête plutôt que de filtrer l'ensemble de résultats unis. Il y a des chances de votre UNION ALL jeu entraînera une table temporaire en cours de création si vous filtrez après unir, et ce n'est pas le meilleur si vos tables sont grandes (je veux dire ... grand ).

Je pense que nous pouvons accepter une exception à la « bonne pratique générale » ci-dessus ... Dans les cas où les filtres ayant un seul point améliore grandement la lisibilité / maintenabilité de la requête. (Et les avantages dépassent la perte potentielle).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top