두 SQL 문의 수학적 동등성을 확인하는 방법이 있습니까?
두 개의 SQL 문이 있습니다.
- SQL_STATEMENT_1
- SQL_STATEMENT_2
데이터에 대해 두 명령문을 모두 실행하고 출력을 비교해도 전혀 도움이되지 않습니다.
계산식 솔버와 마찬가지로 명령문 뒤에 설정된 수학을 평가해야합니다.
내 질문의 범위를 벗어난 것은 다음과 같습니다.
- 평등 이외의 비교 (LIKE보다 크거나 작음, ...)
- 저장 프로 시저 또는 트리거
- 공통 테이블 표현식 (WITH)
범위에서 :
- 하위 선택 : WHERE other_id IN (다른 WHERE에서 ID 선택)
- 조인
select * from foo where id = 4
가장 확실하게 같은 실행 계획해야합니다select * from foo where id = 2
select * from foo where id = 4
하고 select * from foo where id = 2
1) 인덱스 통계가 최신의 2없는 경우 인덱스 통계가 최신 경우에도) 두 개의 서로 다른 실행 계획을 가지고, ID의 키 분배가 한쪽으로 기운 제공된 ID는 고유 키가 아닙니다.