Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Добрый день уважаемые....... есть один вопрос, который мучает нашу команду, можно даже сказать расколол на две половины.... вот решил спросить совета знающих людей. вопрос об использованиее хранимых процедур в DB2. Насколько это удобно и целесообразно. я сам много лет работал с ORACL'ом. там мне кажется даже вопросов таких не возникает. очень удобная штука. а в DB2 говорят хранимые процедуры не очень удобны в использовании. типа ненадежные и отлаживать тяжело. если есть мнения по этому вопросу, поделитесь. Спасибо заранее. Александр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2008, 19:00 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
А еще... может у кого есть хорошая документация/ссылки по написанию хранимых процедур DB2 на языке SQL ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2008, 19:07 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Начните с IBM Migration Toolkit (http://www-01.ibm.com/software/data/db2/migration/mtk/). В комплекте есть документация, описывающая, что изменится при переходе с Oracle на DB2, что поддерживается, а что - нет. Кроме того, этим tool'ом вы можете мигрировать свой проект и посмотреть на результаты. Доки на ftp://ftp.software.ibm.com/ps/products/db2/info/vr95/pdf/en_US/ Код: plaintext 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. 36. 37. 38. 39. См. также http://www.redbooks.ibm.com/, http://www.ibm.com/developerworks/views/db2/library.jsp. В целом, на мой взгляд, язык процедур DB2 SQL PL до Oracle PL/SQL не дотягивает, но с каждой версией становится ближе и ближе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2008, 22:36 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Оказывается, я список не доделал. Вот полная версия: ftp://ftp.software.ibm.com/ps/products/db2/info/vr95/pdf/en_US/ Код: plaintext 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. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2008, 22:51 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
SQL/PL почти не используем, а потому ничего не скажу, пишем на С все хранимые. У нас такая специфика. Глюков и т.п. не замечено, хотя приколы, конечно бывали. Из своего опыта порекомендовал бы обратить внимание на правильное описание параметров (тип параметров), т.е. на собственно описание ХП (CREATE PROCEDURE), поскольку от этого бывает плохо :) Ну и не забывать про совместимость 32-64 приложений, например, не использовать long (use sqlint32). Использование ХП прежде всего определяется функциональными задачами, а потому рекомендовать использовать или нет - сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2008, 12:02 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Vladimir KiselevSQL/PL почти не используем, а потому ничего не скажу, пишем на С все хранимые. У нас такая специфика. Глюков и т.п. не замечено, хотя приколы, конечно бывали. Из своего опыта порекомендовал бы обратить внимание на правильное описание параметров (тип параметров), т.е. на собственно описание ХП (CREATE PROCEDURE), поскольку от этого бывает плохо :) Ну и не забывать про совместимость 32-64 приложений, например, не использовать long (use sqlint32). Использование ХП прежде всего определяется функциональными задачами, а потому рекомендовать использовать или нет - сложно. Т.е. даже операции с данными - хитрые insert/update, сложные аналитические отчеты - в С пишете? Если так, то это ДБ2 бааальшой минус. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2008, 12:30 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Сложные аналитические отчеты на DB2 пишутся посредством SQL и можно обойтись без хранимых процедур... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2008, 09:58 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Угу, начинающему на DB2 сперва надо Cookbook ( http://mysite.verizon.net/Graeme_Birchall/id1.html ) полностью изучить, и только потом за написание хранимых процедур браться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2008, 11:22 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
ХРя сам много лет работал с ORACL'ом. там мне кажется даже вопросов таких не возникает. очень удобная штука. а в DB2 говорят хранимые процедуры не очень удобны в использовании. типа ненадежные и отлаживать тяжело.Этот взгляд немного устарел :) Использую SP на SQL PL - все в порядке. Единственное, что надо учитывать отн. SP на SQL PL - они целиком, включая запросы, компилячатся в момент создания, причем создается неявный package с запросами, требующий поддержки при администрировании (речь о статических запросах, конечно). Подробнее - тут. Да, и учтите, что SQL PL для триггеров и UDF беднее, но гораздо быстрее SQL PL для SP - он выполняется внутри SQL запроса (inline подстановкой). По поводу отладки - для DB2 имеет смысл скачать IBM Data Studio и получить нормальную (ну, почти нормальную :)) IDE на Eclipse для SQL PL и Java процедур, со встроенной пошаговой отладкой на сервере. По поводу книги - где-то на этом форуме была ссылка на Prentice.Hall.PTR.DB2.SQL.PL.Essential.Guide.for.DB2.UDB.2nd.Edition.Nov.2004.chm Если не найдете - могу куда-нибудь залить. sysauxТ.е. даже операции с данными - хитрые insert/update, сложные аналитические отчеты - в С пишете? Если так, то это ДБ2 бааальшой минус.В DB2 долгое время были корявые SP и мощный SQL, что научило стараться все писать в запросах, а не в SP. И с точки зрения производительности это очень правильно, причем как раз в случае хитрых изменений и уж тем более в случае сложной аналитики. Бааальшой минус - это работая с СУБД запихивать все, что можно, в процедурную часть, а не в декларативную. Позвольте оптимизатору поработать за Вас :) В Оракле, кстати, PL/SQL выполняется на внешней отн. SQL виртуальной машине со всеми прелестями вроде переключения контекста приложений. Причем, как я понял, даже в триггерах :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2008, 20:01 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
sysauxТ.е. даже операции с данными - хитрые insert/update, сложные аналитические отчеты - в С пишете? Если так, то это ДБ2 бааальшой минус. Для аналитических отчётов есть специальный софт, AlphaBlox, например. Зачем же иголкой слона пытаться убить? :) Самый простой пример использования ХП это запись одной информации в разные таблицы (журнализация) - уменьшение сетевого трафика, как минимум. В принципе есть и расчёты, которые производятся периодически на сервере, там тоже ХП, нет смысла таскать информацию на клиента. Я не сторонник ХП на С, просто всё нужно применять в нужное время и в нужном месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2008, 20:47 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Favn ... В Оракле, кстати, PL/SQL выполняется на внешней отн. SQL виртуальной машине со всеми прелестями вроде переключения контекста приложений. Причем, как я понял, даже в триггерах :) а что в DB2: SQL и PL/SQL выполняется в одном контексте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2008, 11:56 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
use-seа что в DB2: SQL и PL/SQL выполняется в одном контексте?Смотря какой PL-SQL. PL-SQL в SP выполняется практически в отдельном контексте: "As of DB2 Version 8.1, SQL procedures run in "unfenced mode". That is they run in the same addressing space as the DB2 engine. Therefore the context switch we refer to here is not a full context switch at the operating system level, but rather a change of layer within DB2. Reducing the number of context switches in procedures that are invoked very often, such as procedures in an OLTP application, or that process large numbers of rows, such as procedures that perform data cleansing, can have a noticeable impact on their performance." Что, как я понимаю, справедливо и для любого SQL/PL Оракла. Но в DB2 есть подмножество PL-SQL для UDF и триггеров, который выполняется inline, то есть самостоятельно не выполняется вообще :) Их текст подставляется в текст "дергающего" их запроса, результат прогоняется оптимизатором целиком и выполняется SQL-движком как единый запрос. Из этого следуют как серьезные ограничения на inline SQL-PL, так и его максимальная производительность. Нужно что-то более навороченное - оттуда можно вызвать SP. Отсюда вывод - если так уж нужна процедурная обработка (а в DB2 с ее мощным SQL она нужна редко), лучше по возможности ограничиться триггерами и UDF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2008, 12:28 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Правда есть одна маленькая деталь, особенно касается любителей написания функций. Если в запросе слишком много SQL функций, то запрос может оказаться Too Complex :) Придется крутить некоторые ручки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2008, 12:34 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
А в случае SP на SQL-PL неплохо бы написать скрипты с REBIND_ROUTINE_PACKAGE. Нет в жизни совершенства :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2008, 12:45 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
чяСложные аналитические отчеты на DB2 пишутся посредством SQL и можно обойтись без хранимых процедур... Сложные аналитические отчеты можно вообще не писать на SQL ... :) Для этого есть специальный инструмент - IBM Cognos !!! С уважением, Вадим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2008, 21:44 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
XPА еще... может у кого есть хорошая документация/ссылки по написанию хранимых процедур DB2 на языке SQL ... Для любителей ORACLE ... :) Скоро выйдет новая версия DB2, которая будет понимать синтаксис - SQL, PL/SPL ORACLE и дополнительных пакетов и т.д. - для совместимости application и более легкой миграции с ORACLE на DB2. Хранимые процедуры для DB2 очень легко разрабатывать и отлаживать !!! С уважением, Вадим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2008, 21:50 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Спасибо огромное всем за дельные советы и ссылки. То, что DB2 потихоньку подбирается к Oracle'у, это здорово. Тут у нас много товарищей с очень большим опытом работы, или другими словами почти пенсионеров, у которых сложился определенный стереотип к хранимым процедурам. Есть одна особенность в нашем проекте. База данных должна быть на zOS. Там под понятием хранимая процедура кроется внешняя программа, которая работает в своем WLM окружении. Вот этот WLM и вызывает самое большое негодование у моих опытных коллег. Если кто смог преодолеть все проблемы написания SP на zOS, знает как их там отлаживать и мониторить статус, пожалуйста, поделитесь опытом/ссылками. Заранее огромное спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 11:39 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
А в чем причина "негодования" ? WLM имхо наоборот весьма полезная вещь, и защищает от пожирания ресурсов какой-нибудь "не очень правильной" программой А в DB2/zOS 9.1 хранимые уже нативные как в DB2/LUW В предыдущих версия тоже можно писать их на SQL/PL, но там оно в результате превращается в исполнимый модуль. Есть хороший редбук на эту тему (там же для предыдущих версий) Писать и отлаживать в IBM Data Studio, кстати по ней 9-го будет бесплатный семинар в IBM. Можно напроситься по случаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 12:07 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
mitek, да, эту книгу я уже скачал, читал. Спасибо. Скажи, пожалуйста, что нужно сделать, чтобы попасть на этот семинар? Зарегистрироваться где или еще что.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 13:29 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
XPСпасибо огромное всем за дельные советы и ссылки. Есть одна особенность в нашем проекте. База данных должна быть на zOS. Там под понятием хранимая процедура кроется внешняя программа, которая работает в своем WLM окружении. Вот этот WLM и вызывает самое большое негодование у моих опытных коллег. Если кто смог преодолеть все проблемы написания SP на zOS, знает как их там отлаживать и мониторить статус, пожалуйста, поделитесь опытом/ссылками. По сути разработка хранимых процедур на языках SQL и Java для DB2 for z/OS практически не отличается от разработки для DB2 for MP, используется тот же инструментарий, сейчас это DB2 Data Studio Developer. WLM - это очень полезная штука, просто нужно учесть что он есть и все. На сам процесс разработки он не влияет. "Подводные камни" 1. Требуется некоторая настройка подсистемы DB2 на z/OS. Чтобы работали служебные хранимые и функции, которые будет использовать DB2 Data Studio при установке и обновлении хранимых. 2. До версии 9 хранимая на языке SQL при компиляции преобразовывалась в исполнимый модуль. Компилятор хранимых на языке SQL сам является хранимой процедурой, исполняется в собственном WLM-пространстве. И для него нужно настроить библиотеки достаточной емкости, в которых будут храниться модули и DBRM-пакеты. 3. WLM-пространство, в котором будет исполняться скомпилированная хранимая, должно иметь доступ (через STEPLIB) к модулям, которые создались при компиляции. 4. Для хранимых желательно выставлять ASUTIME, чтобы при зацикливании или подвисании процедура "убивалась" автоматически. Это то, что вспомнилось навскидку. На самом деле кажется, что это сложно "поднять" только в первый раз, когда не совсем понятно как это работает. Будут конкретные вопросы или проблемы по хранимым в DB2 для z/OS, спрашивай. PS: Redbook "DB2 9 for z/OS Stored Procedures: Through the CALL and Beyond" действительно очень полезная книжка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 15:04 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
Спасибо, Евгений. скажите, как считате, стоит ли переходить на 9'ую версию DB2 только ради написания native SQL хранимых процедур? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 15:23 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
XPСкажи, пожалуйста, что нужно сделать, чтобы попасть на этот семинар? Зарегистрироваться где или еще что....Только что звонил в IBM, спросил насчет семинара. Переключили на организатора, продиктовал мыло, прислали приглашение на семинар IBM Data Studio pureQuery For DBAs и Application Developers AN IBM PROOF OF TECHNOLOGY Дата: 9 сентября, 2008 Время: 10:00 – 17:30 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 16:41 |
|
||
|
Хранимые процедуры
|
|||
|---|---|---|---|
|
#18+
XPСпасибо, Евгений. скажите, как считате, стоит ли переходить на 9'ую версию DB2 только ради написания native SQL хранимых процедур? Нет тут однозначного ответа. Проект делается новый и с нуля? Или есть производство? В 9-ке появилось много другого вкусного, но мигрировать производство в 9-ку только ради Native-хранимых по моему не стоит. А если начинать новый проект, то почему бы и не на 9-ке, хотя сразу вопрос вы это сами будете эксплуатировать, или на заказчика работаете? Если на заказчика, то спросите заказчика. Если проект "переезжает" с DB2 for LUW на DB2 for z/OS, то DB2 for z/OS V9 будет гораздо ближе по SQL-диалекту к DB2 for LUW V8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 16:45 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=35514287&tid=1603717]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 409ms |

| 0 / 0 |
