Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выбор только сегодняшних дат или как использовать индекс / 3 сообщений из 3, страница 1 из 1
10.09.2001, 03:19
    #32013723
Павел
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор только сегодняшних дат или как использовать индекс
Для выбора сегодняшней даты использую WHERE DATEDIFF(Day, Event_date, GETDATE()) = 0
По полю Event_date есть не уникальный не кластерный индекс, но оптимизатор его не использует. Как задать условие, чтобы индекс начал использоваться?
...
Рейтинг: 0 / 0
10.09.2001, 04:39
    #32013726
Osya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор только сегодняшних дат или как использовать индекс
Оптимизатор не может посчитать селективность по функции. Используй прямое указание индекса.
SELECT * FROM Table (INDEX=IndexName) WHERE DATEDIFF(Day, Event_date, GETDATE()) = 0
...
Рейтинг: 0 / 0
10.09.2001, 04:55
    #32013727
Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор только сегодняшних дат или как использовать индекс
Насколько я понимаю, индекс начнет работать только если указывать имя поля в условии без каких-то функуий
что-то типа
WHERE Event_date between dateadd convert(datetime,convert(char(10),GETDATE(),120)) and convert(datetime,convert(char(10),GETDATE(),120)+' 23:59:59.99')
для версии MS SQL 7.0 и далее

Или что-нибудь другое в зависимости от вкуса.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выбор только сегодняшних дат или как использовать индекс / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]