2012-06-06 9 views
1

Поддерживает ли функция Microsoft StCrosses() данные географии Spatial Index?Использование STCrosses() с пространственным индексом в SQL Server

Когда я пытаюсь выполнить эту функцию с помощью пространственного индекса, я получаю сообщение об ошибке:.

«Процессор запросов не удалось создать план запроса для запроса с пространственным индексом намеком Причина: Пространственные индексы не поддерживают имя метода поставляется в предикате. Попробуйте удалить индексные подсказки или удаления SET FORCEPLAN»

ответ

2

No.

Индексация пространственных данных является нетривиальной, а класс вы обсуждаете может содержать сколь угодно сложные фигуры, а не только простые геометрические формы. Конкретный способ формирования и индексации реализуется, может затруднить или затруднить обнаружение перекрытий в общем случае. Он также не основан на том, что индексируется пространственными данными для сложных геометрий. Возможно, поэтому вы не можете требовать, чтобы SQL использовал только индекс - там не хватает данных. В вырожденном случае может быть, но он не знал бы этого, поэтому он отключается.

Представьте себе звездообразную форму со сложными вещами, встроенными в нее. Индекс может хранить только границу внешнего shpe или центра фигуры или ограничивающего прямоугольника. Ничего из этого не было бы достаточно, чтобы вычислить пересечение двух фигур или если формы фактически перекрываются.

См. http://msdn.microsoft.com/en-us/library/bb895265.aspx#geometry, чтобы подтвердить, что он не поддерживается.

+0

Mangeim Спасибо, мужчина! – Nenad