Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Помогите с оптимизацией, пжалста.... :-) / 11 сообщений из 11, страница 1 из 1
02.03.2004, 13:37
    #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
02.03.2004, 14:37
    #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
02.03.2004, 15:23
    #32428073
cpr
cpr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с оптимизацией, пжалста.... :-)
колонка случайно не дату обозначает?

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

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

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

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

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

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

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

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

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

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

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


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


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