¿Hay alguna manera de verificar la igualdad matemática de dos declaraciones SQL?
Tengo dos declaraciones SQL:
- SQL_STATEMENT_1
- SQL_STATEMENT_2
Ejecutar ambas declaraciones en los datos y comparar la salida no ayuda en absoluto.
Es necesario evaluar las matemáticas detrás de las declaraciones, como lo hace un solucionador de ecuaciones.
Fuera del alcance de mi pregunta hay cosas como:
- comparaciones distintas a la igualdad (mayor que, menor que, COMO, ...)
- procedimientos almacenados o desencadenantes
- Expresiones de tabla comunes (CON)
En la mira:
- Subselecciones: WHERE other_id IN (SELECCIONAR ID de otro WHERE ...)
- UNIONES
select * from foo where id = 4
seguramente tendrá el mismo plan de ejecución queselect * from foo where id = 2
select * from foo where id = 4
y select * from foo where id = 2
tener dos planes de ejecución diferentes si 1) las estadísticas del índice no están actualizadas y 2) incluso si las estadísticas del índice están actualizadas, la distribución clave de id es desigual (El ID proporcionado no es una clave única).