![]() |
|
Модераторы: skyboy |
![]()
|
|
| jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: нет Всего: 20 |
Hi all
допустим таблица A содержит поля id integer (unique primary) code1 integer date1 timestamp val1 float code1 может содержать значения от 1 до 5 как можно выбрать только записи с максимальной датой для всех code1 делал так
но уж слишком накладный запрос PS сервер FireBird 2.0 -------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
| Magnifico |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 23.1.2008 Где: Московская област ь Репутация: 4 Всего: 17 |
по моему самый оптимальный , соединением join - будет ещё накладней.
-------------------- Всё в порядке - спасибо зарядке ! |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 4 Всего: 67 |
Magnifico, почему это join накладнее?
jsa,
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| lukash256 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 23.7.2007 Где: Гомель/Беларусь Репутация: нет Всего: нет |
а ты уверен что тебе нужны все поля ?
если не выберать "лишшних", то время выполнения сократится. в данном примере это не решает но в промышленных маштабах, где в таблицах за 40 полей и пол милиона рекордав будет ощутимо. |
|||
|
||||
| Magnifico |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 23.1.2008 Где: Московская област ь Репутация: 4 Всего: 17 |
я думал о запросе такого вида:
хотя и он глядя на план выгоднее подзапроса solenko твой запрос самый оптимальный. +1 -------------------- Всё в порядке - спасибо зарядке ! |
||||
|
|||||
| Magnifico |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 23.1.2008 Где: Московская област ь Репутация: 4 Всего: 17 |
не погорячился
запрос
и
дают не правильные результаты при наличие одинаковых значений в поле date1(при массовой вставке это возможно) причем при большом количестве данных блее 100 тысяч -1 запрос по скорости выполняется почти за 8 минут запрос с позапросом - за 107 миллисекунд запрос
тестовый пример SQL Server 2005:
-------------------- Всё в порядке - спасибо зарядке ! |
||||||||
|
|||||||||
| jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: нет Всего: 20 |
да дык я бы не спрашивал, если бы мне все поля не нужны были Добавлено через 8 минут и 7 секунд solenko, попробую, спасибо за подсказку,
абсолютно не оптимальный когда в таблице хотя бы 1000 строк, потом эта выборка используется в куче обзоров, где еще выбирается куча данных... короче дошел до того что запросы выполняются по 8 секунд(сам ужаснулся, а представьте пользователя, который будет с этим делом работать), поэтому решил оптимизировать -------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |