C'è un modo per verificare l'uguaglianza matematica di due istruzioni SQL?
Ho due istruzioni SQL:
- SQL_STATEMENT_1
- SQL_STATEMENT_2
Eseguire entrambe le istruzioni sui dati e confrontare l'output non aiuta affatto.
La matematica impostata dietro le affermazioni deve essere valutata, come fa un risolutore di equazioni.
Fuori dalla portata della mia domanda ci sono cose come:
- confronti diversi dall'uguaglianza (maggiore di, minore di, COME, ...)
- stored procedure o trigger
- Espressioni di tabella comuni (WITH)
Nel campo di applicazione:
- Sottoselezioni: WHERE other_id IN (SELEZIONA ID DA altro DOVE ...)
- SI UNISCE
select * from foo where id = 4
avrà sicuramente lo stesso piano di esecuzione diselect * from foo where id = 2
select * from foo where id = 4
e select * from foo where id = 2
avere due diversi piani di esecuzione se 1) le statistiche dell'indice non sono aggiornate e 2) anche se le statistiche dell'indice sono aggiornate, la distribuzione chiave dell'id è sbilanciata (purché l'id non sia una chiave univoca).