powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Хранимые процедуры
24 сообщений из 24, страница 1 из 1
Хранимые процедуры
    #35513989
ХР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день уважаемые.......

есть один вопрос, который мучает нашу команду, можно даже сказать расколол на две половины.... вот решил спросить совета знающих людей.

вопрос об использованиее хранимых процедур в DB2. Насколько это удобно и целесообразно.

я сам много лет работал с ORACL'ом. там мне кажется даже вопросов таких не возникает. очень удобная штука.

а в DB2 говорят хранимые процедуры не очень удобны в использовании. типа ненадежные и отлаживать тяжело.
если есть мнения по этому вопросу, поделитесь.

Спасибо заранее.
Александр.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35513995
XP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XP
Гость
А еще...

может у кого есть хорошая документация/ссылки по написанию хранимых процедур DB2 на языке SQL

...
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35514123
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начните с 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.
cteu9e950.pdf Net Search Extender Administration and User's Guide
db2a1e950.pdf Developing Embedded SQL Applications
db2a2e950.pdf Developing User-defined Routines (SQL and External)
db2aje950.pdf Developing Java Applications
db2ane950.pdf Developing ADO.NET and OLE DB Applications
db2ape950.pdf Developing Perl and PHP Applications
db2are950.pdf Administrative Routines and Views
db2axe950.pdf Getting Started with Database Application Development
db2b0e950.pdf Administrative API Reference
db2c0e950.pdf DB2 Connect User's Guide
db2c1e950.pdf Quick Beginnings for DB2 Connect Personal Edition
db2c6e950.pdf Quick Beginnings for DB2 Connect Servers
db2cpe952.pdf ASNCLP Program Reference for Replication and Event Publishing
db2d3e950.pdf Tuning Database Performance
db2dae950.pdf Data Servers, Databases, and Database Objects Guide
db2dme950.pdf Data Movement Utilities Guide and Reference
db2dsee950.pdf DB2 Data Stream Engine User's Guide and Reference
db2dwe950.pdf Query Patroller Administration and User's Guide
db2e0e951.pdf SQL Replication Guide and Reference
db2f0e950.pdf System Monitor Guide and Reference
db2gpe951.pdf Introduction to Replication and Event Publishing
db2hae950.pdf Data Recovery and High Availability Guide and Reference
db2ise950.pdf Quick Beginnings for DB2 Servers
db2ite950.pdf Quick Beginnings for IBM Data Server Clients
db2l1e950.pdf Call Level Interface Guide and Reference, Volume 1
db2l2e950.pdf Call Level Interface Guide and Reference, Volume 2
db2m1e950.pdf Message Reference, Volume 1
db2m2e950.pdf Message Reference, Volume 2
db2mge950.pdf WindowsMigration Guide
db2n0e950.pdf WindowsCommand Reference
db2nlse950.pdf WindowsInternationalization Guide
db2p0e950.pdf WindowsTroubleshooting Guide
db2pce950.pdf WindowsPartitioning and Clustering Guide
db2q0e950.pdf WindowsWhat's New
db2s1e950.pdf WindowsSQL Reference, Volume 1
db2s2e950.pdf WindowsSQL Reference, Volume 2
db2sbe950.pdf WindowsSpatial Extender and Geodetic Data Management Feature User's Guide and Reference
db2sece950.pdf WindowsDatabase Security Guide
db2sxe950.pdf 

См. также http://www.redbooks.ibm.com/, http://www.ibm.com/developerworks/views/db2/library.jsp.

