Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Очень медленно работают запросы с ORDER BY / 17 сообщений из 17, страница 1 из 1
13.09.2005, 23:41
    #33267578
alander
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно работают запросы с ORDER BY
Замучился уже, не могу понять почему запросы с ORDER BY информикс выполняет очень долго.
в 10 время выполнения увеличивается
Подскажите в чем может быть дело, раньше такого небыло...
...
Рейтинг: 0 / 0
14.09.2005, 01:42
    #33267620
vybegallo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно работают запросы с ORDER BY
Для получения любого ответа достаточно задать любой вопрос. Для получения правильного ответа надо задавать правильный вопрос.
В правильный вопрос в данном форуме входит :
- название используемой ОС ;
- номер версии информикса;
- образец запроса;
- план запроса, сгенерированный set explain
- подробный рассказ о предпринятых шагах, начиная с "я выполнил update statistics.."
...
Рейтинг: 0 / 0
14.09.2005, 10:05
    #33267948
alander
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно работают запросы с ORDER BY
Исправляюсь...
- название используемой ОС ;
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
14.09.2005, 11:22
    #33268259
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно работают запросы с ORDER BY
alander
...
Temporary Files Required For: Order By
...


Есть ли у вас в переменной ONCONFIG DBSPACETEMP прописанные временные пространства ? Если нет то возможно идет создание временных файлов на ФС, из-за чего могут быть тормоза.
...
Рейтинг: 0 / 0
14.09.2005, 11:39
    #33268334
alander
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно работают запросы с ORDER BY
Да, есть...
А как вообще информикс сортирует большие массивы. Там 20000 записей и каждая по 5Кб. Можно его заставить использовать под это дело память? И еще такой вопрос как выделить под информикс больше памяти, ато на машине 4Гб, используются 500Мб, а база большая - около 3Гб
...
Рейтинг: 0 / 0
14.09.2005, 11:42
    #33268348
Andrew_Paschenko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно работают запросы с ORDER BY
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
14.09.2005, 11:48
    #33268386
alander
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно работают запросы с ORDER BY
Мне не нужен индекс на этой таблице. У меня проблема в том, что сортировка стала в принципе медленно работать, по всем таблицам и любым полям
...
Рейтинг: 0 / 0
14.09.2005, 11:55
    #33268419
Andrew_Paschenko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно работают запросы с ORDER BY
alanderМне не нужен индекс на этой таблице. У меня проблема в том, что сортировка стала в принципе медленно работать, по всем таблицам и любым полям

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

Но в данном случае я вижу последовательный просмотр и
выполнение дорогостоящей сортировки там, где сам бог
велел использовать индекс. Почему же он Вам не нужен?
...
Рейтинг: 0 / 0
14.09.2005, 16:40
    #33269557
r2y
r2y
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно работают запросы с ORDER BY
alanderДа, есть...
А как вообще информикс сортирует большие массивы. Там 20000 записей и каждая по 5Кб. Можно его заставить использовать под это дело память? И еще такой вопрос как выделить под информикс больше памяти, ато на машине 4Гб, используются 500Мб, а база большая - около 3Гб
Большие массивы сортирует с помощью DBSPACETEMP (если правильно установлен в onconfig). Может у Вас места в нем маловато для сортировки слиянием? Память для сортировок берется из BUFFERS. Попробуйте его увеличить, раз так много свободной памяти. Кстати select без order by тоже быстрым не назовеш. Пусть сисадмин проверит дисковую систему на предмет производительности.
...
Рейтинг: 0 / 0
14.09.2005, 16:44
    #33269572
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно работают запросы с ORDER BY
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
14.09.2005, 17:51
    #33269741
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно работают запросы с ORDER BY
r2yПамять для сортировок берется из BUFFERS.
А откуда такая информация ? Можно источник или ссылку ?

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

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

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

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

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

И покажите ваш config file.
...
Рейтинг: 0 / 0
19.09.2005, 12:08
    #33276324
alander
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно работают запросы с ORDER BY
Извините, вовремя ветку форума не закрыл, я разобрался с чем это было свазяно... Нужно было выделить память для сортировки.
Сделано это было так:
DS_TOTAL_MEMORY 2097152 # Decision support memory (Kbytes)
DS_NONPDQ_QUERY_MEM 524288
...
Рейтинг: 0 / 0
19.09.2005, 14:25
    #33276718
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно работают запросы с ORDER BY
alander...
DS_NONPDQ_QUERY_MEM 524288
Вау, супер, не знал о таком параметре. Наконец-то сделали, похоже в 9.40.xC4.
...
Рейтинг: 0 / 0
19.09.2005, 17:39
    #33277346
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень медленно работают запросы с ORDER BY
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
Форумы / Informix [игнор отключен] [закрыт для гостей] / Очень медленно работают запросы с ORDER BY / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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