Книга рекордов Привета.

User avatar
Strannik223
Уже с Приветом
Posts: 569
Joined: 14 Dec 2003 04:06
Location: Львов->Киев->Торонто

Post by Strannik223 »

Mssql server.
Я сам.
Уперся в ограничение в 255 joined tables :mrgreen:
Надо было делать отчеты по объектам поля которых динамически определяются пользователями, по моему 3 или 4 join что бы получить 1 поле. Уже не помню как выкрутился :D . Кажеться pivot table
Никакой разрухи нет. (с) Проф. Преображенский.
zVlad
Уже с Приветом
Posts: 15312
Joined: 30 Apr 2003 16:43

Post by zVlad »

Strannik223 wrote:Mssql server.
Я сам.
Уперся в ограничение в 255 joined tables :mrgreen:
Надо было делать отчеты по объектам поля которых динамически определяются пользователями, по моему 3 или 4 join что бы получить 1 поле. Уже не помню как выкрутился :D . Кажеться pivot table


Правильно ли будет понимать что во FROM clause нельзя перечислять больше 255 таблиц?
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

нельзя
а зачем ?
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
zVlad
Уже с Приветом
Posts: 15312
Joined: 30 Apr 2003 16:43

Post by zVlad »

Конечно нЕ зачем. Если мне память не изменяет в DB2 версии 6 это ограничение 15.

Вчера была истоия достойная книги рекордов Привета. Созданием индекса время выполнения удалось уменьшить с 40 минут до 8 секунд. А дело было так.
Для совсем другой программы я создал индекс. Ускорение хорошее, но не такое как выше. Поскольку у нас в DB2 все приложения статические и все запросы зранятся в каталоге я смог выявить другие программы, которые могут быть улучшены тем индексом.
Всего оказалось 15 программ. Для того чтобы они начали использовать новый индекс их нужно было перебайндить ("русское" слово заменяющее английское REBIND). Запустил соответствующее задание и оно "зависло" - ждет. Кого ждет? Та программа, о которой было вначале, была запущена и уже отработав 30 минут не выдала ни одного COMMIT и заблокировала мое задание.
Звоню аналисту, говорю надо бы вам добавить COMMITs, чтобы других не держать, как вы мол на продакшн с такой программой пойдете. На другой день добавляют COMMITs (а я им объясняю мол время конечно увеличится, но хоть с другими сможете работать одновременно), запускают - вылетает готовая через 8 секунд.
Все в шоке, никто не может понять почему. Наконец, сопоставив события я проверяю список программ, которые стали использовать новых индекс и естественно одной из них была та программа.
zVlad
Уже с Приветом
Posts: 15312
Joined: 30 Apr 2003 16:43

Post by zVlad »

Удалено....
Last edited by zVlad on 02 Apr 2004 12:51, edited 1 time in total.
zVlad
Уже с Приветом
Posts: 15312
Joined: 30 Apr 2003 16:43

Post by zVlad »

zVlad wrote:
zVlad wrote:...........


P.S. Да забыл сказать. На той таблице уже были, наверное, 3 индекса, и та программа один из них использовала.
Тоже может быть рекорд, но только в сравнении с Оракл - в нашем приложении не используется ни одного "hint-a". Ни в одном операторе. Хотя в DB2 такая возможность тоже есть.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

zVlad wrote:Всего оказалось 15 программ. Для того чтобы они начали использовать новый индекс их нужно было перебайндить ("русское" слово заменяющее английское REBIND).


Это тоже достойно своеобразного рекорда :)
То есть если нет автора программы то создавай индекс не создавай - все бесполезно ? :)
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
Helmsman
Уже с Приветом
Posts: 6449
Joined: 15 May 2003 00:04
Location: LA

Post by Helmsman »

zVlad wrote:Конечно нЕ зачем. Если мне память не изменяет в DB2 версии 6 это ограничение 15.

