한 행의 표를 만들지 만 동일한 행이없는 데카르트 곱을 수행해야합니다. 지금 가지고 있습니다 :데카르트 곱을 최적화하는 방법
select *
From T_Car C1
Join T_Car C2 On C1.CarID <> C2.CarID
그러나 1300 개의 행이있는 T_Car 테이블의 경우 거의 2 분이 걸립니다. OPTION (HASH JOIN) 및 OPTION (MERGE JOIN)을 사용하려고 시도했지만 오류가 발생했습니다.
이 쿼리에 정의 된 힌트로 인해 쿼리 프로세서에서 쿼리 계획을 생성 할 수 없습니다. 힌트를 지정하지 않고 SET FORCEPLAN을 사용하지 않고 조회를 다시 제출하십시오.
이 쿼리를 최적화 할 수 있습니까?
반환 할 결과가 얼마나 괴롭히는 지 알고 계십니까? (내가 잘못하지 않는다면 행 수가 169 만개가된다.) 확실한 최적화는 다음과 같다. – delnan
@delnan, where 절이 있는데, 나는 그것이 단지 1,687,400 일 것이라고 믿습니다 :-). 왜 카티 전 곱 (Cartesian product)을하고 싶습니까? 아마 당신의 문제에 대한 더 나은 해결책이있을 것입니다. – Ben
@Ben 나는 원래 그것을 설명했다. 그러나 대부분의 반올림 방법으로 결과는 그대로 유지된다.) – delnan