Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
medoed, честно говоря, у меня очень противоположное мнение. Разрабатывая и эксплуатируя разнообразные системы под ms sql c 1995 года v6.0-2008R2, oracle с 2000 года v8.1.5-11gR2, db2/400 под r5v4, sybase ase и db2luw 9.1-9.7fp8 именно последнюю считаю самой устойчивой, беспроблемной и логично организованной. Непонимания и возмущения в разработке у меня вызывали все rdbms, но, как правило, проблемы были только в моем уровне недопонимания особенностей каждого конкретного оптимизатора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 13:56 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
aserdjukmedoed, честно говоря, у меня очень противоположное мнение. Разрабатывая и эксплуатируя разнообразные системы под ms sql c 1995 года v6.0-2008R2, oracle с 2000 года v8.1.5-11gR2, db2/400 под r5v4, sybase ase и db2luw 9.1-9.7fp8 именно последнюю считаю самой устойчивой, беспроблемной и логично организованной. Непонимания и возмущения в разработке у меня вызывали все rdbms, но, как правило, проблемы были только в моем уровне недопонимания особенностей каждого конкретного оптимизатора. Ну не знаю мне первое время не хватало в DB2 (я и сейчас так считаю) профайлера и визуальных средств, оные присутствуют в MSSQL, начиная с 2000 версии. Я работал в крупной страховой не так давно, там был как раз SQL-2008R2 , особых проблем со стабильностью серверов тоже не наблюдал. А вот отладка и оптимизация, под SQL была значительно проще... Кстате в логе монитора от MSSQL, нет затроеенности команд, которая встречается в системном мониторе DB2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 15:13 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
medoedНу не знаю мне первое время не хватало в DB2 (я и сейчас так считаю) профайлера и визуальных средств, оные присутствуют в MSSQL, начиная с 2000 версии. Я работал в крупной страховой не так давно, там был как раз SQL-2008R2 , особых проблем со стабильностью серверов тоже не наблюдал. А вот отладка и оптимизация, под SQL была значительно проще... Кстате в логе монитора от MSSQL, нет затроеенности команд, которая встречается в системном мониторе DB2 Я пользуюсь ibm datastudio и optim для визуализации планов. Ну и для ковыряний с Oracle 10&11, MS SQL 2005&2008, DB2/400 :) Плюс Optim perfomance metrics для db2 9.7 Аналогом трейса ms sql выбрал CREATE EVENT, который пишет в отдельный tablespace не создавая нагрузки на основном массиве. Кстати, поковырялся со своими PMR, открытыми в IBM, оказалось, что есть похожий, проявившийся как раз при создании view. План исполнения меняется используются индексы для t1.fld1 и t2.fld2 select t1.fld1 from table1 t1 inner join table2 t2 on ... left outer join table3 t3 on ... where t1.fld1 = ? and t2.fld2 = ? не используются индексы для t1.fld1 и t2.fld2 select fld1 from ( select t1.fld1 from table1 t1 inner join table2 t2 on ... left outer join table3 t3 on ... ) zzz where zzz.fld1 = ? and zzz.fld2 = ? До решения проблемы затычка была сделана в виде udf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 16:49 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
aserdjukmedoedНу не знаю мне первое время не хватало в DB2 (я и сейчас так считаю) профайлера и визуальных средств, оные присутствуют в MSSQL, начиная с 2000 версии. Я работал в крупной страховой не так давно, там был как раз SQL-2008R2 , особых проблем со стабильностью серверов тоже не наблюдал. А вот отладка и оптимизация, под SQL была значительно проще... Кстате в логе монитора от MSSQL, нет затроеенности команд, которая встречается в системном мониторе DB2 Я пользуюсь ibm datastudio и optim для визуализации планов. Ну и для ковыряний с Oracle 10&11, MS SQL 2005&2008, DB2/400 :) Плюс Optim perfomance metrics для db2 9.7 Аналогом трейса ms sql выбрал CREATE EVENT, который пишет в отдельный tablespace не создавая нагрузки на основном массиве. Кстати, поковырялся со своими PMR, открытыми в IBM, оказалось, что есть похожий, проявившийся как раз при создании view. План исполнения меняется используются индексы для t1.fld1 и t2.fld2 select t1.fld1 from table1 t1 inner join table2 t2 on ... left outer join table3 t3 on ... where t1.fld1 = ? and t2.fld2 = ? не используются индексы для t1.fld1 и t2.fld2 select fld1 from ( select t1.fld1 from table1 t1 inner join table2 t2 on ... left outer join table3 t3 on ... ) zzz where zzz.fld1 = ? and zzz.fld2 = ? До решения проблемы затычка была сделана в виде udf Ну может быть со временем, в 10 или 11 версии DB2 сделают нормальный родной профайлер, который будет по имени машины, Application, логину фильтровать и запускаться с компа юзера локально, а не грузить сервер DB2 в файлы или в таблицы (может у меня на серваке места нет), но в MSSQL такой профайлер уже лет 10 есть. По запросу - я понимаю, что индексы не подтягиваются, поэтому и хотел оптимизатору сделать подсказку на лету с именем индекса, а не через ж.опу udf. Но безусловно, если долго мучиться и в DB2 все получиться. Мне лично времени и сил жалко... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 17:23 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
medoedНу может быть со временем, в 10 или 11 версии DB2 сделают нормальный родной профайлер, который будет по имени машины, Application, логину фильтровать и запускаться с компа юзера локально, а не грузить сервер DB2 в файлы или в таблицы (может у меня на серваке места нет), но в MSSQL такой профайлер уже лет 10 есть. По запросу - я понимаю, что индексы не подтягиваются, поэтому и хотел оптимизатору сделать подсказку на лету с именем индекса, а не через ж.опу udf. Но безусловно, если долго мучиться и в DB2 все получиться. Мне лично времени и сил жалко... Мне вот, к примеру, страшно жалко моих сотрудников, которые пишут сотни отчетов на Оракле. Такого обьема хинтования и сопровождающего его чувства обреченности я ни от кого больше не слышу. Как им только не жалко своего времени и сил :) А коллега с MS SQL замучался балансировать между необходимость написать hash перед словом join и падением боевого 2008R2 от этого. Зато ленивый dba автоматически ловит изменившиеся планы запросов на продакт db2 и также лениво лечит их с помощью db2advis. Так что у каждого свои проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 17:52 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
aserdjukmedoedНу может быть со временем, в 10 или 11 версии DB2 сделают нормальный родной профайлер, который будет по имени машины, Application, логину фильтровать и запускаться с компа юзера локально, а не грузить сервер DB2 в файлы или в таблицы (может у меня на серваке места нет), но в MSSQL такой профайлер уже лет 10 есть. По запросу - я понимаю, что индексы не подтягиваются, поэтому и хотел оптимизатору сделать подсказку на лету с именем индекса, а не через ж.опу udf. Но безусловно, если долго мучиться и в DB2 все получиться. Мне лично времени и сил жалко... Мне вот, к примеру, страшно жалко моих сотрудников, которые пишут сотни отчетов на Оракле. Такого обьема хинтования и сопровождающего его чувства обреченности я ни от кого больше не слышу. Как им только не жалко своего времени и сил :) А коллега с MS SQL замучался балансировать между необходимость написать hash перед словом join и падением боевого 2008R2 от этого. Зато ленивый dba автоматически ловит изменившиеся планы запросов на продакт db2 и также лениво лечит их с помощью db2advis. Так что у каждого свои проблемы. >>Мне вот, к примеру, страшно жалко моих сотрудников, которые пишут сотни отчетов на Оракле. >>Такого обьема хинтования и сопровождающего его чувства обреченности я ни от кого больше не слышу. Как им только не >>жалко своего времени и сил :) Ваши они по крепостному праву? Может всё таки коллег? А зачем так много хинтовать, что на Oracle, что на Mssql хинтование нужно не более 1% , а может и 0.1% от кода, как я писал выше. Тем более в Оракле функциональные индексы возможны... >>А коллега с MS SQL замучался балансировать между необходимость написать hash перед словом join и падением боевого 2008R2 >>от этого. Ну х.з. зачем hash - принудительно писать, можно это добиться правильным построением запроса, exists побольше в запросы и все получится Какой то фантастишь вы рассказываете)) >>Зато ленивый dba автоматически ловит изменившиеся планы запросов на продакт db2 и также лениво лечит их с помощью >>db2advis. В моем случае с примером table scan по view - мне db2advise - не помог. А в случае ленивого админа MSSQL даже отдельную утилиту запускать не нужно, а можно сразу автоматический джоб создать, который периодически будет напоминать, ему или разрабам об индексах: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 18:32 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
Ссылку забыл: статья: http://imamyshev.wordpress.com/2009/06/19/sql-server-2005-2008-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BD%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D1%8E%D1%89%D0%B8%D1%85-%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%BE%D0%B2/%5D]http://imamyshev.wordpress.com/2009/06/19/sql-server-2005-2008-создание-недостающих-индексов/] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 18:33 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
medoedПо запросу - я понимаю, что индексы не подтягиваются, поэтому и хотел оптимизатору сделать подсказку на лету с именем индекса, а не через ж.опу udf Нашёл свой старый пост по теме. Ж.оп и udf не надо использовать :) План выполнения и статистика. Может, кому-то будет интересно, как это делать с представлениями, и они не покинут нас так безвременно (в лучшем смысле этого слова), как автор топика :) Ещё раз DDL для удобства Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Обратите внимание, как мы обращаемся к таблице, на которой построено представление: "tTotal/t1" В плане мы увидим: Код: plaintext 1. 2. 3. 4. 5. Ну и обращаем мнимание, что текст запроса надо набирать в профиле в точности (тот же регистр букв) такой же, как и в приложении. Пробелы, символы возврата каретки/перевода строки (если, конечно, они не внутри констант) не учитываются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 18:40 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
Марк, вы бы лучше помогли по другому топику, как внутри функции в динамическом скрипте данные из NickName считать, тогда бы я совсем к Вам вернулся. А то меня ругачка на доступ к федеративному объекту из функции, прежде всего добила. Может Ваш старый пост, тоже Вам откроется)) А то хинтование - это повод, а вот невозможность выбрать данные из скалярной функции - это был основной удар, как инсульт по моему самолюбию: http://www.sql.ru/forum/actualthread.aspx?tid=1005493 Кстати обещанное пиво в силе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 18:50 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
medoedкак внутри функции в динамическом скрипте данные из NickName считатьЯ уже говорил, что надо написать в IBM такое требование, где описать систему, для чего это надо, почему никак нельзя по-другому (например, на процедурах) это сделать. Тогда вашу заявку рассмотрят и, если повезёт, через некоторое время вам это сделают. Но времени может пройти много, а сейчас всё, что я могу от себя предложить, это сделать такую табличную функцию общего типа: Код: sql 1. 2. jdbc:db2://host:port/dbname - это jdbc url для баз DB2, но здесь можно подцепляться к любой БД, только JDBC драйвер надо будет "зарегистрировать" в базе DB2. Работать она будет так: - обращаться она будет напрямую в dbname и сама соединять результаты запроса с другими таблицами из локальной или какой-то другой базы, естественно, не будет - Если надо будет параметризовать запрос, то в его текст надо будет подставлять значение этого параметра, т.е. что-то типа: Код: sql 1. 2. 3. - перед каждым вызовом всего внешнего запроса она будет устанавливать соединение с dbname, в конце вызова - разрывать соединение - регистрационные данные можно держать либо в локальной таблице, либо в файле на сервере или в параметрах передавать (тогда эту ф-цию вообще можно будет как no sql объявить) - возвращать она будет результат select'а в табличном виде В 9.7 нет generic table function, поэтому вам под запрос, возвращающий определённый набор полей, надо будет дописать маленький класс с вызовом типа: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 10:28 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinЖ.оп[/s] и udf не надо использовать :) Guidelines как мне кажется, аналогичная *опа, только сбоку. Кстати, иногда очень помогает затупление оптимизатора до уровня 3 для конкретного запроса выставление на драйвере QUERY OPTIMIZATION или выполнением SET QUERY OPTIMIZATION. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 11:09 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
aserdjukMark BarinsteinЖ.оп[/s] и udf не надо использовать :) Guidelines как мне кажется, аналогичная *опа, только сбоку. Не обижайте Марка, он и так выжал, всё что можно из DB2, самое обидное при его статусе он всё равно хрен напишет в IBM: Cделайте нормальное хинтование для разработчиков что то типа Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 11:37 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
aserdjukGuidelines как мне кажется, аналогичная *опа, только сбоку.Нет. Если вы имеете возможность менять приложение, то у вас, конечно, гораздо больше выбора. Но если у вас нет доступа к коду, то иногда это единственная возможность повлиять на оптимизатор. Выставлять пониженный уровень оптимизации ради одного запроса можно, наверное, но что будет с остальными запросами этого приложения? А с guidelines, например, вы можете выставить нужный уровень только для этого запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 11:44 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
Mark Barinsteinmedoedкак внутри функции в динамическом скрипте данные из NickName считатьЯ уже говорил, что надо написать в IBM такое требование, где описать систему, для чего это надо, почему никак нельзя по-другому (например, на процедурах) это сделать. Тогда вашу заявку рассмотрят и, если повезёт, через некоторое время вам это сделают. Но времени может пройти много, а сейчас всё, что я могу от себя предложить, это сделать такую табличную функцию общего типа: Код: sql 1. 2. jdbc:db2://host:port/dbname - это jdbc url для баз DB2, но здесь можно подцепляться к любой БД, только JDBC драйвер надо будет "зарегистрировать" в базе DB2. Работать она будет так: - обращаться она будет напрямую в dbname и сама соединять результаты запроса с другими таблицами из локальной или какой-то другой базы, естественно, не будет - Если надо будет параметризовать запрос, то в его текст надо будет подставлять значение этого параметра, т.е. что-то типа: Код: sql 1. 2. 3. - перед каждым вызовом всего внешнего запроса она будет устанавливать соединение с dbname, в конце вызова - разрывать соединение - регистрационные данные можно держать либо в локальной таблице, либо в файле на сервере или в параметрах передавать (тогда эту ф-цию вообще можно будет как no sql объявить) - возвращать она будет результат select'а в табличном виде В 9.7 нет generic table function, поэтому вам под запрос, возвращающий определённый набор полей, надо будет дописать маленький класс с вызовом типа: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 1.У меня коллеги писали в IBM, самый ранний ответ через пол года, в среднем год. Писать особого смысла нет! 2.Марк, а функция универсальная, у меня например 20 разных NickName - разной структуры, она подойдёт для всех? 3. Также возникает вопрос насчет out класса, для каждого NicName он будет свой и если у меня , 10 баз получателей - мне этот класс на все базы разворачивать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 11:46 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
medoed1.У меня коллеги писали в IBM, самый ранний ответ через пол года, в среднем год. Писать особого смысла нет! 2.Марк, а функция универсальная, у меня например 20 разных NickName - разной структуры, она подойдёт для всех? 3. Также возникает вопрос насчет out класса, для каждого NicName он будет свой и если у меня , 10 баз получателей - мне этот класс на все базы разворачивать? 2. Функция не будет работать с nickname вообще. Она будет устанавливать соединение с удаленной базой так же, как это делает обычное java приложение, т.е. даже регистрировать удаленную базу не надо. 3. Вам нужна будет отдельная SQL функция и класс (вы можете даже в одном классе собрать все java-функции для SQL функций) для всех разных комбинаций выходных полей. От числа и типа удаленных баз это не зависит. Т.е., например, вы знаете, что у вас будут: Код: plaintext 1. 2. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 12:03 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
Mark Barinsteinmedoed1.У меня коллеги писали в IBM, самый ранний ответ через пол года, в среднем год. Писать особого смысла нет! 2.Марк, а функция универсальная, у меня например 20 разных NickName - разной структуры, она подойдёт для всех? 3. Также возникает вопрос насчет out класса, для каждого NicName он будет свой и если у меня , 10 баз получателей - мне этот класс на все базы разворачивать? 2. Функция не будет работать с nickname вообще. Она будет устанавливать соединение с удаленной базой так же, как это делает обычное java приложение, т.е. даже регистрировать удаленную базу не надо. 3. Вам нужна будет отдельная SQL функция и класс (вы можете даже в одном классе собрать все java-функции для SQL функций) для всех разных комбинаций выходных полей. От числа и типа удаленных баз это не зависит. Т.е., например, вы знаете, что у вас будут: Код: plaintext 1. 2. Код: plaintext 1. 2. Тоесть вместо NickName на получателе, я должен написать функцию на получателе взамен каждого NickName например и она будет получать данные на прямую данные из источника? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 12:16 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
medoedТоесть вместо NickName на получателе, я должен написать функцию на получателе взамен каждого NickName например и она будет получать данные на прямую данные из источника?Да, напрямую из источника. Ещё раз: отдельная функция пишется для своей комбинации типов возвращаемых полей. Если вы знаете, что ваш запрос возвращает, скажем, 2 поля - строка и целое, то вы пишете 1 функцию и используете её с любыми базами. Главное, чтобы запрос в эту удалённую базу возвращал ровно 2 поля с этими типами и в этой последовательности. За этим соответствием функция - набор возвращаемых полей вам надо будет при вызове следить самому. Ну или можно использовать ф-цию с более длинным списком полей для запроса, но те поля, которые присутствуют в запросе, должны будут идти на первых местах списка полей в том же порядке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 12:33 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
medoed1.У меня коллеги писали в IBM, самый ранний ответ через пол года, в среднем год. Писать особого смысла нет! Правды ради. За последний год у нас пара PMR'ов, переродившихся далее в APAR и пофиксеных в 9.7.6. По прочим PMR'ам (которые, собственно, не есть ошибки, а, например, наше незнание "как настроить" и нерабочесть прям так из коробки) каких-либо нареканий высказать не могу. Скорее нас теребили, когда за прочими делами по продуктивным системам мы откладывали "исследовательскую" работу "как сделать ..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 13:16 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinmedoedТоесть вместо NickName на получателе, я должен написать функцию на получателе взамен каждого NickName например и она будет получать данные на прямую данные из источника?Да, напрямую из источника. Ещё раз: отдельная функция пишется для своей комбинации типов возвращаемых полей. Если вы знаете, что ваш запрос возвращает, скажем, 2 поля - строка и целое, то вы пишете 1 функцию и используете её с любыми базами. Главное, чтобы запрос в эту удалённую базу возвращал ровно 2 поля с этими типами и в этой последовательности. За этим соответствием функция - набор возвращаемых полей вам надо будет при вызове следить самому. Ну или можно использовать ф-цию с более длинным списком полей для запроса, но те поля, которые присутствуют в запросе, должны будут идти на первых местах списка полей в том же порядке. Спасибо Марк, подумаем над этим предложением, но хотелось бы максимально открытое решение сделать средствами самой СУБД (SQL), без внешних воздействий (java функций или java классов). Опять же как устойчиво такое решение будет работать и исправлять возможные ошибки на лету - тоже не очень понятно!? Немножко, пофлеймлю - раз пятница)) P.S. У меня три раза за 4-ре года работы с MSSQL было желание CLR функцию написать на C#: 1) Для считывания информации об учетках в домене (ФИО, телефоны и т.д). - не успел... 2) Для создания функции по склонению ФИО и наименования предприятий по падежам)) 3) Для обращения к Web- сервису из СУБД - обошелся OLE средcтвами в самой СУБД . Кстати это ни хрена не правильно архитектурно (web-service дергать из СУБД), но это сейчас используют в той страховой, мою тестовую поделку, вот и описывай после этого все в Wike ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 13:24 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
medoedНе обижайте Марка, он и так выжал, всё что можно из DB2, самое обидное при его статусе он всё равно хрен напишет в IBM: Cделайте нормальное хинтование для разработчиков что то типа [src PLSQL] select * from table with (index = my_index) Никоим образом вообще никого не хотел обижать. У нас, к счастью или сожалению, у каждого своя *опа и, как мне пока кажется, у ibm есть решения для них :) Для меня хинт в тексте запроса - это очень некрасиво для эксплуатирующих. Хотя, если вы совмещаете разработку, оптимизацию и эксплуатацию, то допустимо. А степенью оптимизации в приложениях я только начинаю управлять, как и степенью параллелизма. Очень забавные и приятные эффекты получаются, могу заметить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 13:31 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
aserdjukmedoedНе обижайте Марка, он и так выжал, всё что можно из DB2, самое обидное при его статусе он всё равно хрен напишет в IBM: Cделайте нормальное хинтование для разработчиков что то типа [src PLSQL] select * from table with (index = my_index) Никоим образом вообще никого не хотел обижать. У нас, к счастью или сожалению, у каждого своя *опа и, как мне пока кажется, у ibm есть решения для них :) Для меня хинт в тексте запроса - это очень некрасиво для эксплуатирующих. Хотя, если вы совмещаете разработку, оптимизацию и эксплуатацию, то допустимо. А степенью оптимизации в приложениях я только начинаю управлять, как и степенью параллелизма. Очень забавные и приятные эффекты получаются, могу заметить. Я выше писал, что 0.1 -1% хинт в тексте запроса допустим, и что в IBM это реализовано убого, более ничего. Наоборот отметил способности Марка , что он может из УГ конфетку сделать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 14:58 |
|
||
|
Оптимизировать запросик на DB2 , problem with view (9.7)
|
|||
|---|---|---|---|
|
#18+
medoedхотелось бы максимально открытое решение сделать средствами самой СУБД (SQL), без внешних воздействий (java функций или java классов). Опять же как устойчиво такое решение будет работать и исправлять возможные ошибки на лету - тоже не очень понятно!?Java процедуры/функции официально поддерживаются в DB2. У меня похожее решение работало в продуктивной системе, правда, там была процедура, которая результатами удаленного запроса наполняла локальную таблицу. DB2 не исправляет ошибки в любых процедурах, а сообщает о них с помощью кодов возврата - здесь будет то же самое. Федеративный NLJOIN :) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 19:37 |
|
||
|
|

start [/forum/topic.php?fid=43&startmsg=38221767&tid=1601460]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 153ms |

| 0 / 0 |
