powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FireBird2.5 Длина запроса и скорость выполнения.
16 сообщений из 16, страница 1 из 1
FireBird2.5 Длина запроса и скорость выполнения.
    #39865773
alexK19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую друзья. Попался исходник, где часть запроса на клиенте генерируется в цикле. "WHERE (id = 1) OR (id = 3) OR....." - эта часть запроса генерируется в цикле

SELECT * FROM MYTABLE WHERE (id = 1) OR (id = 3) OR....... (id = N).

Опыта SQL - пока не много. Вопрос насколько это может быть большим по длине и как такой запрос будет по скорости?
...
Рейтинг: 0 / 0
FireBird2.5 Длина запроса и скорость выполнения.
    #39865781
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
64к, в тройке можно и больше.

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

Как вариант
1. с клиента загонять список в GTT табличку и с ней джойниться.
2. использовать что-то типа list_to_rows (пример есть в форуме)
Это однозначно снимет ограничение на объем, можно использовать параметризированные запросы вместо конструирования запроса и колдовства с экранированием символов, но скорость надо тестить по месту.
...
Рейтинг: 0 / 0
FireBird2.5 Длина запроса и скорость выполнения.
    #39865790
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexK19,

почему не "in"? Гораздо компактнее.
...
Рейтинг: 0 / 0
FireBird2.5 Длина запроса и скорость выполнения.
    #39865794
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexK19,

в 2.5 запрос ограничен длиной 64 Кбайт. В 3.0 до 10 Мбайт
Насчёт IN точно не помню, вроде бы до 255 значений. Не менялось
...
Рейтинг: 0 / 0
FireBird2.5 Длина запроса и скорость выполнения.
    #39865802
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
23.09.2019 17:11, Симонов Денис пишет:
> Насчёт IN точно не помню, вроде бы до 255 значений.

не уверен, но имхо порядка тыщи
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird2.5 Длина запроса и скорость выполнения.
    #39865894
alexK19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто натолкнет на другие варианты реализации, ситуация тут следующая:

есть две таблицы

1)
MASTER {
ID
CLASS_MST_ID
TITLE
BEGIN_DATE
END_DATE
}

2)
DETAIL {
ID
MASTER_ID
CLASS_DET_ID
TITLE
}

В отчете нужно сгруппировать MASTER по CLASS_MST_ID и под каждой такой строчкой показать детализацию, т.е. выбрать все записи из DETAIL которые тянуться от MASTER. В свою очередь DETAIL сгруппировать по CLASS_DET_ID.


Все это у меня работает но в этом "плохом" варианте, где условие запроса в цикле. Ведь сгруппировав MASTER по CLASS_MST_ID в результате не может быть "ID". Поэтому предварительно из MASTER выбирался набор из "ID" - для формирование подзапроса к DETAIL.
...
Рейтинг: 0 / 0
FireBird2.5 Длина запроса и скорость выполнения.
    #39865895
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexK19В отчете нужно сгруппировать MASTER по CLASS_MST_ID и под каждой такой строчкой показать
детализацию

Ну так и делай средствами отчётника. Запихивать всё в один запрос - чертовски плохая идея.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird2.5 Длина запроса и скорость выполнения.
    #39865897
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexK19В отчете нужно ЧИТАТЬ__ВСЕМ,__КТО__ПРИШЕЛ__СЮДА__В__ПЕРВЫЙ__РАЗ! описан шаблон ка задавать подобные вопросы, чтобы было понятно

Если у Вас возникли проблемы с написанием некого запроса (сложные группировки, связи нескольких таблиц и т.п.),то крайне желательна следующая формулировка вопроса:
1. Точная версия сервера.
2. Словесное описание проблемы.
3. DDL всех участвующих в запросе объектов БД в виде скрипта.
4. Немного данных, опять таки в виде скрипта, достаточных чтобы понять логику работы.
5. Ваши попытки.
6. Желаемый результат в виде таблички.
Если пункты 3-6 получаются объемными, то используем тэг spoiler. Если для понимая сути проблемы требуется достаточно большой набор исходных данных, скрипт можно сархивировать и приложить как аттач к сообщению.
...
Рейтинг: 0 / 0
FireBird2.5 Длина запроса и скорость выполнения.
    #39865923
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexK19,

изучай SQL, без этого никак
...
Рейтинг: 0 / 0
FireBird2.5 Длина запроса и скорость выполнения.
    #39865925
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийне уверен, но имхо порядка тыщи
Денис, МП - вы что, не можете запомнить число 1500 для явных значений в IN? :-)
...
Рейтинг: 0 / 0
FireBird2.5 Длина запроса и скорость выполнения.
    #39865930
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

зачем оно мне? Я такой фигнёй по созданию динамических IN из 1500 значений не страдаю.
Вспоминаю тут только один товарищ хотел 500 JOIN зафигачить и IN из 100500 значений
...
Рейтинг: 0 / 0
FireBird2.5 Длина запроса и скорость выполнения.
    #39865955
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор, поправь тему топика. Сколько можно издеваться над русская языка.
...
Рейтинг: 0 / 0
FireBird2.5 Длина запроса и скорость выполнения.
    #39866686
Фотография Tonal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот то, что в IN нельзя подать параметр вместо списка реально скотинит.
Как и ограничение на 1500.
...
Рейтинг: 0 / 0
FireBird2.5 Длина запроса и скорость выполнения.
    #39866693
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
25.09.2019 10:15, Tonal пишет:
> Вот то, что в *IN* нельзя подать параметр вместо списка реально скотинит.
> Как и ограничение на 1500.

иже Херувимы тайно образующе и Животворящей Троице Трисвятую песнь припевающе, всякое ныне житейское отложим попечение.

сто лет в обед, как Дед предлагал воркаррауд с тильдами:
Код: sql
1.
2.
3.
4.
:parm = '~ВАСЯ~ПЕТЯ~КОЛЯ~'

SELECT * FROM Persons
WHERE :parm CONTAINING '~'||Name||'~'

но план конечно будет натуралом

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird2.5 Длина запроса и скорость выполнения.
    #39866694
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tonal,

А меня бесит, что в мой маленький термос 5 литров борща не влазит.
...
Рейтинг: 0 / 0
FireBird2.5 Длина запроса и скорость выполнения.
    #39866697
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийно план конечно будет натураломПри разложении в таблицу будет ненатуралом
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FireBird2.5 Длина запроса и скорость выполнения.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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