powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Особенности DB2 - в чем цимус?
25 сообщений из 44, страница 1 из 2
Особенности DB2 - в чем цимус?
    #32079669
Guest123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Пару дней как начал изучать DB2. Изучаю исключительно для собственного самообразования и расширения кругозора(пока). Основная СУБД на работе - Sybase. Если можно, то я задам несколько общих вопросов знатокам DB2 и несколько конкретных.
Общие вопросы
1)Интересно узнать какие критерии кроме ("у нас тут мэйнфреймы...","это в натуре круто", "за нее за бугром платят много денег, а я хочу туда уехать","хотелось выпендрится") рассматривались в вашей фирме, при выборе СУБД в пользу DB2. Почему спрашиваю - уж очень этот продукт не популярен в наших краях, значит есть причина. Все говорят, что DB2 не уступает Oracle, но Oracle судя по кол-ву сообщений в форумах Оракла и ДБ2, то .....
2) Stored Procedures.
Как я понимаю, то весь свой Сайбэйзовый в этой области опыт тут неприменим.
Все процедуры пишутся как программы, компилируются, подлинковываюися к базе. Все процедуры кроме Java-овых являются платфомозависимыми. Процесс написания даже самой простой процедурки с ее отладкой очень усложнен.
Я попробовал сделать SQL-процедуру (Language SQL) но она не захотела Build в базу, т.к. не на машине установлен VisualC. Java SQLJ процедура скомпилировалась успешно.
Как-бы все понятно, но непонятно главное - ЗАЧЕМ такие мучения, ради чего и что это дает вообще?. Чем технология организации процедур DB2 лучше чем у того-же Sybase?. То, что время разработки приложений значительно возрастает видно сразу, что квалификация разработчика требует хорошего знания JAVA, C, тоже видно, но вот какое конкурентное преимущество это дает мне не ясно.
Конкретные:
- Можно ли посмотреть план выполнения SQLJ Stored процедуры, при вызове ее через CALL?
- после создания Stored процедуры в Stored Procedures Builder и ее успешного Build, эта процедура не появляется в списке Stored Procedures у этой Базы в Control Centre, хотя она выполняется успешно.

Пока все. Большая просьба, не воспринимать этот топик как критику или наезд или попытку нахваливать другие СУБД. Просто помимо деталей реализации чего-то в кокретной системе, хочется понимать для чего это нужно, почему сделано именно так, где и для чего именно эта система применяется успешнее других.

