powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Оптимизмровать запрос
14 сообщений из 14, страница 1 из 1
Оптимизмровать запрос
    #35126101
faustt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет. Помогите оптимизировать запрос. Этот очень долго отрабатывает, можно ли написать както по другому? Суть такова что у меня есть колонка где сидит Datetime, и мне нужно выбрать из нее записи по дате, не обращая внимания на время.

SELECT *
FROM some_table
WHERE CONVERT(varchar, datetime_field, 102) like CONVERT(varchar, some_date, 102) + '%'
...
Рейтинг: 0 / 0
Оптимизмровать запрос
    #35126147
Гость@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
SELECT *
FROM some_table 
WHERE cast(datetime_field as D) = cast(some_date as D)
А что за база такая?
...
Рейтинг: 0 / 0
Оптимизмровать запрос
    #35126178
faustt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле, что за база такая?

По моему cast от convert по быстродействию не особо отличаются.
...
Рейтинг: 0 / 0
Оптимизмровать запрос
    #35126200
SELECT *
FROM some_table
WHERE CONVERT(varchar, datetime_field, 102) like CONVERT(varchar, some_date, 102) + '%'
Оптимизацией запросов на T-SQL занимаются в форуме по MS SQL
Тут
...
Рейтинг: 0 / 0
Оптимизмровать запрос
    #35126209
faustt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь. Чисто автоматически создал тему в Фоксовской ветке.
...
Рейтинг: 0 / 0
Оптимизмровать запрос
    #35126224
Гость@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. просто в VFP9в хэлпе не нашел функции CONVERT()
2. cast() все же стандарт SQL-я
3. ИМХО знак равенства быстрей обрабатывается, чем Like
4. просто попробуй :)
...
Рейтинг: 0 / 0
Оптимизмровать запрос
    #35126225
faustt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу модераторов закрыть эту тему в этой ветке.
...
Рейтинг: 0 / 0
Оптимизмровать запрос
    #35126240
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fausttПривет. Помогите оптимизировать запрос. Этот очень долго отрабатывает, можно ли написать както по другому? Суть такова что у меня есть колонка где сидит Datetime, и мне нужно выбрать из нее записи по дате, не обращая внимания на время.

SELECT *
FROM some_table
WHERE CONVERT(varchar, datetime_field, 102) like CONVERT(varchar, some_date, 102) + '%'
Судя по команде CONVERT, это у вас MS SQL. Не думаю, что хорошо сравнивать даты, переведя их в varchar.
Какой размер таблицы?
Есть ли индекс по полю datetime_field ?
Из нескольких вариантов я для себя выбрал сравнение через части даты:
Код: plaintext
1.
2.
DATEPART(yy, DDok) = DATEPART(yy, @data1) 
AND DATEPART(mm, DDok) = DATEPART(mm, @data1)
AND DATEPART(dd, DDok) = DATEPART(dd, @data1)
Вариант с LIKE самы плохой. Можно ведь и просто сравнить. Зачем LIKE ?
Код: plaintext
CONVERT(CHAR( 10 ), DDok,  104 ) = @data
С уважением, Алексей
...
Рейтинг: 0 / 0
Оптимизмровать запрос
    #35126321
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Оптимизмровать запрос
    #35126361
faustt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Индекса нету, ищу по вьюшке. Попродую Вашт предложенные варианты.
...
Рейтинг: 0 / 0
Оптимизмровать запрос
    #35126401
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мое предложение :)
Код: plaintext
1.
2.
3.
SELECT *
FROM some_table 
WHERE convert(char( 10 ),datetime_field, 102 ) = convert(char( 10 ),some_date, 102 )
...
Рейтинг: 0 / 0
Оптимизмровать запрос
    #35126609
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fausttИндекса нету, ищу по вьюшке. Попродую Вашт предложенные варианты.
А с чего вы взяли что если вы ищете по View, то индекс не будет использоваться, если он есть. Посмотрите план запроса.
С уважением, Алексей
...
Рейтинг: 0 / 0
Оптимизмровать запрос
    #35127133
faustt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey-K fausttИндекса нету, ищу по вьюшке. Попродую Вашт предложенные варианты.
А с чего вы взяли что если вы ищете по View, то индекс не будет использоваться, если он есть. Посмотрите план запроса.
С уважением, Алексей

Имел ввиду что индекса по этому полю нету. Есть какието подводные камни при добавлении индекса? У меня данная таблица много где используется, не хочу чтобу все полетело.
...
Рейтинг: 0 / 0
Оптимизмровать запрос
    #35127251
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
индекс может:
увеличить скорость исполнения запроса;
ни как не повлиять на его скорость;
замедлить занесение данных.
Все зависит от конкретной ситуации. По этому написана не одна статья.
Вроде можно создать виртуальный индекс. И смотреть по плану выполнения запроса ;)
Ссылку, где это все можно посмотреть я выше привел.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Оптимизмровать запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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