Existe-t-il un moyen de vérifier l'égalité mathématique de deux instructions SQL?
J'ai deux instructions SQL:
- SQL_STATEMENT_1
- SQL_STATEMENT_2
L'exécution des deux instructions sur les données et la comparaison de la sortie n'aident pas du tout.
Les mathématiques définies derrière les instructions doivent être évaluées, comme le fait un solveur d'équations.
Hors de la portée de ma question sont des choses comme:
- comparaisons autres que l'égalité (supérieure à, inférieure à, LIKE, ...)
- procédures stockées ou déclencheurs
- Expressions de table communes (AVEC)
Dans le cadre:
- Sous-sélection: WHERE other_id IN (SELECT id FROM other WHERE ...)
- SE JOINT
select * from foo where id = 4
aura très certainement le même plan d'exécution queselect * from foo where id = 2
select * from foo where id = 4
et select * from foo where id = 2
d'avoir deux plans d'exécution différents si 1) les statistiques d'index ne sont pas à jour et 2) même si les statistiques d'index sont à jour, la distribution de clé d'id est déséquilibrée (l'id fourni n'est pas une clé unique).