Всем спасибо.
alexcey@mail.ru
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32079799
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прикинь, у меня тоже на работе сейчас главная СУБД -Sybase ASE 12.5 ))
Вообще по Sybase с удовольствием пообщался бы, если будет такая возможность. Особенно интересно то каким образом под Sybase пишете приложения. Вообще - порядок разработки.
А вот что касается DB2 _ работал (на предыдущем месте работы) лет 5...) начиная с DB2 v 2.1 под OS/2 (тогда еще NT не было)
Могу сказать одно - если хотите писать хорошие приложения на DB2 - используйте Embedded SQL. В противном случае никакой выгоды от DB2 не получите.
Последня версия DB2 просто великолепно поддерживает C++. Например в Sybase с этим - большие проблемы (( там токлько ANSI С. А встраивая SQL прямо в C++ код я получаю просто фантастическую выгоду. (У Sybase втроенный SQL реализован очень плохо..просто на порядок ниже чем у DB2)
В DB2 можно передавать host-переменную по ссылке, делать выборку сразу в структуру. Тем кто пишет на C++ - это очень удобно.
Есть такая вещь, как идеология применения сохраненных процедур. Исходя из способов разработки которые предлагаются Sybase и DB2 - естественно сохранёнки применяются по-разному. Если будет желание, то могу прислать маленький проектик, реализованный на VC++/ DB2
пишите: fouga@progress-neva.ru
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32083843
petrofff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работаем уже наверно года 3.
Реально никаких особых преимуществ не видно. Разве что работает в общем то
довольно быстро, оптимизатор запросов у них хороший. Ну наверно еще, как плюс, довольно тонкое управление, например дисковым пространством. На мой взгляд, преимущества появляются когда ты начинаешь использовать всю линейку технологии IBM. Причем желательно на монстровых проектах, скажем, ежели у тебя клиентов хотя бы пару тысяч, и база распределенная (как мне один мен объяснял, у меня грит один сервер в Хельсинке, другой в Курске), вот тут и выясняется, что реальных конкурентов окажется не так уж много. Объясняю более конкретно. Скажем ты используешь, кроме самой DB2, еще и MQ Series, монитор транзакций, технологию VA (скажем генератор + смалтолк), то она (энта технология) почти сама, организует и гарантированную доставку транзакций, и платформенно независимые формы, и путем простой пересборки проекта менять архитектуру от майнфрейма до N уровнего, короче полный атас, ежели ты конечно от всего этого не охренеешь (шутка) На локальном проекте (я думаю для IBM это все, что меньше 100 пользователей) реальных преимуществ не видно. Хотя работать можно.
Короче, меня тут правда уже по этому поводу немного опустили ниже плинтуса, вопрос не в СУБД, вопрос в технологии. И технологию от IBM нужно
расматривать в комплексе. Сама эта технология (это мое приватное мнение) тяжеловата, и для легких проектов ее использование наверно не целесообразно, но наверно самая масштабируемая.
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32093819
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В особой ценности Embedded SQL я не убежден. Я считаю, что во многих случаях CLI не хуже или даже лучше.

В особой сложности SP у DB2 - тоже. SP у DB2 - это фактически _обыкновенное_ приложение на _обычном_ языке программирования, разве что оформленное так, чтобы его могла вызвать СУБД. (SQL SP транслируется в C). Если вы пишете на Java обычные приложения, для вас не должно быть сложным писать и SP на Java. Если вы пишете на Delphi и при этом достаточно разбираетесь в передаче параметров C и написании DLL, то сможете писать SP на Delphi.

А вот нужны ли вообще SP при работе с DB2, я тоже весьма сомневаюсь.

C MQ Series и менеджерами транзакций мне работать не пришлось (просто не нашел от них никакой пользы в моей текущей работе). VisualAge Smalltalk отличается от Delphi в плане работы с DB2 наличием static SQL (отличий, конечно, много, но в данном контексте важно только одно), в ценности которого я совсем не убежден.

DB2, конечно, монстр, и с каждым годом становится все толще. Лично я начал бы уже не добавлять, а убирать из нее некоторые фичи (наподобие структурных типов). Но по сравнению с Oracle она просто худышка.

А в некотором смысле я назвал бы ее самой простой. Это связано с оптимизатором, мощнейшим диалектом SQL и советчике по созданию индексов. Чтобы ярче выразить свою мысль, предлагаю вспомнить, как пользователи MySQL мучаются от отсутствия вложенных select'ов. Да, во многих других СУБД вложенные select'ы есть, но их SQL все равно убог по сравнению с DB2-шным. Оптимизатор и index advisor упрощают настройку производительности прямо-таки фантастическим образом. Для сравнения, когда я сдуру, поверив одной статейке про Oracle, будто в 8-й версии они наконец сделали cost-based оптимизатор, собрал статистику по таблицам в имеющейся у нас системе, некоторые запросы перестали работать, а некоторые стали выдавать неправильные результаты!!! Меня тогда чуть инфаркт не хватил, сутки разбирались с разработчиками, пока один не догадался поинтересоваться, не собирал ли я статистику. Пришлось ее очистить, и все заработало как надо. Порядок таблиц в запросе, создание индексов - все вручную. С DB2 же можно просто оттрассировать SQL-выражения и получить рекомендацию по созданию индексов. Понятно, что на создании нужных индексов настройка не кончается, но облегчение огромное.

В версии 8 обещали также автоматизировать создание Summary Tables (почему переименовали Index Advisor в Design Advisor), но пока этого нет. Вещь очень полезная (один из запросов при использовании Summary Table у меня ускорился в тысячи раз), и не сомневаюсь, что она будет реализована в одном из будущих фикспаков, потому что официальный курс IBM - на упрощение администрирования и самонастройку СУБД.
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32093916
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сразу видно DB2 используют люди серъезные и целеустремленные. Все посты длинной не меньше километра
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32094250
Guest123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по ответам можно подбить предварительный итог:
- применение СУБД DB2 на реальных проектах из реальной жизни не имеет существенных преимуществ перед конкурирующими продуктами других фирм. - Инструменты, которые бы мне помогли реализовать бизнес-логику приложения как разработчику в DB2 не лучше, но значительно сложнее чем у основных конкурентов.
- четкой и не очень идеологии примения DB2 в ответах лично я не увидел. Кто является потребителем этого продукта? Я на сайте IBM не нашел документов, вкоторых бы прописывалась аудитория потребителей ее СУБД с описанием сценария, качества и характеристик задач, для решения задач которой DB2 проявляет себя лучше всего (кроме Build your Operational Data Strore).
(К примеру простой сценарий из жизни моей конторы: есть центральная СУБД которая свзана асинхронной репликацией с СУБД в куче филиалов (несколько десятков). Нужные данные реплицируются туда и обратно. Если разработчики центральной СУБД меняют ХП процедуру, то она реплицируется в филиал(ы). Если измения серьезные - ты присылается скрипт, который и делает все необходимое. Здесь налицо преимущества инфраструктуры Sybase). Как например такое делается на DB2 я пока слабо представляю (особенно с перекомпиляцией хранимых процедур).

А теперь почему я собственно поднял эту тему. Конечно, можно было бы сказать, что DB2 - это настолько в натуре круто, что простому инженеру ее не дано понять. Эта система юзается только "взрослыми пацанами" во "взрослых" комапниях зарубежом. Тогда с этой точки зрения, можно согласиться - что рынок IBM - это миллиардные сделки с ведущими компаниями мира, а вы так сказать "рыломс не вышли".
Но тогда мне непонятно:
- чем вызвано снижение цен на DB2v8 до уровня цен напрямую конкурирующей с MSSQL2000 и Sybase (например 7500баксов за Workgroup edition c безлимитным кол-вом подключений), как желанием закрепится на этом (самом массовом) сегменте рынка? Если их СУБД не лучше уже зарекомендовавших себя конкурентов- то зачем все это?
- зачем эти программы обучения молодых специалистов на решениях IBM, если этот специалист все-равно выберет не DB2?
- зачем российское представительстово IBM сeществует вообще, если наш бизнес просто не дорос до их "крутой" DB2?
- ну и последняя "наболевшая" причина, ради которой я и взялся ковырять DB2. DB2 - как будущая платформа для следующей версии LotusDomino. Я например просто не представляю среднестатистического разработчика LotusNotes/Domino, который клепает и компилирует, компилирует, перекомпилирует на VisualC процедуры (или агенты), для простых в операций над документами.

Вот в общем такие мысли. Жду "раздалбывающей" меня критики. Пишите в форум.
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32094342
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну ты вааааще. 2 дня назад начаизучать db2. ты хоть бы пару проектов сделал. для приличия.

а ты вообще-то видел инструменты разработки? у меня, например VisualAge Generator. покажи мне хоть что-нибудь похожее :)

говоришь, Workgroup Edition дешевая? так в ней прекомпилера нет. к ней придется покупать еще что-нибудь.
Development Client или Enterprise.

кто заказчик? МПС, например. они колесные пары учитывают (на мэйнфрейме, естественно).
попробуй сделать это на Sybase. колесных пар много.

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

и что ты озабочен процедурами? раз ты начал писать процедуры, ты завязался на базу.
с Sybase уже не слезть - ни на db2, ни куда-то еще. пользуйтесь серверами приложений, сэр.

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

черт, мне домой пора
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32094646
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Guest123:

* "применение СУБД DB2 на реальных проектах из реальной жизни не имеет существенных преимуществ перед конкурирующими продуктами других фирм" - а как же, например, упомянутые мной cost based optimisation и Index Advisor?
* "Инструменты, которые бы мне помогли реализовать бизнес-логику приложения как разработчику в DB2 не лучше, но значительно сложнее чем у основных конкурентов." - не вижу, чтобы она была сложнее Oracle (который я тоже администрирую), а SQL (http://ourworld.compuserve.com/homepages/Graeme_Birchall/HTM_COOK.HTM) дорогого стоит, и вообще, уточняйте, о каких инструментах идет речь.
* Я не понимаю, что такое "идеология применения".
* Про хранимые процедуры я "в курсе" лишь относительно, поскольку их не применяю, но, насколько я помню, есть средства для копирования SQL SP с сервера на сервер без перекомпиляции; кстати, если на сервере будет правильно установлен "правильный" C-компилятор, процесс будет совершенно прозрачен для программиста, он выполняет CREATE ... и т.д., а все остальное (включая компиляцию) идет без его участия;
* На Workgroup Edition цены понижены, на Enterprise Edition - (к сожалению) повышены;
* "Зачем понижать цены, если не лучше" - так что, советуете повышать?
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32094657
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 NewYear:

Application Development Client (бывший SDK) отродясь (или, по крайней мере, с версии 2.1 до версии 7.2) был бесплатным. Правда, на download'е для 8-ки его сейчас нет, но жду с очередным фикспаком на ftp.software.ibm.com.

На DB2, как я слышал, работает Пенсионный фонд.
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32094677
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вроде слух ходят что ИБМ в ДБ2 собираются использовать Информиксовский движок?

ИБМ по-моему давно переросла свои размеры и разные её части занимаются разными вещами независимо друг от друга. Мне, вот, тоже интересно, что они с Доминой сделают. Насколько я знаю, планируется полностью отказаться от .nsf и перейти на нормальный сервер (ну, наверно ДБ2) - т.е. 100% гарантии что все приложения придётся переписывать. В принципе, всё правильно, тока делать это надо было сразу после 5 версии. Или даже вместо неё.
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32094739
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ходят слухи ;-), что те слухи, что DB2 будут переводить на Informix'овый движок - полная фигня. На самом деле Informix будут держать до тех пор, пока большинство пользователей на DB2 не переведут. Ну, что-нибудь из Informix'а и выдернут, но вряд ли много.

Не вижу причин, по которым доминошные приложения _придется_ переписывать из-за DB2. Так просто не делается, никто из мало-мальски вменяемых фирм на такое не пойдет. Вы будете точно также оперировать документами и полями, а "под ковром" будет не обращение к файлу, а выполнение SQL-выражения, но для разработчика это абсолютно прозрачно.

Между прочим, я так на Smalltalk'е работаю. SQL не пишу, чисто smalltalk'чьи выражения. Генерация SQL возлагается на TOPLink.

The following example of a block expression selects all employees that live in the same city as their manager from the table:

aDatabaseSession readAllFor: employee where: [:eachEmployee | eachEmployee address city = eachEmployee manager address city]

This translates into the following fairly complex SQL statement:

SELECT E1.*FROM Employee E1, Employee E2, Address A1, Address A2
WHERE
(A1.city = A2.city) AND
(E1.address_id = A1.id) AND
(E1.manager_id = E2.id) AND
(E2.address_id = A2_id)
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32094753
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Э нет, с Доминой так не выйдет. Только в каких-нить простых вещах.
Хотя... Посмотрим.
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32094758
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что именно не выйдет?

Например: Получить список документов? Найти документ по ID? Добавить новое поле? Элементарно. [Очевидно, одному документу может соответствовать несколько записей в нескольких таблицах].
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32094761
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А большее домине вряд ли и надо.
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32095043
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, NewYear, какого-такого прекомпилера в WE нет? Все на месте.

Дешевая WorkGroup Edition - это хорошо. А версия под Линух, по слухам, даже вдвое дешевле прочих (это специальная промоушн-скидка).
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32095055
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Guest123: "(К примеру простой сценарий из жизни моей конторы: есть центральная СУБД которая свзана асинхронной репликацией с СУБД в куче филиалов (несколько десятков). Нужные данные реплицируются туда и обратно. Если разработчики центральной СУБД меняют ХП процедуру, то она реплицируется в филиал(ы). Если измения серьезные - ты присылается скрипт, который и делает все необходимое. Здесь налицо преимущества инфраструктуры Sybase). "

Интересный момент. У Sybase есть уже готовая репликация не только данных, но также изменений структур данных, хранимых процедур и т.д.??? Если нет, в СУБД есть только готовая репликация данных, а репликация изменений структур и SP сделана разработчиками базы (не СУБД, просьба их не путать), то от ситуации с DB2 это ничем не отличается.

Вообще, для более плодотворного обсуждения предлагаю:

* Сделайте маленькую тестовую базку на Sybase (такую, какую, по вашему мнению, вам удобно делать на Sybase и неудобно на DB2) и опубликуйте скрипты здесь, а мы обсудим. (Я наверняка предложу заменить SP на VIEW и триггеры).

* Сообщите, чего вам не хватает на Sybase (наверняка ведь чего-то не хватает, идеальных вещей ведь нет), и мы обсудим, нет ли этого у DB2.
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32095167
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хз.
вот лежит у меня на столе килограмм дисков с дб2.
Схватился я за диск нечаянно и поставит не ту редакцию.
смотрю - а там db2 prep не работает.
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32095178
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о, диск с Personal Edition нашел.
может, я и не прав насчет WE ....
просто у меня Enterprise, и я чегт знает что про Workgroup подумал.
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32095182
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но пересталлять db2, чтобы убедиться, не буду
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32095623
petrofff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По поводу особых преимущест. Их нет ни у какого производителя. Скажем, если вдруг, случилось чудо, и DB2 на той же платформе стало крыть например ORACLE раз в 10, то все бы долларами проголосавали за DB2, это форпрос чисто экономический. Реально мы видим колебания рынка в ту, или иную форму. Причем, чисто технические характеристики тут не всегда являются определяющими. Ну скажем Lotus 1-2-3, был в свое время лучше Excel, но был вполне успешно задавлен Мелкософтом, а вот с Lotus у них не получилось, хотя такая компания разворачивалась, не получилось потому, что Lotus прикупило IBM, и борьба стала бессмысленной, у IBM бабок не меньше, чем у Гейтса. Определяющим является фактор привычки, если ты на чем то долго работаешь, то все альтернативные решения принимаются с трудом. Опять же на некоторые вещи можно смотреть по разному. Например, нафиг мне хранимые процедуры, если у меня такой продвинутый диалект SQL, альтернативный взгляд - потому такой продвинутый SQL, потому что механизм хранимых процедур очень слабый. Факт один, а интерпретация разная.
Ну конечно есть еще личные предпочтения, мне например нравился Informix. Главное в этом деле не доходить до фанатизма, и объективно оценивать более сильные, или более слабые стороны продукта.
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32095800
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите еще, что все языки программирования одинаковы, и все равно, на чем программировать. (А ведь можете и сказать, если знакомы только с "наследниками Алгола", т.е. C-подобными и паскалеподобными, и больше ничего не знаете, но будете неправы).

Особые преимущества _возможны_ (скорость, кстати, не самое главное), только вот на продаваемость они влияют слабо.

Между SP и продвинутым SQL разница огромная, пусть они и решают те же самые задачи. Упрощенный пример (для понимания, в чем разница):

CREATE VIEW V1 AS
SELECT ... FROM T1
UNION ALL
SELECT ... FROM T2;

Некоторые так называемые SQL-сервера (не буду показывать на них пальцем) неспособны даже на это (VIEW c UNION ALL внутри). Хорошо, это решаемо при помощи некоей хранимой процедуры P1, которая как-то выходит из положения, типа - открыть курсор на одной таблице, потом на другой, или забабацать содержимое обоих в явную или неявную временную таблицу (на разных по разному).

Продолжу пример. Теперь я в DB2 выполняю запросы типа
SELECT ... FROM V1 WHERE fname = 'Иван'
или
SELECT ... FROM V1 WHERE lname = 'Иванов'

В процессе построения плана, DB2 эти запросы перепишет, типа

SELECT ... FROM T1 WHERE fname = 'Иван'
UNION ALL
SELECT ... FROM T2 WHERE fname = 'Иван';

SELECT ... FROM T1 WHERE lname = 'Иванов'
UNION ALL
SELECT ... FROM T2 WHERE lname = 'Иванов';

Какие мы имеем преимущества:
1. Каждая секция UNION ALL может оптимизироваться отдельно и выполняться параллельно;
2. Явная подстановка параметров, благодаря чему оптимизатор, зная распределение по колонке fname, прикинет, какое количество записей приблизительно можно ожидать и какой нужно использовать индекс (и нужно ли это вообще). Надо сказать, что "некоторые" SQL-сервера на такое просто неспособны и для SELECT ... FROM T2 WHERE fname = 'Иван' приведут его в вид SELECT ... FROM T2 WHERE fname = :parameter, построят план для этого запроса и подставят в параметр 'Иван'.

Как поступит "некоторый сервер" c хранимой процедурой (SELECT ... FROM P1 WHERE fname = 'Иван'), если такая конструкция вообще для него возможна? Не думаю, что об этом нужно говорить. В реальности программист "некоторого сервера", скорее всего, вместо одного DB2-шного VIEW будет вынужден писать несколько хранимых процедур, с ужасными конструкциями во WHERE (:param1 Null or fname = :param1) AND (:param2 is null or lname = :param2) внутри, или кучей IF-ов (потому несколько SP, что на каждое сочетание параметров в одной SP все равно невозможно предусмотреть).

А всякие там курсоры живо навевают мне воспоминания о клипперовских временах. Один крЮтой ораклист меня особенно потряс, ему надо было посчитать количество записей в таблице, удовлетворяющих некоему условию, так он сделал так - открыл курсор на запросе типа select 1 ...where условие и прокатился по курсору, увеличивая счетчик ;-)... но если подумать, то другой код других (профессиональных, опытных) ораклистов, который я видел, не сильно-то лучше.
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32096045
Roman Pankov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Некоторые так называемые SQL-сервера (не буду показывать на них пальцем) неспособны даже на это (VIEW c UNION ALL внутри).

