Czy istnieje sposób sprawdzenia równości matematycznej dwóch instrukcji SQL?
Mam dwie instrukcje SQL:
- SQL_STATEMENT_1
- SQL_STATEMENT_2
Uruchamianie obu instrukcji na danych i porównywanie danych wyjściowych wcale nie pomaga.
Zestaw matematyki za wyrażeniami musi zostać oceniony, podobnie jak solver równań.
Poza zakresem mojego pytania są takie rzeczy jak:
- porównania inne niż równość (większa niż, mniejsza niż LIKE, ...)
- procedury składowane lub wyzwalacze
- Typowe wyrażenia tabelowe (Z)
W zakresie:
- Wybiera: WHERE other_id IN (WYBIERZ id z innego GDZIE ...)
- ŁĄCZY
select * from foo where id = 4
z pewnością będzie miał taki sam plan wykonania jakselect * from foo where id = 2
select * from foo where id = 4
i select * from foo where id = 2
mieć dwóch różnych planów wykonania jeśli statystyki 1) indeks nie są up-to-date i 2) nawet jeśli statystyki indeksu są up-to-date, klucz podziału id jest koślawe (podany identyfikator nie jest unikalnym kluczem).