Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите оптимизировать запрос  [new]
Guest991
Guest
Здравствуйте , уважаемые форумчане ! Можно ли как-то оптимизировать запрос.
CREATE TABLE Time(
[ID_Date] [int] NOT NULL,
[Date] [smalldatetime] NOT NULL

select ID_Date FROM Time
WHERE (Date <=(SELECT Date FROM Time WHERE (ID_Date = 2)))
18 май 11, 14:47    [10671710]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2793
Что вы понимаете под "оптимизировать": чтобы быстрее работало, или чтобы проще (понятнее, красивее) было написано?

Сколько записей возвращает подзапрос SELECT Date FROM Time WHERE (ID_Date = 2)?
18 май 11, 14:57    [10671813]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Guest991
Guest
Спасибо за то что откликнулись . Под оптимизировать понимаю и чтобы быстрее работало, а также чтобы решение было красиво и элегантно... Условие "ID_Date = 2" может иметь другое значение и в зависимости от этого возвращать разное количество строк. Мне почему-то кажется где-то на интуитивном уровне . что можно как-то иначе обыграть , более грамотно...
18 май 11, 15:03    [10671859]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
Guest991
Спасибо за то что откликнулись . Под оптимизировать понимаю и чтобы быстрее работало,

А сейчас этот запрос работает медленно ? И вы установили из-за чего конкртено медленно ?
18 май 11, 15:05    [10671868]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Guest991
Guest
Пардон , неверно Вам ответил запрос SELECT Date FROM Time WHERE (ID_Date= 2) всегда возвращает одну запись ID_Date уникальное значение
18 май 11, 15:05    [10671876]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Guest991
Guest
Нет не медленно . Просто есть ощущение , что существует более элегантное решение
18 май 11, 15:07    [10671891]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
"Более элегантное решение" называется сделать индекс по полю Date.
18 май 11, 15:08    [10671898]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Guest991
Guest
В этой таблице не так много записей, не более ста. Сделав индекс что -то изменится существенно?
18 май 11, 15:12    [10671926]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Guest991
В этой таблице не так много записей, не более ста. Сделав индекс что -то изменится существенно?
Тогда что мы оптимизируем? Количество букв в запросе?
18 май 11, 15:13    [10671941]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62908
Что тут оптимизировать, из пушки по воробьям, или работать не хочется - дай поотимизирую.
18 май 11, 15:17    [10671985]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Guest991
Guest
Ну может структурно как-то можно поменять?
18 май 11, 15:17    [10671992]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Guest991
Ну может структурно как-то можно поменять?
Поменять для чего?
18 май 11, 15:18    [10672002]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Guest991
Guest
Хочу знать существует ли другое красивое решение (другой путь).
18 май 11, 15:22    [10672028]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Guest991,

SELECT t.ID_Date
FROM TIME t
JOIN TIME t1 ON t.Date<=t1.Date
WHERE t1.ID_Date = 2
?
18 май 11, 15:22    [10672036]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
Guest991
Хочу знать существует ли другое красивое решение (другой путь).

Решение неизвестной задачи ?
18 май 11, 15:22    [10672038]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Guest991
Хочу знать существует ли другое красивое решение (другой путь).
Вы огласите сегодня ваши критерии красоты?
18 май 11, 15:23    [10672041]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Guest991
Guest
Glory
Решение неизвестной задачи ?

Почему не известной , я же написал составить запрос иначе , но получить тот же результат.
Гавриленко Сергей Алексеевич
Вы огласите сегодня ваши критерии красоты?

Если бы знал эти критерии, я бы Вас не спрашивал.

Вот человек kDnZP написал . Спасибо!
18 май 11, 15:35    [10672179]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Guest991
Glory
Решение неизвестной задачи ?

Почему не известной , я же написал составить запрос иначе , но получить тот же результат.
А вам все возможные варианты перечислить, что ли?
Guest991
Гавриленко Сергей Алексеевич
Вы огласите сегодня ваши критерии красоты?

Если бы знал эти критерии, я бы Вас не спрашивал.
Типа, чего я хочу, не знаю, придумайте за меня?

Сообщение было отредактировано: 18 май 11, 15:37
18 май 11, 15:36    [10672192]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
Guest991
Glory
Решение неизвестной задачи ?

Почему не известной , я же написал составить запрос иначе , но получить тот же результат.

И как узнать по тексту запроса постанову задачи ? А не ваш способ ее решения
18 май 11, 15:37    [10672195]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
JOIN можно вместо подзапроса применить
18 май 11, 15:42    [10672271]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
iap
JOIN можно вместо подзапроса применить
Прошу прощения. Долго не отправлял - вот и сбаянил.
18 май 11, 15:43    [10672288]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
Всё проще.
если в таблице 100-1000 записей...

то любой оптимизацией можно:
а) угробить пару дней рабочего времени.
б) послать на сервер запрос на 15 байт короче
в) получить профит в выполнении запроса на одну милисекунду быстрее.
г) гордиться собой, неимоверно оптимизирующим.
д) получить лишнюю зарплату, если ты по часам работаешь.
19 май 11, 05:26    [10675566]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
Да, я понимаю и поддерживаю стремление писать хороший код.
Так и надо.
Но кроме того - надо понимать, какие трудочасы мы тратим, и для чего именно это нужно.
Наверное - это одна из самых главных оценок любого профессионала.
Можно стремиться к перфекционизму любой ценой, а можно понимать, что разогнать весь проект на 0.0001% ценою в 30 рабочих дней программиста - это плохой выбор.
19 май 11, 05:30    [10675569]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить