|
FireBird2.5 Длина запроса и скорость выполнения.
|
|||
---|---|---|---|
#18+
Приветствую друзья. Попался исходник, где часть запроса на клиенте генерируется в цикле. "WHERE (id = 1) OR (id = 3) OR....." - эта часть запроса генерируется в цикле SELECT * FROM MYTABLE WHERE (id = 1) OR (id = 3) OR....... (id = N). Опыта SQL - пока не много. Вопрос насколько это может быть большим по длине и как такой запрос будет по скорости? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 16:47 |
|
FireBird2.5 Длина запроса и скорость выполнения.
|
|||
---|---|---|---|
#18+
64к, в тройке можно и больше. Скорость как скорость, зависит от множества параметров, за всех сказать не получится. Как вариант 1. с клиента загонять список в GTT табличку и с ней джойниться. 2. использовать что-то типа list_to_rows (пример есть в форуме) Это однозначно снимет ограничение на объем, можно использовать параметризированные запросы вместо конструирования запроса и колдовства с экранированием символов, но скорость надо тестить по месту. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 16:54 |
|
FireBird2.5 Длина запроса и скорость выполнения.
|
|||
---|---|---|---|
#18+
alexK19, почему не "in"? Гораздо компактнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 17:05 |
|
FireBird2.5 Длина запроса и скорость выполнения.
|
|||
---|---|---|---|
#18+
alexK19, в 2.5 запрос ограничен длиной 64 Кбайт. В 3.0 до 10 Мбайт Насчёт IN точно не помню, вроде бы до 255 значений. Не менялось ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 17:11 |
|
FireBird2.5 Длина запроса и скорость выполнения.
|
|||
---|---|---|---|
#18+
23.09.2019 17:11, Симонов Денис пишет: > Насчёт IN точно не помню, вроде бы до 255 значений. не уверен, но имхо порядка тыщи Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 17:30 |
|
FireBird2.5 Длина запроса и скорость выполнения.
|
|||
---|---|---|---|
#18+
Может кто натолкнет на другие варианты реализации, ситуация тут следующая: есть две таблицы 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 20:56 |
|
FireBird2.5 Длина запроса и скорость выполнения.
|
|||
---|---|---|---|
#18+
alexK19В отчете нужно сгруппировать MASTER по CLASS_MST_ID и под каждой такой строчкой показать детализацию Ну так и делай средствами отчётника. Запихивать всё в один запрос - чертовски плохая идея. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 21:11 |
|
FireBird2.5 Длина запроса и скорость выполнения.
|
|||
---|---|---|---|
#18+
alexK19В отчете нужно ЧИТАТЬ__ВСЕМ,__КТО__ПРИШЕЛ__СЮДА__В__ПЕРВЫЙ__РАЗ! описан шаблон ка задавать подобные вопросы, чтобы было понятно Если у Вас возникли проблемы с написанием некого запроса (сложные группировки, связи нескольких таблиц и т.п.),то крайне желательна следующая формулировка вопроса: 1. Точная версия сервера. 2. Словесное описание проблемы. 3. DDL всех участвующих в запросе объектов БД в виде скрипта. 4. Немного данных, опять таки в виде скрипта, достаточных чтобы понять логику работы. 5. Ваши попытки. 6. Желаемый результат в виде таблички. Если пункты 3-6 получаются объемными, то используем тэг spoiler. Если для понимая сути проблемы требуется достаточно большой набор исходных данных, скрипт можно сархивировать и приложить как аттач к сообщению. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 21:17 |
|
FireBird2.5 Длина запроса и скорость выполнения.
|
|||
---|---|---|---|
#18+
alexK19, изучай SQL, без этого никак ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 22:04 |
|
FireBird2.5 Длина запроса и скорость выполнения.
|
|||
---|---|---|---|
#18+
Мимопроходящийне уверен, но имхо порядка тыщи Денис, МП - вы что, не можете запомнить число 1500 для явных значений в IN? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 22:07 |
|
FireBird2.5 Длина запроса и скорость выполнения.
|
|||
---|---|---|---|
#18+
kdv, зачем оно мне? Я такой фигнёй по созданию динамических IN из 1500 значений не страдаю. Вспоминаю тут только один товарищ хотел 500 JOIN зафигачить и IN из 100500 значений ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 22:13 |
|
FireBird2.5 Длина запроса и скорость выполнения.
|
|||
---|---|---|---|
#18+
Модератор, поправь тему топика. Сколько можно издеваться над русская языка. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 22:45 |
|
FireBird2.5 Длина запроса и скорость выполнения.
|
|||
---|---|---|---|
#18+
Вот то, что в IN нельзя подать параметр вместо списка реально скотинит. Как и ограничение на 1500. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2019, 10:15 |
|
FireBird2.5 Длина запроса и скорость выполнения.
|
|||
---|---|---|---|
#18+
25.09.2019 10:15, Tonal пишет: > Вот то, что в *IN* нельзя подать параметр вместо списка реально скотинит. > Как и ограничение на 1500. иже Херувимы тайно образующе и Животворящей Троице Трисвятую песнь припевающе, всякое ныне житейское отложим попечение. сто лет в обед, как Дед предлагал воркаррауд с тильдами: Код: sql 1. 2. 3. 4.
но план конечно будет натуралом Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2019, 10:30 |
|
FireBird2.5 Длина запроса и скорость выполнения.
|
|||
---|---|---|---|
#18+
Tonal, А меня бесит, что в мой маленький термос 5 литров борща не влазит. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2019, 10:30 |
|
|
start [/forum/topic.php?fid=40&fpage=20&tid=1560570]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 278ms |
total: | 429ms |
0 / 0 |