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

- Informix IDS 9.20.FC3 на HP Tru64 UNIX
- табличка 10000 записей по 248 полей (так получилось ...)
- создан 1 клустерный индекс и 2 обычных индекса по тем полям, по которым
делается select

так вот:

при запросе <select field1,field2 [или *] from table1 where field1 = 'XXX'>, то работает осень долго ~30-40 секунд, а при запросе <select field1,field2 from table1 where field1 like 'XXX%%'> - около 1-2 секунд.Далее. При запросе <select field1 from table1 where field1 = 'XXX'> - тоже быстро (1 сек.)

Индекс клустерный на поле field1, простой индекс на поле field2.
Поле field1 хранится в кодировке WIN-1251 (БД создана с поддержкой NLS).

Заранее пасиба.
...
Рейтинг: 0 / 0
Помогите с оптимизацией, пжалста.... :-)
    #32427937
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже информикс не подозревает что в таблице 10000.

update statistics high for table table1(field1,field2)

Кури мануал по вопросам статистики, планов выполнения запросов.


hints:
1. 248 полей это слишком, я бы переделал.
select * из такой таблицы лучше не делать (план может кардинально отличатся от select field1,field2)

2. И вообще что такое клустерный индекс? уникальный или кластерный?

3. Кластерный индекс не имеет смысла если создавать на пустой таблице.

4. Индексы бывают композитными т.е. для
select field1,field2 from table1 where field1 = 'XXX'
можно создать индекс table1(field1,field2)
...
Рейтинг: 0 / 0
Помогите с оптимизацией, пжалста.... :-)
    #32428073
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
колонка случайно не дату обозначает?

Видал я извращения типа колонки даты, а строки счета с остатками.
...
Рейтинг: 0 / 0
Помогите с оптимизацией, пжалста.... :-)
    #32428182
Vinny Puhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Денису: пасибо за советы, буду пробовать.

клустерный индекс - сиречь кластерный, создан был уже после добавления данных в таблицу(не на пустой)

Еще вопрос - а как работают индексы? т.е. при изменении данных в таблице они пересоздаются автоматом или нет?

cpr'у: колонка обозначает не даты а имена объектов (судов).

Еще такая идея - сделать field1 like 'XXX%%', а по его результатам сделать
field1 = 'XXX'. Может это также ускорит работу?
...
Рейтинг: 0 / 0
Помогите с оптимизацией, пжалста.... :-)
    #32428198
Vinny Puhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Денису: скажи, плиз, а какой мануал надо курить по вопросам статистики? Уж не перформанс гайд ли? Еще раз спасибо!
...
Рейтинг: 0 / 0
Помогите с оптимизацией, пжалста.... :-)
    #32428227
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторклустерный индекс - сиречь кластерный, создан был уже после добавления данных в таблицу(не на пустой)
Дело в том что при дальнейших изменениях таблицы записи не будут складыватся в порядке индекса, IMHO кластерные индексы помогают очень редко, у меня таких случаев обычно нет, я давно от них отказался.

авторЕще вопрос - а как работают индексы? т.е. при изменении данных в таблице они пересоздаются автоматом или нет? они изменяются при изменении содержимого полей по которым они построены, читай о B-tree index.

авторЕще такая идея - сделать field1 like 'XXX%%', а по его результатам сделать field1 = 'XXX'. Может это также ускорит работу?Обычно не имеет смысла, т.к. = 'XXX' более строгое условие и индекс должен использоваться.

Индекс не будет использоваться грубо говоря в случаях:
если содержимое field1 XXX во всех строках

в запросе присутствует order by yyy и идет оптимизация на first_rows

количество строк "<=3" (по мнению оптимизатора)
...
Рейтинг: 0 / 0
Помогите с оптимизацией, пжалста.... :-)
    #32428238
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДенису: скажи, плиз, а какой мануал надо курить по вопросам статистики? Уж не перформанс гайд ли? Еще раз спасибо!
Наверно перформанс гайд, для начала почитай на русском ftp://no-more.kiev.ua/pub/inf/ix_book.pdf]"Введение в Informix" Глава 5. Оптимизация запросов.

И другие книги: http://www.informix.com.ua/books.htm
...
Рейтинг: 0 / 0
Помогите с оптимизацией, пжалста.... :-)
    #32428308
Vinny Puhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Денис! Огромное пасиба! После update statistics усе залетало!!!
И за ссылочки отдельное спасибо!
...
Рейтинг: 0 / 0
Помогите с оптимизацией, пжалста.... :-)
    #32428334
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДенис! Огромное пасиба! После update statistics усе залетало!!!
И за ссылочки отдельное спасибо!
Куда он денется.
...
Рейтинг: 0 / 0
Помогите с оптимизацией, пжалста.... :-)
    #32428690
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При подобных проблемах первым делом надо смотреть план выполнения, который пишется в файл sqexplain.out если перед селектом поставить
set explain on;


В таком вот аксепте
...
Рейтинг: 0 / 0
Помогите с оптимизацией, пжалста.... :-)
    #32437030
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
полюбопытствую еще, а что есть строки таблицы?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Помогите с оптимизацией, пжалста.... :-)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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