Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / хумор / 25 сообщений из 31, страница 1 из 2
24.01.2007, 17:39
    #34279834
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
/topic/362323
...
Рейтинг: 0 / 0
24.01.2007, 18:22
    #34279982
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Ну, порадовал, Денис.
Уел всех :) Интересно, какие будут дальнейшие комменты :)
А бенчмарк, действительно , забавный. Надо будет тоже попробовать на более старых версиях IDS.
Кстати, а SET OPTIMIZATION или OPT_GOAL использовался ? Если нет, то я в очередной раз "снимаю шляпу".
...
Рейтинг: 0 / 0
24.01.2007, 18:26
    #34279998
svat2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Журавлев ДенисКлассный пипискамер.


да уж, дал повод позавидовать народу... :))

ЗЫ.
IBM Informix Dynamic Server Version 7.31.UD8 - за 1,8 сек.
IBM Informix Dynamic Server Version 9.40.UC8 - за 2,1 сек.

пень 4й.

ЗЫЫ. Кста, с хинтом ORDERED оба сервера "задумались о вечном"... :)
...
Рейтинг: 0 / 0
24.01.2007, 21:05
    #34280310
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
vasilisНадо будет тоже попробовать на более старых версиях IDS.
Попробовал.
Informix Dynamic Server Version 9.30.TC2 -- On-Line -- Up 01:26:25 -- 25472 Kbytes
7-летней давности Виндовая версия - мгновенное выполнение на старом Athlon 1.4Ghz
даже странно, чего у Оракла мозги оптимизатору заклинило...
...
Рейтинг: 0 / 0
24.01.2007, 21:49
    #34280344
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Hi
С уважением отношусь к ix. Так справедливости ради, то что он нашел план быстрее не означает, что запрос исполнился быстрее на "серьезных" данных. Я об соотношении parsing/execution/fetching. Как гооворится, лучше день потерять, зато потом за час долететь :)
...
Рейтинг: 0 / 0
25.01.2007, 08:47
    #34280692
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Курьезный случай вообще говоря, оптимизатор оракла задумывается, оптимизатор информикса мгновенно строит хороший план. Попробую разобраться с планами и потрассировать оракловый cbo.

select {+explain, avoid_execute}
real 0m0.148s


set optimization low;
select {+explain, avoid_execute}
real 0m0.136s


set optimization low;
select {+explain}
real 0m9.117s
...
Рейтинг: 0 / 0
25.01.2007, 08:58
    #34280710
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Relic HunterHi
С уважением отношусь к ix. Так справедливости ради, то что он нашел план быстрее не означает, что запрос исполнился быстрее на "серьезных" данных. Я об соотношении parsing/execution/fetching. Как гооворится, лучше день потерять, зато потом за час долететь :)проблемы информикса лежат несколько в перпендикулярной плоскости.

Например в оракле мне притаскивают запрос (обычно запрос несколько сложнее таблиц так на 20 и с пятью коррелированными exists, (встречу проектировщика -- убью тупым топором)):

select *
from a,b
where a.f0=7 and a.f1=b.f1 and func1(a.f3)=0
Возвращает 100 строк
Работает 10 мин, комментирую последний предикат - 0 сек. Т.е. порядок применения предикатов, функцию надо применить в конце, постджойн. Я делаю очень просто:
select * from
(select *
from a,b
where a.f0=7 and a.f1=b.f1
and rownum>0 -- не даем оптимизатору возможности сделать merge, и push_predicate)
where func1(a.f3)=0

В информиксе пришлось бы писать через временные таблицы, и в итоге бы исполнялось 1 сек. Т.е. в информиксе просто нет понятий view merge, predicate pushing, predicate pruning (хотя может оно и есть где-то внутрях).
...
Рейтинг: 0 / 0
25.01.2007, 11:29
    #34281222
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Relic HunterHi
С уважением отношусь к ix. Так справедливости ради, то что он нашел план быстрее не означает, что запрос исполнился быстрее на "серьезных" данных. Я об соотношении parsing/execution/fetching. Как гооворится, лучше день потерять, зато потом за час долететь :)

Со своей стороны ( имея практику администрирования похожих систем ) на Oracle & Informix
могу сказать что execution/fetching Informix делает быстрее, по причине архитектурных особенностей (асинхроное чтение, отсутствие слотов транзакций в страницах данных,
конвееры агрегирования и сортировки).

p.s. При всем моем уважении к Oracle.
...
Рейтинг: 0 / 0
25.01.2007, 16:44
    #34282767
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Поигрался с ораклом 10.2.0.1.0, план строится за 18 сек, исполняется 0.1 сек.
В плане проходы по индексу, правда ffs.
Трассировка показала что рассматривает 1348 permutations (_optimizer_max_permutations = 2000), видимо из-за дикого числа предикатов, каждая рассматривается немеряное кол-во времени, причем рассматриваются такие join methods и access methods, которых в информиксе просто не существует, плюс стоимость анализируется по двум показателям io и cpu, а не по одному.
Убирание индексов и или сбор статистики только ухудшают положение.
...
Рейтинг: 0 / 0
25.01.2007, 17:23
    #34282915
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Благо у Оракла есть т.н. "stored outline", т.е. можно закрепить план выполнения для запроса в системных таблицах. В таком случае повторного hardparse уже не будет :). А так-бы пришлось заганять все в хранимки.

П.С.
Вопрос и информиксам. Как у вас обстоят дела с возвращением результирующего набора из процедуры, это возможно?
У MSSQL есть рекордсет, у Оракла реф.курсор и pipelined finctions. Что-то есть похожее тут?
Журавлев ДенисПоигрался с ораклом 10.2.0.1.0, план строится за 18 сек, исполняется 0.1 сек.
В плане проходы по индексу, правда ffs.
Трассировка показала что рассматривает 1348 permutations (_optimizer_max_permutations = 2000), видимо из-за дикого числа предикатов, каждая рассматривается немеряное кол-во времени, причем рассматриваются такие join methods и access methods, которых в информиксе просто не существует, плюс стоимость анализируется по двум показателям io и cpu, а не по одному.
Убирание индексов и или сбор статистики только ухудшают положение.
...
Рейтинг: 0 / 0
25.01.2007, 17:36
    #34282971
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Relic HunterВопрос и информиксам. Как у вас обстоят дела с возвращением результирующего набора из процедуры, это возможно?
У MSSQL есть рекордсет, у Оракла реф.курсор и pipelined finctions. Что-то есть похожее тут?
Каким образом можно вернуть выборку из хранимой процедуры ? RETURN WITH RESUME
...
Рейтинг: 0 / 0
25.01.2007, 17:45
    #34282998
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Relic HunterБлаго у Оракла есть т.н. "stored outline", т.е. можно закрепить план выполнения для запроса в системных таблицах. В таком случае повторного hardparse уже не будет :). А так-бы пришлось заганять все в хранимки.Я вам щас сикрет открою: информикс делает хардпарс в момент когда узнает значение бинд переменной препаренного курсора, т.е. каждый курсор хардпарсится, но так как время парса НИЧТОЖНО мало, это никого не парит. Лет пять назад информикс научился кешировать планы запросов, так вот этой фичей выключенной по умолчанию, никто не пользуется.

Это большой плюс и настолько же большой минус информикса.

А еще у информикса только MTS, dedicated отменили 20 лет назад.
...
Рейтинг: 0 / 0
25.01.2007, 17:59
    #34283055
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Журавлев ДенисЯ вам щас сикрет открою: информикс делает хардпарс в момент когда узнает значение бинд переменной препаренного курсора, т.е. каждый курсор хардпарсится, но так как время парса НИЧТОЖНО малоКак это им удалось? У Оракла есть Shared Pool, у MSSQL такого нету, поэтому "strongly recomended" заганять даже простые селекты в хранимки, чтобы "почки" серверу не посадить :)
...
Рейтинг: 0 / 0
25.01.2007, 18:09
    #34283099
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Relic HunterКак это им удалось? У Оракла есть Shared Pool, у MSSQL такого нету, поэтому "strongly recomended" заганять даже простые селекты в хранимки, чтобы "почки" серверу не посадить :)

По сравнению sql синтаксимом оракла, синтаксис informix беден. Поэтому модель оптимизатора вероятно сильно проще, во вторых на курсах рассказывали байку что когда для 9-го информикса оптимизатор переписали с С на С++, стало сильно прозрачней и лучше, в третих нет извратов merge/sort join, iffs, т.е. у оптимизатора сильно меньше вариантов планов, в четвертых уже лет 15 всегда используются гистограммы, но самое простое объяснение что модель cbo нарисовал более сильный математик.
...
Рейтинг: 0 / 0
30.01.2007, 10:48
    #34291853
sysmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Вот столько вот дней без перезагрузки!!!
Никакого фотошопа - честное пионерское.
Единственное что могу сказать, что этот тестовый IDS работает на VMware.
...
Рейтинг: 0 / 0
30.01.2007, 11:38
    #34292067
хумор
Несложный расчет:
49709 / 365 = ~ 136 лет.

А я думал, что компьютеры гораздо моложе.
...
Рейтинг: 0 / 0
30.01.2007, 20:14
    #34294237
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Журавлев Денисна курсах рассказывали байку что когда для 9-го информикса оптимизатор переписали с С на С++, стало сильно прозрачней и лучше

Нет никакого C++ внутре информикса. Там у нее неонка в виде чистого С.
Это я тебе, голуба, говорю как краевед.
...
Рейтинг: 0 / 0
30.01.2007, 20:59
    #34294297
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
:)
Наверное на курсах с прямым углом перепутали, informix c++ csdk.
Выбегалло Журавлев Денисна курсах рассказывали байку что когда для 9-го информикса оптимизатор переписали с С на С++, стало сильно прозрачней и лучше

