powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Очень медленно работают запросы с ORDER BY
17 сообщений из 17, страница 1 из 1
Очень медленно работают запросы с ORDER BY
    #33267578
alander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Замучился уже, не могу понять почему запросы с ORDER BY информикс выполняет очень долго.
в 10 время выполнения увеличивается
Подскажите в чем может быть дело, раньше такого небыло...
...
Рейтинг: 0 / 0
Очень медленно работают запросы с ORDER BY
    #33267620
vybegallo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для получения любого ответа достаточно задать любой вопрос. Для получения правильного ответа надо задавать правильный вопрос.
В правильный вопрос в данном форуме входит :
- название используемой ОС ;
- номер версии информикса;
- образец запроса;
- план запроса, сгенерированный set explain
- подробный рассказ о предпринятых шагах, начиная с "я выполнил update statistics.."
...
Рейтинг: 0 / 0
Очень медленно работают запросы с ORDER BY
    #33267948
alander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исправляюсь...
- название используемой ОС ;
Machine hardware: sun4u
OS version: 5.8
Processor type: sparc
Hardware: SUNW,Sun-Fire-280R

- номер версии информикса;
Informix Dynamic Server 2000 Version 9.21.UC5 -- On-Line -- Up 01:14:22 -- 155648 Kbytes

- образец запроса;
без сортировки select * from student ; - 15сек
с сортировкой select * from student order by fio ; - 30 мин

- план запроса, сгенерированный set explain
без сортировки:
QUERY:
------
select * from student

Estimated Cost: 13082
Estimated # of Rows Returned: 24664

1) and.student: SEQUENTIAL SCAN

с сортировкой:
QUERY:
------
select * from student order by fio

Estimated Cost: 344549
Estimated # of Rows Returned: 24664
Temporary Files Required For: Order By

1) and.student: SEQUENTIAL SCAN

- подробный рассказ о предпринятых шагах, начиная с "я выполнил update statistics.."
перезапустил информикс
выполнил update statistics
запустил запросы

и в чем же дело? Могу еще любую статистику дать...
...
Рейтинг: 0 / 0
Очень медленно работают запросы с ORDER BY
    #33268259
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alander
...
Temporary Files Required For: Order By
...


Есть ли у вас в переменной ONCONFIG DBSPACETEMP прописанные временные пространства ? Если нет то возможно идет создание временных файлов на ФС, из-за чего могут быть тормоза.
...
Рейтинг: 0 / 0
Очень медленно работают запросы с ORDER BY
    #33268334
alander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, есть...
А как вообще информикс сортирует большие массивы. Там 20000 записей и каждая по 5Кб. Можно его заставить использовать под это дело память? И еще такой вопрос как выделить под информикс больше памяти, ато на машине 4Гб, используются 500Мб, а база большая - около 3Гб
...
Рейтинг: 0 / 0
Очень медленно работают запросы с ORDER BY
    #33268348
Andrew_Paschenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alander
- образец запроса;
без сортировки select * from student ; - 15сек
с сортировкой select * from student order by fio ; - 30 мин

- план запроса, сгенерированный set explain
без сортировки:
QUERY:
------
select * from student

Estimated Cost: 13082
Estimated # of Rows Returned: 24664

1) and.student: SEQUENTIAL SCAN

с сортировкой:
QUERY:
------
select * from student order by fio

Estimated Cost: 344549
Estimated # of Rows Returned: 24664
Temporary Files Required For: Order By

1) and.student: SEQUENTIAL SCAN

- подробный рассказ о предпринятых шагах, начиная с "я выполнил update statistics.."
перезапустил информикс
выполнил update statistics
запустил запросы

и в чем же дело? Могу еще любую статистику дать...


Вы не сказали, создан ли индекс по этой таблице,
где первым полем в ключе указано fio.

Если его нет, то создайте:

create index student_fio on student (fio);
update statistics high for table student (fio);

И еще: структуры таблицы Вы тоже не привели.
...
Рейтинг: 0 / 0
Очень медленно работают запросы с ORDER BY
    #33268386
alander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне не нужен индекс на этой таблице. У меня проблема в том, что сортировка стала в принципе медленно работать, по всем таблицам и любым полям
...
Рейтинг: 0 / 0
Очень медленно работают запросы с ORDER BY
    #33268419
Andrew_Paschenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alanderМне не нужен индекс на этой таблице. У меня проблема в том, что сортировка стала в принципе медленно работать, по всем таблицам и любым полям

Это тоже тема для разговора (но отдельного) - почему
по всем медленно.

Но в данном случае я вижу последовательный просмотр и
выполнение дорогостоящей сортировки там, где сам бог
велел использовать индекс. Почему же он Вам не нужен?
...
Рейтинг: 0 / 0
Очень медленно работают запросы с ORDER BY
    #33269557
r2y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
r2y
Гость
alanderДа, есть...
А как вообще информикс сортирует большие массивы. Там 20000 записей и каждая по 5Кб. Можно его заставить использовать под это дело память? И еще такой вопрос как выделить под информикс больше памяти, ато на машине 4Гб, используются 500Мб, а база большая - около 3Гб
Большие массивы сортирует с помощью DBSPACETEMP (если правильно установлен в onconfig). Может у Вас места в нем маловато для сортировки слиянием? Память для сортировок берется из BUFFERS. Попробуйте его увеличить, раз так много свободной памяти. Кстати select без order by тоже быстрым не назовеш. Пусть сисадмин проверит дисковую систему на предмет производительности.
...
Рейтинг: 0 / 0
Очень медленно работают запросы с ORDER BY
    #33269572
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alanderА как вообще информикс сортирует большие массивы. Там 20000 записей и каждая по 5Кб. Можно его заставить использовать под это дело память?
Можно, но трудно :)
Есть такое понятие, как PDQ (Parallel Data Query) - подробнее почитать в руководстве администратора (для этой версии есть даже на русском)
http://www.informix.com.ua/cgi-bin/rusdoc.pl?sort=1&head=&foot=
"IDS2000 Руководство администратора. том 2 1999" (5.4 MB)
PDQ позволяет выделять процессам память большими кусками, а с версии IDS10 есть даже параметр для выделения больших сегментов памяти специально под сортировку даже процессам без PDQ.
Если сортируемый массив не помещается в оперативную память, то происходит сброс во временные файлы на дисках. Пространство, которое для этого используется, описывается как различными переменными окружения, так и конфигурационными параметрами в onconfig (см. DBSPACETEMP, PSORT_NPROCS)

