powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Избежать временных таблиц
25 сообщений из 103, страница 4 из 5
Избежать временных таблиц
    #38779110
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012,

индексы можно. Есть нюансы с FK. Ну прочитай про них уже.
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779163
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисfedorov2012,
индексы можно. Есть нюансы с FK. Ну прочитай про них уже.
Спасибо почитал, только вот не нахожу ответа на такой вопрос - у меня есть ХП в которых есть обращение к моей tmp_table. Сейчас я хочу удалить свою tmp_table и создать CREATE GLOBAL TEMPORARY TABLE с таким же именем, нужно ли перекомпилировать эти ХП или им без разницы какая tmp_table - GLOBAL TEMPORARY TABLE или обычная стандартная?
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779173
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012Сейчас я хочу удалить свою tmp_table
Попробуй и ответ придёт сам собой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779177
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну да, drop'нуть не получиться пока ХП пустыми не сделаешь
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779263
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщем после многочасовой работы заставил sql-запрос летать без использования временных таблиц (в среднем 50 миллисекунд) . Но вот беда стоит включить сортировку (order by) как запрос начинает тормозить (конечно выполняется теперь быстрее чем раньше) и время составляет 48 сек. Что подскажите сделать?
Может этот вопрос вынести в отдельный топик?
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779265
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
48 сек выполнения - на выходе 40 тыс. записей с 20 полями
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779282
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012Ну тогда особой разницы между моим tmp_table нетРазница появится как только "моя tmp_table" потребуется нескольким клиентам.
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779350
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012 Что подскажите сделать?

показать запросы и планы
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779580
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m7mпоказать запросы и планы
запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select t2.*
from sp_tree1(:p) tr1,
     sp_tree2(:p2) tr2,
     table1 t1,
     table2 t2,
     table3 t3
where t2.nm_id=t1.nm_id
      and t1.group_id=tr2.group_id
      and t2.group_id=tr1.group_id
      and t3.nm_id=t2.nm_id
order by t2.nm_id



План c order by:
Код: sql
1.
PLAN SORT (JOIN (JOIN (TREE1 INDEX (PK_TREE1), SP_TREE1 NATURAL, TR1 INDEX (FK_TREE1_1)), TREE2 INDEX (PK_TREE2))(SP_TREE2 NATURAL)(MN INDEX (FK_TREE2))JOIN (T2 INDEX (FK_TABLE2_2), T1 INDEX (PK_TABLE1))(T3 INDEX (PK_TABLE3)))



План без order by:
PLAN JOIN (JOIN (TREE1 INDEX (PK_TREE1), SP_TREE1 NATURAL, TR1 INDEX (FK_TREE1_1)), TREE2 INDEX (PK_TREE2))(SP_TREE2 NATURAL)(MN INDEX (FK_TREE2))JOIN (T2 INDEX (FK_TABLE2_2), T1 INDEX (PK_TABLE1))(T3 INDEX (PK_TABLE3))[/SRC]
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779592
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012,

откуда тут уже 3 таблицы появилось, раньше была 1 и join с 2мя ХП. Только не говори, что это те временные таблицы, которые ты в процедурах заполнил.
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779624
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012,

твои запросы ещё ни разу не соответствовали твоим планам, хватит врать уже...
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779640
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисfedorov2012,

откуда тут уже 3 таблицы появилось, раньше была 1 и join с 2мя ХП. Только не говори, что это те временные таблицы, которые ты в процедурах заполнил.
просто я старался не усложнять запрос и в топик вешал саму суть.

Текущий запрос - это реальный мой запрос (только названия таблиц переименованы)
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779644
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Планы между собой отличаются только наличием или отсутствием SORT в начале
Без order by выполняется запрос на порядки быстрее
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779676
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а нефиг сортировать широкие выборки. Попробуй

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
with mysource as (
select t2.id AS id
from sp_tree1(:p) tr1,
     sp_tree2(:p2) tr2,
     table1 t1,
     table2 t2,
     table3 t3
where t2.nm_id=t1.nm_id
      and t1.group_id=tr2.group_id
      and t2.group_id=tr1.group_id
      and t3.nm_id=t2.nm_id
order by t2.nm_id)
select t2.*
from mysource
left join t2 on mysource.id = t2.id



где id - PK таблицы t2
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779689
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012Без order by выполняется запрос на порядки быстрееФетч первой записи - это ещё не выполнение запроса.
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779704
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисгде id - PK таблицы t2
Спасибо

Симонов Дениса нефиг сортировать широкие выборки. Попробуй
А как быть, на клиенте корячиться с сортировкой - или на клиенте выделить в отдельную опцию - "Отсортировать", как правило в этом случае как поступают?
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779708
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012,

так помогло?
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779754
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисfedorov2012,
так помогло?
неа, да и как оно могло помочь если в with такой же order by стоит
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779762
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012,

не совсем. Там я сортирую более узкую выборку. Соответсвенно она требует меньше temp пространства, а потом присоединяю её к твоей табличке.

В прочем Влад тебе правильно сказал. Ты без сортировки кнопочку Fetch All жмакни
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779875
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисfedorov2012,
не совсем. Там я сортирую более узкую выборку. Соответсвенно она требует меньше temp пространства, а потом присоединяю её к твоей табличке.

может FB можно сказать мол сделай сортировку 1ым 100 записям
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38779909
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012может FB можно сказать мол сделай сортировку 1ым 100 записям
Сказать можно
Код: sql
1.
2.
3.
select * from
  (select first 100 * from)
order by


вот только эту первую сотню сначала надо четко определить
дабы при следующем запуске она не оказалась совсем другой сотней
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38780024
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все равно не понятно почему order by медленно сортирует да еще и по индексированному полю - ведь матем. т. зр это быстрая операция
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38780078
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012все равно не понятно почему *order by* медленно сортирует да еще и по
индексированному полю
Потому что:
1) Сортировка внешняя.
2) Индекс у таблицы, а сортируется конечный набор данных.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38780146
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012все равно не понятно почему order by медленно сортирует да еще и по индексированному полю - ведь матем. т. зр это быстрая операция

order by - не сортирует, он только говорит что результирующий набор должен быть отсортирован а каким образом это другое
зы. возможно ты и сможешь добиться в плане запроса не SORT а ORDERED (или как его там) но это не значит что будет быстрее
...
Рейтинг: 0 / 0
Избежать временных таблиц
    #38780230
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, за оказанную помощь в решении моего вопроса
...
Рейтинг: 0 / 0
25 сообщений из 103, страница 4 из 5
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Избежать временных таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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