powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / тормоза при добавлении rowid в селект
14 сообщений из 14, страница 1 из 1
тормоза при добавлении rowid в селект
    #34085136
romikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Столкнулся со странным поведением.
При попытке сортировать по rowid, информикс выполнят селект на порядок медленнее. Причем такое происходит только на двух далеко не самых больших таблицах, со остальными все в порядке.
Таблица не фрагментирована, существенных отличий от других не имеет, содержит порядка 120тыс строк.

Код: plaintext
select rowid,* from request_payment order by id asc
выполняется 3 секунды

Код: plaintext
select rowid,* from request_payment order by rowid asc
выполняется 35 секунд

Даже не знаю в какую сторону думать...
информикс 10 UC1
система Mandrake 2006.0 (2.6.12-12mdksmp)
машина 4х-процессорный сервер с raid-массивом.
...
Рейтинг: 0 / 0
тормоза при добавлении rowid в селект
    #34085441
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Планы запросов в студию

В таком вот аксепте
...
Рейтинг: 0 / 0
тормоза при добавлении rowid в селект
    #34085663
romikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
QUERY:
------
select rowid,* from request_payment order by id asc
Estimated Cost: 6668
Estimated # of Rows Returned: 121022
  1) informix.request_payment: INDEX PATH
    (1) Index Keys: id   (Serial, fragments: ALL)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
QUERY:
------
select rowid,* from request_payment order by rowid asc
Estimated Cost: 87788
Estimated # of Rows Returned: 121022
Temporary Files Required For: Order By
  1) informix.request_payment: SEQUENTIAL SCAN
...
Рейтинг: 0 / 0
тормоза при добавлении rowid в селект
    #34085747
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
romikk
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
QUERY:
------
select rowid,* from request_payment order by id asc
Estimated Cost: 6668
Estimated # of Rows Returned: 121022
  1) informix.request_payment: INDEX PATH
    (1) Index Keys: id   (Serial, fragments: ALL)

Есть индекс по id поэтому просто идем по индексу, ничего не сортируя.
Стоимость 6668.
romikk
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
QUERY:
------
select rowid,* from request_payment order by rowid asc
Estimated Cost: 87788
Estimated # of Rows Returned: 121022
Temporary Files Required For: Order By
  1) informix.request_payment: SEQUENTIAL SCAN
По rowid индекса нет, сортируем в Temporary Files, 121022 строк.
Стоимость 87788. В 10 раз больше.
Я бы такие запросы -- "order by rowid" выкинул и никогда не исполнял, с другой стороны вы можете использовать PDQ или DS_NONPDQ_QUERY_MEM и перейти на сортировку в памяти, это ускорит запрос.
...
Рейтинг: 0 / 0
тормоза при добавлении rowid в селект
    #34086126
romikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оказалось что памяти было выделено неприлично мало:
Код: plaintext
1.
DS_TOTAL_MEMORY 768          # Decision support memory (Kbytes)
DS_NONPDQ_QUERY_MEM 128          # Non PDQ query memory (Kbytes)

Когда поднял эти значения раз в двадцать, ситуация нормализовалась.

Спасибо за подсказку :)
...
Рейтинг: 0 / 0
тормоза при добавлении rowid в селект
    #34086271
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
romikkОказалось что памяти было выделено неприлично мало:
Код: plaintext
DS_TOTAL_MEMORY 768          # Decision support memory (Kbytes)
Это работает при включенном pdq, у вас оно выключено.

romikkDS_NONPDQ_QUERY_MEM 128 # Non PDQ query memory (Kbytes)Увеличивать в 20 раз этот параметр это где-то на грани самоубийства.

romikk
Когда поднял эти значения раз в двадцать, ситуация нормализовалась.
Спасибо за подсказку :)Не за что, уже начинаю жалеть что подсказал.
...
Рейтинг: 0 / 0
тормоза при добавлении rowid в селект
    #34087337
romikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денис romikkDS_NONPDQ_QUERY_MEM 128 # Non PDQ query memory (Kbytes)Увеличивать в 20 раз этот параметр это где-то на грани самоубийства.
Почему?
Вот тут: http://www.cz.org.ua/cms/content/view/16/40/
в качестве первоначальной настройки рекомендуют DS_TOTAL_MEMORY=8192
В мануале написано что DS_NONPDQ_QUERY_MEM должен быть не более чем 25% от DS_TOTAL_MEMORY.
Сейчас у меня собственно так и стоит:
DS_TOTAL_MEMORY=8192
DS_NONPDQ_QUERY_MEM=2048
Так в чем же самоубийство?
...
Рейтинг: 0 / 0
тормоза при добавлении rowid в селект
    #34087358
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
romikkПочему?
Потому что уже при 50 пользователях потребление памяти может увеличится на 100 мб.
...
Рейтинг: 0 / 0
тормоза при добавлении rowid в селект
    #34087412
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
romikkв качестве первоначальной настройки рекомендуют DS_TOTAL_MEMORY=8192
В мануале написано что DS_NONPDQ_QUERY_MEM должен быть не более чем 25% от Я бы в мануале попытался понять что значит тот или иной параметр, 25% это по моему глупость какая-то, потому что параметры эти перпендикулярны, и значат абсолютно разные вещи.
...
Рейтинг: 0 / 0
тормоза при добавлении rowid в селект
    #34087455
romikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев ДенисПотому что уже при 50 пользователях потребление памяти может увеличится на 100 мб.
Что в принципе лучше чем если все эти 50 человек будут приходить и ругаться что у них все тормозит :)

Я бы сам с удовольствием отовсюду rowid выкинул, но к сожалению это не в моей компетенции.
...
Рейтинг: 0 / 0
тормоза при добавлении rowid в селект
    #34087493
romikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев ДенисЯ бы в мануале попытался понять что значит тот или иной параметр, 25% это по моему глупость какая-то, потому что параметры эти перпендикулярны, и значат абсолютно разные вещи.
Вот тут английским по белому написано что от 128кб до 25% от..
К сожалению там не очень понятно на что собственно этот параметр влияет.
...
Рейтинг: 0 / 0
тормоза при добавлении rowid в селект
    #34087499
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
romikk
Я бы сам с удовольствием отовсюду rowid выкинул, но к сожалению это не в моей компетенции.Если это из-за TTable (который не видит уникальные автоиндексы с пробелом в первом символе), то вы недочитали мануал, сильно причем, это лечится в два клика мышкой.
...
Рейтинг: 0 / 0
тормоза при добавлении rowid в селект
    #34087530
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
romikk Вот тут английским по белому написано что от 128кб до 25% от..
К сожалению там не очень понятно на что собственно этот параметр влияет.

Вот как это перевел translate.ru:

Используйте параметр конфигурации DS_NONPDQ_QUERY_MEM, чтобы увеличить количество памяти, которая является доступным для вопроса, который не Параллельный Вопрос Базы данных (PDQ). (Вы можете только использовать этот параметр, если приоритет PDQ собирается ноль.), Если Вы определяете ценность для параметра DS_NONPDQ_QUERY_MEM, определите, и приспособьте ценность, основанную на числе и размере рядов стола.
...
Рейтинг: 0 / 0
тормоза при добавлении rowid в селект
    #34095100
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис romikkв качестве первоначальной настройки рекомендуют DS_TOTAL_MEMORY=8192
В мануале написано что DS_NONPDQ_QUERY_MEM должен быть не более чем 25% от Я бы в мануале попытался понять что значит тот или иной параметр, 25% это по моему глупость какая-то, потому что параметры эти перпендикулярны, и значат абсолютно разные вещи.
Денис погорячился :) Параметры все же зависимы, хотя и сказано, что DS_NONPDQ_QUERY_MEM работает только при выключенном PDQ, тем не менее, значение DS_TOTAL_MEMORY тоже учитывается при проверке максимально возможного значения DS_NONPDQ_QUERY_MEM.
Чтобы не устанавливать большое значение и не бояться, как Денис, о захвате больших ресурсов многими пользователями, можно увеличить значение DS_NONPDQ_QUERY_MEM через onmode -wf только для отдельных сессий
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / тормоза при добавлении rowid в селект
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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