Как я могу ускорить этот Sql Server Spatial запрос? [закрыто]

У меня есть (что я думаю) простой пространственный запрос Sql Server:

Возьмите все штаты США, которые существуют внутри какого-то четырехстороннего многоугольника (т. Е. Область просмотра / ограничивающую рамку карты google / bing веб-страницы)

SELECT CAST(2 AS TINYINT) AS LocationType, a.Name AS FullName, 
    StateId, a.Name, Boundary.STAsText() AS Boundary, 
    CentrePoint.STAsText() AS CentrePoint
FROM [dbo].[States] a
WHERE @BoundingBox.STIntersects(a.Boundary) = 1

Запуск занимает 6 секунд :(

Вот план выполнения ....

Удалены

И статистика по работе фильтра ...

Удалены

Теперь я просто не знаю, как отлаживать это ... чтобы выяснить, что мне нужно для точной настройки и т. Д. У меня есть пространственные индексы? Я так считаю ...

/****** Object:  Index [SPATIAL_States_Boundary]    
        Script Date: 07/28/2010 18:03:17 ******/
CREATE SPATIAL INDEX [SPATIAL_States_Boundary] ON [dbo].[States] 
(
    [Boundary]
)USING  GEOGRAPHY_GRID 
WITH (
    GRIDS =(LEVEL_1 = HIGH,LEVEL_2 = HIGH,LEVEL_3 = HIGH,LEVEL_4 = HIGH), 
    CELLS_PER_OBJECT = 1024, PAD_INDEX  = OFF, SORT_IN_TEMPDB = OFF, 
    DROP_EXISTING = OFF, ALLOW_ROW_LOCKS  = ON, 
    ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO

Нужно ли предоставлять дополнительную информацию оGEOGRAPHY данные, которые возвращаются? например. количество баллов и т.д? Или мне нужно бежатьprofiler и дать какую-то статистику оттуда?

Или мои Cells_per_object / Grids установлены неправильно (я действительно понятия не имею, что я должен установить эти значения, TBH).

Может кто-нибудь, пожалуйста, помогите? Пожалуйста?

UPDATE / EDIT:

После первого ответа от @Bobs ниже, подтверждающего, что пространственный индекс не используется, потому что первичный ключ (кластеризованный индекс) будет быстрее, чем некластеризованный индекс в таблице с 50 нечетными строками ... Затем я попытался форсировать Пространственный индекс (для shits-n-giggles): -

SELECT CAST(2 AS TINYINT) AS LocationType, a.Name AS FullName, 
    StateId, a.Name, Boundary.STAsText() AS Boundary, 
    CentrePoint.STAsText() AS CentrePoint
FROM [dbo].[States] a WITH (INDEX(SPATIAL_States_Boundary))
WHERE @BoundingBox.STIntersects(a.Boundary) = 1

... и угадайте, что .. запрос выполняется мгновенно.

WTF? Кто-нибудь еще знает почему? Нужно ли публиковать план запроса для этого, чтобы также объяснить, почему / что?

Ответы на вопрос(2)

Ваш ответ на вопрос