Почему этот запрос быстрее без индекса?

Я унаследовал новую систему и пытаюсь внести некоторые улучшения в данные. Я пытаюсь улучшить эту таблицу и, похоже, не могу понять свои выводы.

У меня следующая структура таблицы:

CREATE TABLE [dbo].[Calls](
    [CallID] [varchar](8) NOT NULL PRIMARY KEY,
    [RecvdDate] [varchar](10) NOT NULL,
    [yr] [int] NOT NULL,
    [Mnth] [int] NOT NULL,
    [CallStatus] [varchar](50) NOT NULL,
    [Category] [varchar](100) NOT NULL,
    [QCall] [varchar](15) NOT NULL,
    [KOUNT] [int] NOT NULL)

В этой таблице около 220 тыс. Записей. Мне нужно вернуть все записи с датой больше указанной. В данном случае 01.12.2009. Этот запрос вернет около 66 тысяч записей, а его выполнение займет около 4 секунд. Из прошлых систем, над которыми я работал, это кажется высоким. Особенно с учетом того, как мало записей в таблице. Так что я хотел бы сократить это время.

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

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

Любая помощь приветствуется.

РЕДАКТИРОВАТЬ: Вот запрос, который я пытаюсь выполнить, и проверить скорость таблицы. Обычно я размещаю столбцы, но для простоты использовал *:

SELECT *
FROM _FirstSlaLevel_Tickets_New
WHERE TicketRecvdDateTime >= '12/01/2009'

РЕДАКТИРОВАТЬ 2: Итак, я упомянул, что пытался создать таблицу со столбцом даты, который содержал данные recvddate, но как дату, а не как varchar. Это столбец TicketRecvdDateTime в приведенном выше запросе. Исходный запрос, который я выполняю для этой таблицы:

SELECT *
FROM Calls
WHERE CAST(RecvdDate AS DATE) >= '12/01/2009'
5
задан spinon 29 November 2010 в 19:18
поделиться