|
|
|
Максимальные номера из нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
Никогда раньше, не приходилось использовать функции Max, Min из нескольких таблиц. А теперь получаю следующее: Select Max(Base1.Number), Min(Base1.Number), Max(Base2.Number), Min(Base2.Number) from Base1, Base2 В результате получаю жуткие тормоза в выполнении запроса (порядка 20 сек. на таблицах, в каждой из которых около 1 тыс. записей). Подскажите, что не так? Да, надо чтобы результат был одной строкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 09:23 |
|
||
|
Максимальные номера из нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
Кажется, когда делается join как у тебя, получается таблица из 1000*1000 = миллион строк. Почему тормозит не знаю. В книжке написано, что если сортировать по убыванию, надо и индекс делать по убыванию (хотя вот например, MySQL умеет при сортировке по убыванию пользоваться индексом по возрастанию (кажись)). Может, если искать Max, то тоже надо делать индекс по убыванию, а для поиска Min - еще один по возрастанию? Это подскажут знатоки, а я спрошу, есть ли индексы вообще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 09:54 |
|
||
|
Максимальные номера из нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
Правильно мыслит гражданин feed :-)))) Индексы в ИБ однонаправленные -> для минимума нужен индекс по возрастанию, для максимума - по убыванию. Твой запрос - декартово произведение, т.е. правильно тебе написали - 1000000 записей да ещё и несколько раз перебирается. могу посоветовать только подзапросы: select (select Max(Number) from base1), (select Min(Number) from base1), (select Max(Number) from base2), (select Min(Number) from base2) from rdb$database ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 10:19 |
|
||
|
Максимальные номера из нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
я не feed, я fedd! :) Вот думаю, помогу кому-нибудь, может и мне помогут... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 11:35 |
|
||
|
Максимальные номера из нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
Ой, извини, описался :-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 11:39 |
|
||
|
Максимальные номера из нескольких таблиц
|
|||
|---|---|---|---|
|
#18+
Похоже, что действительно идет перемножение записей. Посмотрел анализ производительности и увидел порядка выбранных 300 тыс. записей из второй таблицы. Причем все записи выбираются без использования индекса. Наличие или отсутствие индекса на поле Number почему-то на производительности не сказывается :(. 2: Gold За подсказку с использованием rdb$database спасибо, все работает на ура! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 13:54 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=516&tid=1580426]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 348ms |

| 0 / 0 |
