|
хумор
|
|||
---|---|---|---|
#18+
Ну, порадовал, Денис. Уел всех :) Интересно, какие будут дальнейшие комменты :) А бенчмарк, действительно , забавный. Надо будет тоже попробовать на более старых версиях IDS. Кстати, а SET OPTIMIZATION или OPT_GOAL использовался ? Если нет, то я в очередной раз "снимаю шляпу". ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2007, 18:22 |
|
хумор
|
|||
---|---|---|---|
#18+
Журавлев ДенисКлассный пипискамер. да уж, дал повод позавидовать народу... :)) ЗЫ. IBM Informix Dynamic Server Version 7.31.UD8 - за 1,8 сек. IBM Informix Dynamic Server Version 9.40.UC8 - за 2,1 сек. пень 4й. ЗЫЫ. Кста, с хинтом ORDERED оба сервера "задумались о вечном"... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2007, 18:26 |
|
хумор
|
|||
---|---|---|---|
#18+
vasilisНадо будет тоже попробовать на более старых версиях IDS. Попробовал. Informix Dynamic Server Version 9.30.TC2 -- On-Line -- Up 01:26:25 -- 25472 Kbytes 7-летней давности Виндовая версия - мгновенное выполнение на старом Athlon 1.4Ghz даже странно, чего у Оракла мозги оптимизатору заклинило... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2007, 21:05 |
|
хумор
|
|||
---|---|---|---|
#18+
Hi С уважением отношусь к ix. Так справедливости ради, то что он нашел план быстрее не означает, что запрос исполнился быстрее на "серьезных" данных. Я об соотношении parsing/execution/fetching. Как гооворится, лучше день потерять, зато потом за час долететь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2007, 21:49 |
|
хумор
|
|||
---|---|---|---|
#18+
Курьезный случай вообще говоря, оптимизатор оракла задумывается, оптимизатор информикса мгновенно строит хороший план. Попробую разобраться с планами и потрассировать оракловый 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2007, 08:47 |
|
хумор
|
|||
---|---|---|---|
#18+
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 (хотя может оно и есть где-то внутрях). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2007, 08:58 |
|
хумор
|
|||
---|---|---|---|
#18+
Relic HunterHi С уважением отношусь к ix. Так справедливости ради, то что он нашел план быстрее не означает, что запрос исполнился быстрее на "серьезных" данных. Я об соотношении parsing/execution/fetching. Как гооворится, лучше день потерять, зато потом за час долететь :) Со своей стороны ( имея практику администрирования похожих систем ) на Oracle & Informix могу сказать что execution/fetching Informix делает быстрее, по причине архитектурных особенностей (асинхроное чтение, отсутствие слотов транзакций в страницах данных, конвееры агрегирования и сортировки). p.s. При всем моем уважении к Oracle. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2007, 11:29 |
|
хумор
|
|||
---|---|---|---|
#18+
Поигрался с ораклом 10.2.0.1.0, план строится за 18 сек, исполняется 0.1 сек. В плане проходы по индексу, правда ffs. Трассировка показала что рассматривает 1348 permutations (_optimizer_max_permutations = 2000), видимо из-за дикого числа предикатов, каждая рассматривается немеряное кол-во времени, причем рассматриваются такие join methods и access methods, которых в информиксе просто не существует, плюс стоимость анализируется по двум показателям io и cpu, а не по одному. Убирание индексов и или сбор статистики только ухудшают положение. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2007, 16:44 |
|
хумор
|
|||
---|---|---|---|
#18+
Благо у Оракла есть т.н. "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, а не по одному. Убирание индексов и или сбор статистики только ухудшают положение. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2007, 17:23 |
|
хумор
|
|||
---|---|---|---|
#18+
Relic HunterВопрос и информиксам. Как у вас обстоят дела с возвращением результирующего набора из процедуры, это возможно? У MSSQL есть рекордсет, у Оракла реф.курсор и pipelined finctions. Что-то есть похожее тут? Каким образом можно вернуть выборку из хранимой процедуры ? RETURN WITH RESUME ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2007, 17:36 |
|
хумор
|
|||
---|---|---|---|
#18+
Relic HunterБлаго у Оракла есть т.н. "stored outline", т.е. можно закрепить план выполнения для запроса в системных таблицах. В таком случае повторного hardparse уже не будет :). А так-бы пришлось заганять все в хранимки.Я вам щас сикрет открою: информикс делает хардпарс в момент когда узнает значение бинд переменной препаренного курсора, т.е. каждый курсор хардпарсится, но так как время парса НИЧТОЖНО мало, это никого не парит. Лет пять назад информикс научился кешировать планы запросов, так вот этой фичей выключенной по умолчанию, никто не пользуется. Это большой плюс и настолько же большой минус информикса. А еще у информикса только MTS, dedicated отменили 20 лет назад. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2007, 17:45 |
|
хумор
|
|||
---|---|---|---|
#18+
Журавлев ДенисЯ вам щас сикрет открою: информикс делает хардпарс в момент когда узнает значение бинд переменной препаренного курсора, т.е. каждый курсор хардпарсится, но так как время парса НИЧТОЖНО малоКак это им удалось? У Оракла есть Shared Pool, у MSSQL такого нету, поэтому "strongly recomended" заганять даже простые селекты в хранимки, чтобы "почки" серверу не посадить :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2007, 17:59 |
|
хумор
|
|||
---|---|---|---|
#18+
Relic HunterКак это им удалось? У Оракла есть Shared Pool, у MSSQL такого нету, поэтому "strongly recomended" заганять даже простые селекты в хранимки, чтобы "почки" серверу не посадить :) По сравнению sql синтаксимом оракла, синтаксис informix беден. Поэтому модель оптимизатора вероятно сильно проще, во вторых на курсах рассказывали байку что когда для 9-го информикса оптимизатор переписали с С на С++, стало сильно прозрачней и лучше, в третих нет извратов merge/sort join, iffs, т.е. у оптимизатора сильно меньше вариантов планов, в четвертых уже лет 15 всегда используются гистограммы, но самое простое объяснение что модель cbo нарисовал более сильный математик. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2007, 18:09 |
|
хумор
|
|||
---|---|---|---|
#18+
Вот столько вот дней без перезагрузки!!! Никакого фотошопа - честное пионерское. Единственное что могу сказать, что этот тестовый IDS работает на VMware. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2007, 10:48 |
|
хумор
|
|||
---|---|---|---|
#18+
Несложный расчет: 49709 / 365 = ~ 136 лет. А я думал, что компьютеры гораздо моложе. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2007, 11:38 |
|
хумор
|
|||
---|---|---|---|
#18+
Журавлев Денисна курсах рассказывали байку что когда для 9-го информикса оптимизатор переписали с С на С++, стало сильно прозрачней и лучше Нет никакого C++ внутре информикса. Там у нее неонка в виде чистого С. Это я тебе, голуба, говорю как краевед. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2007, 20:14 |
|
хумор
|
|||
---|---|---|---|
#18+
:) Наверное на курсах с прямым углом перепутали, informix c++ csdk. Выбегалло Журавлев Денисна курсах рассказывали байку что когда для 9-го информикса оптимизатор переписали с С на С++, стало сильно прозрачней и лучше Нет никакого C++ внутре информикса. Там у нее неонка в виде чистого С. Это я тебе, голуба, говорю как краевед. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2007, 20:59 |
|
хумор
|
|||
---|---|---|---|
#18+
Relic Hunter:) Наверное на курсах с прямым углом перепутали, informix c++ csdk. ...Речь про оптимизатор шла. Но было это давно в 01 году, может мне приснилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2007, 08:42 |
|
хумор
|
|||
---|---|---|---|
#18+
Выбегалло Журавлев Денисна курсах рассказывали байку что когда для 9-го информикса оптимизатор переписали с С на С++, стало сильно прозрачней и лучше Нет никакого C++ внутре информикса. Там у нее неонка в виде чистого С. Это я тебе, голуба, говорю как краевед. Николай говорил , что содержание в єтой неонке чистого С только 80%. Интересно, что есть остальные 20%. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2007, 12:35 |
|
хумор
|
|||
---|---|---|---|
#18+
Одно на ум приходит -- АСМ :) onstat-Николай говорил , что содержание в єтой неонке чистого С только 80%. Интересно, что есть остальные 20%. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2007, 17:25 |
|
хумор
|
|||
---|---|---|---|
#18+
onstat- Выбегалло Журавлев Денисна курсах рассказывали байку что когда для 9-го информикса оптимизатор переписали с С на С++, стало сильно прозрачней и лучше Нет никакого C++ внутре информикса. Там у нее неонка в виде чистого С. Это я тебе, голуба, говорю как краевед. Николай говорил , что содержание в єтой неонке чистого С только 80%. Интересно, что есть остальные 20%. Николай, насколько я помню, занимается в основном DB2. Эта да, имеет внутре достаточно много C++ кода. В Informix engine С++ не было - и это была принципиальная позиция, чтобы не трахаться с несовместимостями компиляторов под разные платформы. Несовместимостей хватало в древнем и сто раз застандартизованном С, который к тому же работает быстрее - незачем усугублять ситуацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2007, 23:26 |
|
хумор
|
|||
---|---|---|---|
#18+
Relic HunterОдно на ум приходит -- АСМ :) onstat-Николай говорил , что содержание в єтой неонке чистого С только 80%. Интересно, что есть остальные 20%. Не думаю, поковырявшись в DSA, я не нашел критичных мест, где бы была необходимость использовать АСМ. Учитывая то, что мотор с нуля переписан в 1991-1993 годах, когда С++ был очень слабо стандартизован, я согласен г-ном Выбегалло что нам действительно чистый С. Так же использование С++ затрудняется тем, что при созданнии полиморфных классов в разделяемой памяти Unix имеются проблемы с вызовами виртуалюных методов из разных программ (oninit, onmode, ontape) . Это кстате одна из причин, по которым приостановилась работа и над проектом OpenDSA. Поняв что изобретать велосиед дело не благодарное, я, по помере наличия свободного времени, разбираюсь с интерфейсом OpenMP , дабы помимо всего прочего закрыть вопросы платформонезависимости ядра. Если хватит времени воплотить все имеющиеся идеи, получится очень даже хороший мотор. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2007, 12:51 |
|
хумор
|
|||
---|---|---|---|
#18+
onstat- Relic HunterОдно на ум приходит -- АСМ :) onstat-Николай говорил , что содержание в єтой неонке чистого С только 80%. Интересно, что есть остальные 20%. Не думаю, поковырявшись в DSA, я не нашел критичных мест, где бы была необходимость использовать АСМ. ACM там используется в очень тонком слое, занимающемся низкоуровневыми операциями на разном железе. Навскидку помню только реализацию переключения нитей, которая должна быть атомарной для процессора. У каждой платформы за это отвечает своя команда на ассемблере. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2007, 20:33 |
|
хумор
|
|||
---|---|---|---|
#18+
Выбегалло onstat- Relic HunterОдно на ум приходит -- АСМ :) onstat-Николай говорил , что содержание в єтой неонке чистого С только 80%. Интересно, что есть остальные 20%. Не думаю, поковырявшись в DSA, я не нашел критичных мест, где бы была необходимость использовать АСМ. ACM там используется в очень тонком слое, занимающемся низкоуровневыми операциями на разном железе. Навскидку помню только реализацию переключения нитей, которая должна быть атомарной для процессора. У каждой платформы за это отвечает своя команда на ассемблере. Нить informix и нить ОС (pthread) это абсолютно разные вещи. Переключение нитей в informix на контекст процесса(ОС) не влияют, они атомарны по умолчанию. А несколько нитей informix могут выполняться последовательно в одном контексте 1-го процесса(ОС). А согласование паралельного выполнения нитей informix на разных процессорах( VP ) решается с помошью системных вызовов ОС и управлющих структур(thread-control block (TCB)) в разделяемой памяти сервера Informix. И асемблер там никчему ИМХО. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2007, 11:51 |
|
|
start [/forum/topic.php?fid=44&msg=34297121&tid=1607716]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 173ms |
0 / 0 |