Нет никакого C++ внутре информикса. Там у нее неонка в виде чистого С.
Это я тебе, голуба, говорю как краевед.
...
Рейтинг: 0 / 0
31.01.2007, 08:42
    #34294796
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Relic Hunter:)
Наверное на курсах с прямым углом перепутали, informix c++ csdk.
...Речь про оптимизатор шла. Но было это давно в 01 году, может мне приснилось.
...
Рейтинг: 0 / 0
31.01.2007, 12:35
    #34295698
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Выбегалло Журавлев Денисна курсах рассказывали байку что когда для 9-го информикса оптимизатор переписали с С на С++, стало сильно прозрачней и лучше

Нет никакого C++ внутре информикса. Там у нее неонка в виде чистого С.
Это я тебе, голуба, говорю как краевед.

Николай говорил , что содержание в єтой неонке чистого С
только 80%.
Интересно, что есть остальные 20%.
...
Рейтинг: 0 / 0
31.01.2007, 17:25
    #34297121
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Одно на ум приходит -- АСМ :) onstat-Николай говорил , что содержание в єтой неонке чистого С
только 80%.
Интересно, что есть остальные 20%.
...
Рейтинг: 0 / 0
31.01.2007, 23:26
    #34297710
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
onstat- Выбегалло Журавлев Денисна курсах рассказывали байку что когда для 9-го информикса оптимизатор переписали с С на С++, стало сильно прозрачней и лучше

Нет никакого C++ внутре информикса. Там у нее неонка в виде чистого С.
Это я тебе, голуба, говорю как краевед.

Николай говорил , что содержание в єтой неонке чистого С
только 80%.
Интересно, что есть остальные 20%.

Николай, насколько я помню, занимается в основном DB2. Эта да, имеет внутре достаточно много C++ кода.
В Informix engine С++ не было - и это была принципиальная позиция, чтобы не трахаться с несовместимостями компиляторов под разные платформы. Несовместимостей хватало в древнем и сто раз застандартизованном С, который к тому же работает быстрее - незачем усугублять ситуацию.
...
Рейтинг: 0 / 0
01.02.2007, 12:51
    #34298894
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Relic HunterОдно на ум приходит -- АСМ :) onstat-Николай говорил , что содержание в єтой неонке чистого С
только 80%.
Интересно, что есть остальные 20%.

Не думаю, поковырявшись в DSA, я не нашел критичных мест, где бы была необходимость
использовать АСМ.

Учитывая то, что мотор с нуля переписан в 1991-1993 годах, когда С++ был очень слабо стандартизован, я согласен г-ном Выбегалло что нам действительно чистый С.

Так же использование С++ затрудняется тем, что при созданнии полиморфных классов
в разделяемой памяти Unix имеются проблемы с вызовами виртуалюных методов из
разных программ (oninit, onmode, ontape) .

Это кстате одна из причин, по которым приостановилась работа и над проектом OpenDSA.

Поняв что изобретать велосиед дело не благодарное, я, по помере наличия свободного времени,
разбираюсь с интерфейсом OpenMP ,
дабы помимо всего прочего закрыть вопросы платформонезависимости ядра.

Если хватит времени воплотить все имеющиеся идеи, получится очень даже хороший мотор.
...
Рейтинг: 0 / 0
01.02.2007, 20:33
    #34300426
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
onstat- Relic HunterОдно на ум приходит -- АСМ :) onstat-Николай говорил , что содержание в єтой неонке чистого С
только 80%.
Интересно, что есть остальные 20%.

Не думаю, поковырявшись в DSA, я не нашел критичных мест, где бы была необходимость
использовать АСМ.


ACM там используется в очень тонком слое, занимающемся низкоуровневыми операциями на разном железе. Навскидку помню только реализацию переключения нитей, которая должна быть атомарной для процессора. У каждой платформы за это отвечает своя команда на ассемблере.
...
Рейтинг: 0 / 0
02.02.2007, 11:51
    #34301622
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хумор
Выбегалло onstat- Relic HunterОдно на ум приходит -- АСМ :) onstat-Николай говорил , что содержание в єтой неонке чистого С
только 80%.
Интересно, что есть остальные 20%.

Не думаю, поковырявшись в DSA, я не нашел критичных мест, где бы была необходимость
использовать АСМ.


ACM там используется в очень тонком слое, занимающемся низкоуровневыми операциями на разном железе. Навскидку помню только реализацию переключения нитей, которая должна быть атомарной для процессора. У каждой платформы за это отвечает своя команда на ассемблере.

Нить informix и нить ОС (pthread) это абсолютно разные вещи.

Переключение нитей в informix на контекст процесса(ОС) не влияют, они атомарны по умолчанию.
А несколько нитей informix могут выполняться последовательно в одном
контексте 1-го процесса(ОС).

А согласование паралельного выполнения нитей informix на разных процессорах( VP ) решается
с помошью системных вызовов ОС и управлющих структур(thread-control block (TCB)) в разделяемой памяти сервера Informix.
И асемблер там никчему ИМХО.
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / хумор / 25 сообщений из 31, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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