5
나는 공간 인덱스를 사용하고 난 WHERE
문을 실행하려고하면오류
WHERE T.GEOMETRY.STIntersects(O.GEOMETRY) = 1 AND T.GEOMETRY.STTouches(O.GEOMETRY) = 0
그것은 잘 작동하지만 내가 할 때와 실행하거나 :
WHERE T.GEOMETRY.STOverlaps(O.GEOMETRY) = 1 OR T.GEOMETRY.STWithin(O.GEOMETRY) = 1
The query processor could not produce a query plan for a query with a spatial index hint. Reason: Could not find required binary spatial method in a condition. Try removing the index hints or removing SET FORCEPLAN.
어떤 도움이 문에 문제가 무엇 :
나는이 오류가?
따라서 오류 메시지는 공간 색인 힌트를 암시합니다. "index (idx_spatial)"를 사용하여 "from tbl"과 같은 작업을 수행하여 옵티 마이저의 손을 강제 실행하려고합니까? –
예, "FROM TABLE WITH (INDEX (spatial_index))"를 사용하고 있습니다. 이 오류를 이해할 수 없으며 OR이 아닌 AND와 함께 작동하는 이유는 무엇입니까? – Nenad
잘 모르겠지만 서버는 일반적으로하는 일을 회피하려는 시도에 분명히 분노하고 있습니다. 인덱스 힌트를 버리십시오. 일반적으로 자신이 수행하는 작업을 실제로 알 때 (즉, 신참이라고 말하면서도 옵티마이 저보다 더 똑똑한 사람은 드뭅니다) 예약 된 것입니다. –