Вчера была истоия достойная книги рекордов Привета. Созданием индекса время выполнения удалось уменьшить с 40 минут до 8 секунд. А дело было так.
Для совсем другой программы я создал индекс. Ускорение хорошее, но не такое как выше. Поскольку у нас в DB2 все приложения статические и все запросы зранятся в каталоге я смог выявить другие программы, которые могут быть улучшены тем индексом.
Всего оказалось 15 программ. Для того чтобы они начали использовать новый индекс их нужно было перебайндить ("русское" слово заменяющее английское REBIND). Запустил соответствующее задание и оно "зависло" - ждет. Кого ждет? Та программа, о которой было вначале, была запущена и уже отработав 30 минут не выдала ни одного COMMIT и заблокировала мое задание.
Звоню аналисту, говорю надо бы вам добавить COMMITs, чтобы других не держать, как вы мол на продакшн с такой программой пойдете. На другой день добавляют COMMITs (а я им объясняю мол время конечно увеличится, но хоть с другими сможете работать одновременно), запускают - вылетает готовая через 8 секунд.
Все в шоке, никто не может понять почему. Наконец, сопоставив события я проверяю список программ, которые стали использовать новых индекс и естественно одной из них была та программа.


Это просто классический случай... Мы после 10-ти лет существования системы(у разных клиентов) продолжаем вылавливать подобные глюки. Потом клиент прибегает с выпученными глазами и вопросом "а чего оно так быстро бегает?"
zVlad
Уже с Приветом
Posts: 15312
Joined: 30 Apr 2003 16:43

Post by zVlad »

Dmitry67 wrote:
zVlad wrote:Всего оказалось 15 программ. Для того чтобы они начали использовать новый индекс их нужно было перебайндить ("русское" слово заменяющее английское REBIND).


Это тоже достойно своеобразного рекорда :)
То есть если нет автора программы то создавай индекс не создавай - все бесполезно ? :)


Sorry, Dima, my explanation was not complete. It doesn't mean "..если нет автора программы то создавай индекс не создавай - все бесполезно". Program, I have, is capable to generate DB2 commands like:

REBIND PACKAGE (<collection id>.<program name>) EXPLAIN(YES)

for each program which could get benefit from new index created. This is for static programs only. Dynamic programs will get better "immediately".
User avatar
smesh
Уже с Приветом
Posts: 203
Joined: 11 Nov 2003 19:53
Location: Bridgepointe

Post by smesh »

YellowMan wrote:мой шеф ... по ошибке кликнул вместо install.exe на install.jpg. И полчаса ждал когда же сдвинется полоска progress bar :)
Клиента попросили набрать 'dir' - тот набрал и ничего не видит?.. А Enter нажать его не попросили. :)
User avatar
smesh
Уже с Приветом
Posts: 203
Joined: 11 Nov 2003 19:53
Location: Bridgepointe

Post by smesh »

На стыке R-технологии и монофункционального программирования был создан предельный для редактора граф. Только автор умел перемещаться по этому графу. Граф был напечатан очень мелким шрифтом на листах A4xRxC (R=[3..5], C=[4..6]) и выглядел очень даже красиво.

Естественно, назывался он "граф В...а" :)

--
Glossary:
1. R-технология - визуальная среда программирования изображающая управляющие конструкции графически.

2. Монофункциональное программирования - стиль программирования, при котором вся программа пишется в одной функции (как правило, main():)

Cсылки:
http://www.technosoft.kiev.ua/
<my-web-page-in-profile>/13782.html (dear moderator, forgive me this little шалость :)
User avatar
SVK
Уже с Приветом
Posts: 8249
Joined: 23 Jul 2003 03:53
Location: SPb - KW - NY - CT - MD

Post by SVK »

zVlad wrote:my explanation was not complete. It doesn't mean "..если нет автора программы то создавай индекс не создавай - все бесполезно". Program, I have, is capable to generate DB2 commands like:

REBIND PACKAGE (<collection id>.<program name>) EXPLAIN(YES)

for each program which could get benefit from new index created. This is for static programs only. Dynamic programs will get better "immediately".

(Если это кому-нибудь интересно...) Вроде, они называются "embedded SQL statements" - когда вся предварительная обработка SQL выполняется один раз при компиляции, а затем привязывается к конкретной DBMS с помощью BIND/REBIND (в том числе, выбирается execution plan вообще, и индексы в частности). Автор программы тут не нужен, - но должно быть известно, какие приложения содержат embedded SQL, - и при изменениях базы в общем случае следует выполнять REBIND. Либо приложение может даже перестать работать (т.е. выдавать сообщения об ошибке), если сделаны серьезные изменения в базе (пересоздана таблица, например).

В случае "dynamic SQL statements" BIND не требуется, и на изменение индексов и прочего программа "реагирует" сразу. Зато при выполнении производится заново синтаксический анализ и PREPARE, прежде чем SQL будет реально выполнен.

В общем - палка о двух концах... :pain1:
LG - Life's good.
But good life is much better.
zVlad
Уже с Приветом
Posts: 15312
Joined: 30 Apr 2003 16:43

Post by zVlad »

Всё верно, SVK, только хочется добавить что во многих случаях DB2 сама знает что package, or plan нужно rebind и делает это сама. Случай с новым индексом - не этот случай. В смысле DB2 сама не делает REBIND.
User avatar
A. Fig Lee
Уже с Приветом
Posts: 12072
Joined: 17 Nov 2002 03:41
Location: английская колония

Post by A. Fig Lee »

Machine P233 32M memory. 128M swap
Harddrive 9 gig.
FreeBSD 5.2.1
Комиляция Java 2 SDK 1.4 стартовала Понедельник, 8 утра. 31 час спустя компиляция все продолжается. :mrgreen:
Придется memory докупить.
Верить нельзя никому - даже себе. Мне - можно!
User avatar
KVA
Уже с Приветом
Posts: 5347
Joined: 03 Feb 1999 10:01
Location: NJ, USA

Post by KVA »

A. Fig Lee wrote:Комиляция Java 2 SDK 1.4 стартовала Понедельник, 8 утра. 31 час спустя компиляция все продолжается. :mrgreen:
Придется memory докупить.


.... или использовать Jikes. Не уверен правда что он 1.4 держит.
User avatar
A. Fig Lee
Уже с Приветом
Posts: 12072
Joined: 17 Nov 2002 03:41
Location: английская колония

Post by A. Fig Lee »

KVA wrote:
A. Fig Lee wrote:Комиляция Java 2 SDK 1.4 стартовала Понедельник, 8 утра. 31 час спустя компиляция все продолжается. :mrgreen:
Придется memory докупить.


.... или использовать Jikes. Не уверен правда что он 1.4 держит.

Да нет, у меня же ни рантайма, ничего нет. Все надо из сурсов компайлить. Байт код чтоб исполнялся на чемто
Верить нельзя никому - даже себе. Мне - можно!
User avatar
smesh
Уже с Приветом
Posts: 203
Joined: 11 Nov 2003 19:53
Location: Bridgepointe

Post by smesh »

A. Fig Lee wrote:
KVA wrote:
A. Fig Lee wrote:Комиляция Java 2 SDK 1.4 стартовала Понедельник, 8 утра. 31 час спустя компиляция все продолжается. :mrgreen:
Придется memory докупить.


.... или использовать Jikes. Не уверен правда что он 1.4 держит.

Да нет, у меня же ни рантайма, ничего нет. Все надо из сурсов компайлить. Байт код чтоб исполнялся на чемто
Что, и на Sun нет binary, и негде сделать crosscompilation?
User avatar
Felis Chaus
Уже с Приветом
Posts: 540
Joined: 05 Feb 1999 10:01
Location: Louisville, CO 80027 USA