В целом, на мой взгляд, язык процедур DB2 SQL PL до Oracle PL/SQL не дотягивает, но с каждой версией становится ближе и ближе.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35514131
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оказывается, я список не доделал. Вот полная версия:

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.
cteu9e950.pdf Net Search Extender Administration and User's Guide
db2a1e950.pdf Developing Embedded SQL Applications
db2a2e950.pdf Developing User-defined Routines (SQL and External)
db2aje950.pdf Developing Java Applications
db2ane950.pdf Developing ADO.NET and OLE DB Applications
db2ape950.pdf Developing Perl and PHP Applications
db2are950.pdf Administrative Routines and Views
db2axe950.pdf Getting Started with Database Application Development
db2b0e950.pdf Administrative API Reference
db2c0e950.pdf DB2 Connect User's Guide
db2c1e950.pdf Quick Beginnings for DB2 Connect Personal Edition
db2c6e950.pdf Quick Beginnings for DB2 Connect Servers
db2cpe952.pdf ASNCLP Program Reference for Replication and Event Publishing
db2d3e950.pdf Tuning Database Performance
db2dae950.pdf Data Servers, Databases, and Database Objects Guide
db2dme950.pdf Data Movement Utilities Guide and Reference
db2dsee950.pdf DB2 Data Stream Engine User's Guide and Reference
db2dwe950.pdf Query Patroller Administration and User's Guide
db2e0e951.pdf SQL Replication Guide and Reference
db2f0e950.pdf System Monitor Guide and Reference
db2gpe951.pdf Introduction to Replication and Event Publishing
db2hae950.pdf Data Recovery and High Availability Guide and Reference
db2ise950.pdf Quick Beginnings for DB2 Servers
db2ite950.pdf Quick Beginnings for IBM Data Server Clients
db2l1e950.pdf Call Level Interface Guide and Reference, Volume 1
db2l2e950.pdf Call Level Interface Guide and Reference, Volume 2
db2m1e950.pdf Message Reference, Volume 1
db2m2e950.pdf Message Reference, Volume 2
db2mge950.pdf Migration Guide
db2n0e950.pdf Command Reference
db2nlse950.pdf Internationalization Guide
db2p0e950.pdf Troubleshooting Guide
db2pce950.pdf Partitioning and Clustering Guide
db2q0e950.pdf What's New
db2s1e950.pdf SQL Reference, Volume 1
db2s2e950.pdf SQL Reference, Volume 2
db2sbe950.pdf Spatial Extender and Geodetic Data Management Feature User's Guide and Reference
db2sece950.pdf Database Security Guide
db2sxe950.pdf XML Extender Administration and Programming
db2tve950.pdf Visual Explain Tutorial
db2wlme950.pdf Workload Manager Guide and Reference
db2xge950.pdf spureXML Guide
db2xpe950.pdf Getting Started with DB2 installation and administration on Linux and Windows
db2xqre950.pdf XQuery Reference
iiyfpe951.pdf IBM Information Integration Version 9.5 Administration Guide for Federated Systems
iiylse951.pdf IBM Information Integration Version 9.5 Configuration Guide for Federated Data Sources
prepapie90.pdf Precompiler Customization
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35514273
Vladimir Kiselev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL/PL почти не используем, а потому ничего не скажу, пишем на С все хранимые. У нас такая специфика. Глюков и т.п. не замечено, хотя приколы, конечно бывали. Из своего опыта порекомендовал бы обратить внимание на правильное описание параметров (тип параметров), т.е. на собственно описание ХП (CREATE PROCEDURE), поскольку от этого бывает плохо :)
Ну и не забывать про совместимость 32-64 приложений, например, не использовать long (use sqlint32).
Использование ХП прежде всего определяется функциональными задачами, а потому рекомендовать использовать или нет - сложно.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35514287
sysaux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir KiselevSQL/PL почти не используем, а потому ничего не скажу, пишем на С все хранимые. У нас такая специфика. Глюков и т.п. не замечено, хотя приколы, конечно бывали. Из своего опыта порекомендовал бы обратить внимание на правильное описание параметров (тип параметров), т.е. на собственно описание ХП (CREATE PROCEDURE), поскольку от этого бывает плохо :)
Ну и не забывать про совместимость 32-64 приложений, например, не использовать long (use sqlint32).
Использование ХП прежде всего определяется функциональными задачами, а потому рекомендовать использовать или нет - сложно.