alanderИ еще такой вопрос как выделить под информикс больше памяти, ато на машине 4Гб, используются 500Мб, а база большая - около 3Гб
Можно увеличить размер буфферного пула (Buffers), размер сегмента разделяемой памяти (SHMVIRTSIZE ), но не забывай, что для увеличения этих параметров нужны изменения параметров в ОС (см. Release Notes для своей версии на своей платформе). Все 4Г для этой версии вряд ли удастся задействовать, хотя тут ранее были предложения (см. данный форум) задействовать механизм виртуального диска и размещать на него временнные пространства для ускорения сортировок в том числе.
...
Рейтинг: 0 / 0
Очень медленно работают запросы с ORDER BY
    #33269741
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r2yПамять для сортировок берется из BUFFERS.
А откуда такая информация ? Можно источник или ссылку ?

r2yКстати select без order by тоже быстрым не назовеш. Пусть сисадмин проверит дисковую систему на предмет производительности.
Очень правильно. Думаю, что если стоит RAID (да еще и 5-го уровня), то симптомы очень похожи на выход из строя одного из дисков (резкое замедление вв/выв)
...
Рейтинг: 0 / 0
Очень медленно работают запросы с ORDER BY
    #33269784
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r2yКстати select без order by тоже быстрым не назовеш.
alanderтам 20000 записей и каждая по 5Кб.

100Мб за 15 сек, не так уж и медленно.
...
Рейтинг: 0 / 0
Очень медленно работают запросы с ORDER BY
    #33269843
r2y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
r2y
Гость
vasilis[quot r2y]Память для сортировок берется из BUFFERS.
А откуда такая информация ? Можно источник или ссылку ?

Наврал :) Память для сортировки до 128Кб выделяется без PDQ - а buffers используется для IO (и Read Ahead).

2 Daugava
А скорость в ~7Мб/сек для правильно настроенного raid на чтение меня бы не устроила.
...
Рейтинг: 0 / 0
Очень медленно работают запросы с ORDER BY
    #33270077
vybegallo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alanderДа, есть...
А как вообще информикс сортирует большие массивы. Там 20000 записей и каждая по 5Кб. Можно его заставить использовать под это дело память? И еще такой вопрос как выделить под информикс больше памяти, ато на машине 4Гб, используются 500Мб, а база большая - около 3Гб

либо увеличьте , либо сбросьте в 0 параметр SHMTOTAL в config файле. Ваши данные занимают примерно 100M. Если вы ограничили объем используемой памяти, и всю ее отдали под буфера, то естественно информикс будет гонять байты туда-сюда.
Макс. объем который 32битный информикс может использовать на солярисе - 2.75GB.
Буфера под сортировку не используются.
Какие изменения вносили с момента "раньше такого не было" ? меняли конфигурацию, версию, диски, железо, удаляли индексы , были падения сервера ?
Посмотрите (onstat -g ioa ), куда он сбрасывает данные в процессе сортировки - я подозреваю, ваш TEMPDBSPACE не работает и сортировочные файлы сохраняются на диск.

И покажите ваш config file.
...
Рейтинг: 0 / 0
Очень медленно работают запросы с ORDER BY
    #33276324
alander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, вовремя ветку форума не закрыл, я разобрался с чем это было свазяно... Нужно было выделить память для сортировки.
Сделано это было так:
DS_TOTAL_MEMORY 2097152 # Decision support memory (Kbytes)
DS_NONPDQ_QUERY_MEM 524288
...
Рейтинг: 0 / 0
Очень медленно работают запросы с ORDER BY
    #33276718
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alander...
DS_NONPDQ_QUERY_MEM 524288
Вау, супер, не знал о таком параметре. Наконец-то сделали, похоже в 9.40.xC4.
...
Рейтинг: 0 / 0
Очень медленно работают запросы с ORDER BY
    #33277346
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alander...Нужно было выделить память для сортировки.
Сделано это было так:
DS_TOTAL_MEMORY 2097152 # Decision support memory (Kbytes)
DS_NONPDQ_QUERY_MEM 524288
1. Для указанной тобой версии сервера (Informix Dynamic Server 2000 Version 9.21.UC5 -- On-Line -- Up 01:14:22 -- 155648 Kbytes)
второй параметр (DS_NONPDQ_QUERY_MEM) вряд ли подойдет.
Я уже ранее писал, что "с версии IDS 10.0 есть даже параметр для выделения больших сегментов памяти специально под сортировку даже процессам без PDQ".
2. DS_TOTAL_MEMORY выделяет память не под сортировку, а общий объем памяти, выделяемый под процессы PDQ (DSS), причем каждому такому процессу будет выделяться порция DS_TOTAL_MEMORY/DS_MAX_QUERIES.

P.S. И с проблемой, мне кажется, ты не разобрался, хотя наводящие вопросы тебе задавали...
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Очень медленно работают запросы с ORDER BY
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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