Post by Felis Chaus »

A. Fig Lee wrote:Machine P233 32M memory. 128M swap
Harddrive 9 gig.
FreeBSD 5.2.1
Комиляция Java 2 SDK 1.4 стартовала Понедельник, 8 утра. 31 час спустя компиляция все продолжается. :mrgreen:
Придется memory докупить.


То же самое, только проц 300, мозгов 190М и фря четвертая. KDE со всеми депенденсами, включая иксы и стафф. Трое суток.
/felis
User avatar
A. Fig Lee
Уже с Приветом
Posts: 12072
Joined: 17 Nov 2002 03:41
Location: английская колония

Post by A. Fig Lee »

smesh wrote:Что, и на Sun нет binary, и негде сделать crosscompilation?

Binary does not exists for FreeBSD at all.
Кросс компилейшн?
Дык я делаю
make install clean
2. Системы такой же нет.
Да я и не думал что так будет. Жаль уже процесс прерывать.
Верить нельзя никому - даже себе. Мне - можно!
User avatar
smesh
Уже с Приветом
Posts: 203
Joined: 11 Nov 2003 19:53
Location: Bridgepointe

Post by smesh »

A. Fig Lee wrote:
smesh wrote:Что, и на Sun нет binary, и негде сделать crosscompilation?

Binary does not exists for FreeBSD at all.
Кросс компилейшн?
Дык я делаю
make install clean
2. Системы такой же нет.
Да я и не думал что так будет. Жаль уже процесс прерывать.
То есть, я не могу скроссить на M$ под FreeBSD?
User avatar
A. Fig Lee
Уже с Приветом
Posts: 12072
Joined: 17 Nov 2002 03:41
Location: английская колония

Post by A. Fig Lee »

smesh wrote:То есть, я не могу скроссить на M$ под FreeBSD?

А как? Компилить на МС для Фри? Нет, ясен пень. Хедеры другие, компайлер другой, дефайны другие, мейки не те или я чего то не понял?
Верить нельзя никому - даже себе. Мне - можно!
User avatar
smesh
Уже с Приветом
Posts: 203
Joined: 11 Nov 2003 19:53
Location: Bridgepointe

Post by smesh »

A. Fig Lee wrote:
smesh wrote:То есть, я не могу скроссить на M$ под FreeBSD?

А как? Компилить на МС для Фри? Нет, ясен пень. Хедеры другие, компайлер другой, дефайны другие, мейки не те или я чего то не понял?
- Поручик, играете ли вы на фортепьяно?
- Не знаю, не пробовал. :)

Думаю, что это просто, но, увы, не пробовал-с... :pain1:
User avatar
A. Fig Lee
Уже с Приветом
Posts: 12072
Joined: 17 Nov 2002 03:41
Location: английская колония

Post by A. Fig Lee »

Felis Chaus wrote:То же самое, только проц 300, мозгов 190М и фря четвертая. KDE со всеми депенденсами, включая иксы и стафф. Трое суток.


8O 8O 8O
Верить нельзя никому - даже себе. Мне - можно!
User avatar
KVA
Уже с Приветом
Posts: 5347
Joined: 03 Feb 1999 10:01
Location: NJ, USA

Post by KVA »

A. Fig Lee wrote:Да нет, у меня же ни рантайма, ничего нет. Все надо из сурсов компайлить. Байт код чтоб исполнялся на чемто


Упс, не заметил что про саму SDK речь идет.
zVlad
Уже с Приветом
Posts: 15312
Joined: 30 Apr 2003 16:43

Post by zVlad »

Это сообщение послано из-под OS/2 (руссифицированная, FixPack 5) в браузере Mozilla 1.7. :gen1:

P.S. Я тут как-то жаловался что заголовок окна в Win 98 у меня показывал ?????? вместо "Привет". Так вот в OS/2 все ОК (наверно потому что "руссифицированная")

Return to “Вопросы и новости IT”