Т.е. даже операции с данными - хитрые insert/update, сложные аналитические отчеты -
в С пишете?
Если так, то это ДБ2 бааальшой минус.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35514779
чя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сложные аналитические отчеты на DB2 пишутся посредством SQL и можно обойтись без хранимых процедур...
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35514819
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Угу, начинающему на DB2 сперва надо Cookbook ( http://mysite.verizon.net/Graeme_Birchall/id1.html ) полностью изучить, и только потом за написание хранимых процедур браться.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35516815
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ХРя сам много лет работал с 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 виртуальной машине со всеми прелестями вроде переключения контекста приложений. Причем, как я понял, даже в триггерах :)
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35516869
Vladimir Kiselev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sysauxТ.е. даже операции с данными - хитрые insert/update, сложные аналитические отчеты -
в С пишете?
Если так, то это ДБ2 бааальшой минус.
Для аналитических отчётов есть специальный софт, AlphaBlox, например. Зачем же иголкой слона пытаться убить? :)
Самый простой пример использования ХП это запись одной информации в разные таблицы (журнализация) - уменьшение сетевого трафика, как минимум.
В принципе есть и расчёты, которые производятся периодически на сервере, там тоже ХП, нет смысла таскать информацию на клиента.
Я не сторонник ХП на С, просто всё нужно применять в нужное время и в нужном месте.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35517637
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Favn
...
В Оракле, кстати, PL/SQL выполняется на внешней отн. SQL виртуальной машине со всеми прелестями вроде переключения контекста приложений. Причем, как я понял, даже в триггерах :)
а что в DB2: SQL и PL/SQL выполняется в одном контексте?
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35517765
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35517780
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правда есть одна маленькая деталь, особенно касается любителей написания функций.
Если в запросе слишком много SQL функций, то запрос может оказаться Too Complex :) Придется крутить некоторые ручки
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35517829
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А в случае SP на SQL-PL неплохо бы написать скрипты с REBIND_ROUTINE_PACKAGE. Нет в жизни совершенства :)
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35519111
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чяСложные аналитические отчеты на DB2 пишутся посредством SQL и можно обойтись без хранимых процедур...


Сложные аналитические отчеты можно вообще не писать на SQL ... :)
Для этого есть специальный инструмент - IBM Cognos !!!

С уважением,
Вадим.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35519119
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XPА еще...

может у кого есть хорошая документация/ссылки по написанию хранимых процедур DB2 на языке SQL

...

Для любителей ORACLE ... :)
Скоро выйдет новая версия DB2, которая будет понимать синтаксис - SQL, PL/SPL ORACLE и
дополнительных пакетов и т.д. - для совместимости application и более легкой миграции с ORACLE на DB2.

Хранимые процедуры для DB2 очень легко разрабатывать и отлаживать !!!

С уважением,
Вадим.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35521986
XP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XP
Гость
Спасибо огромное всем за дельные советы и ссылки.

То, что DB2 потихоньку подбирается к Oracle'у, это здорово.

Тут у нас много товарищей с очень большим опытом работы, или другими словами почти пенсионеров, у которых сложился определенный стереотип к хранимым процедурам.

Есть одна особенность в нашем проекте. База данных должна быть на zOS.
Там под понятием хранимая процедура кроется внешняя программа, которая работает в своем WLM окружении. Вот этот WLM и вызывает самое большое негодование у моих опытных коллег.

Если кто смог преодолеть все проблемы написания SP на zOS, знает как их там отлаживать и мониторить статус, пожалуйста, поделитесь опытом/ссылками.

Заранее огромное спасибо.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35522086
mitek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в чем причина "негодования" ?
WLM имхо наоборот весьма полезная вещь, и защищает от пожирания ресурсов какой-нибудь "не очень правильной" программой
А в DB2/zOS 9.1 хранимые уже нативные как в DB2/LUW
В предыдущих версия тоже можно писать их на SQL/PL, но там оно в результате превращается в исполнимый модуль.

Есть хороший редбук на эту тему (там же для предыдущих версий)

Писать и отлаживать в IBM Data Studio, кстати по ней 9-го будет бесплатный семинар в IBM.
Можно напроситься по случаю.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35522357
XP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XP
Гость
mitek,

да, эту книгу я уже скачал, читал. Спасибо.

Скажи, пожалуйста, что нужно сделать, чтобы попасть на этот семинар?
Зарегистрироваться где или еще что....
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35522717
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" действительно очень полезная книжка.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35522775
XP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XP
Гость
Спасибо, Евгений.

скажите, как считате, стоит ли переходить на 9'ую версию DB2 только ради написания native SQL хранимых процедур?
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35522991
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XPСкажи, пожалуйста, что нужно сделать, чтобы попасть на этот семинар?
Зарегистрироваться где или еще что....Только что звонил в IBM, спросил насчет семинара. Переключили на организатора, продиктовал мыло, прислали приглашение на семинар
IBM Data Studio pureQuery For DBAs и Application Developers
AN IBM PROOF OF TECHNOLOGY
Дата: 9 сентября, 2008
Время: 10:00 – 17:30
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35523004
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.
...
Рейтинг: 0 / 0
Хранимые процедуры
    #35523034
mitek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XPmitek,
Скажи, пожалуйста, что нужно сделать, чтобы попасть на этот семинар?
Зарегистрироваться где или еще что....

отправил на мыло в профиле
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Хранимые процедуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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