А почему бы и не ткнуть... "Имя, сестра, имя!"... ;)

Только что проверил:
MS SQL Server 2000 - способен
Informix DS 7.3 - запросто
Oracle 8i 8.1.7 - без проблем
за DB2 вы вроде как и сами ратуете, но я проверил - и убедился, что все в порядке

Sybase?... Interbase?...
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32096167
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, Sybase вплоть до 12.5 (проверять не стал, но страница 121 в SQL User Guide гласит - "You cannot use the union operator within a create view statement.") - я не знаю, существует ли более поздняя версия Sybase и как там обстоят дела, и Interbase до 5.5 - я не знаю, как с этим обстоят дела в 6-й версии.

Но мой пример не про наличие/отсутствие UNION во VIEW, а про пользу продвинутости SQL и оптимизатора и вред хранимых процедур. Наверняка можно придумать и другие примеры, уже без участия UNION, но мне так было проще всего.

Я не то что бы ратую за DB2, потому что техническое превосходство - чуть ли не самый последний фактор из влияющих на популярность и рынок, но хочу показать, что своя ниша у нее таки-есть.
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32096182
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да если хотите, можете просто сравнить

(вариант 1)
CREATE VIEW V1 AS
SELECT ... FROM T1
UNION ALL
SELECT ... FROM T2;

(вариант 2)
с хранимой процедурой, выполняющей

SELECT ... FROM T1
UNION ALL
SELECT ... FROM T2;

и возвращающей result set. Суть моего примера не изменится. Хранимая процедура - лишняя работа и потенциальные тормоза.
...
Рейтинг: 0 / 0
Особенности DB2 - в чем цимус?
    #32096192
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я знаю, где в какой базе нельзя использовать union во вью. в DB2 for S/390 вплоть до шестой версии. :) (в седьмой можно)

только вопрос возникает - что, кому-то понадобился такой вью? по-моему, этот пример хорош только в обучающих целях. с практической точки от него мало толку.

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


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