powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / DB2 Express-C против - MS SQL Server 2000 -???
178 сообщений из 178, показаны все 8 страниц
DB2 Express-C против - MS SQL Server 2000 -???
    #33588600
Baracuda_kst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, Я работаю c MS SQL Server 2000, в последнее время подумываю переходить на DB2, узнал что у IBM есть бесплатная версия: DB2 Express-C, хочу попробовать ее. (Восновном из за платформы linux)

Как вы считаете стоит ли переходить на нее, и какие приимущества есть у DB2 пред MS SQL Server-ом (Скорость, простота настройки и администрирования)
?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33588930
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Baracuda_kstПривет, Я работаю c MS SQL Server 2000, в последнее время подумываю переходить на DB2, узнал что у IBM есть бесплатная версия: DB2 Express-C, хочу попробовать ее. (Восновном из за платформы linux)

Как вы считаете стоит ли переходить на нее, и какие приимущества есть у DB2 пред MS SQL Server-ом (Скорость, простота настройки и администрирования)
?
Я бы вам не советовал так поступать. Вы дважды оскорбили MS SQL-щиков.
1) тем что хотите DB2 и 2) тем что хотите линукс. Так и побить ведь могут. (шутка)

А вообще (если по серьезному) я бы отметил вот эти моменты:
1) В DB2 многие вещи решаются всего лишь одним единственным запросом. В MSSQL вам придется писать для этого процедуру.
2) В DB2 есть понятие статического SQL. Ничего подобного в MSSQL даже близко нет.
3) у DB2 гораздо больше ручек за которые можно курутить чтобы добиться нормальной производительности.
4) Процедурный язык ( у MS SQL - T-SQL, у Oracle - PL/SQL, у DB2 - SQLPL) намного сложнее чем T-SQL.
5) У DB2 на С/С++ можно такого наворотить, что Oracle и MSSQL - просто отдыхают.
6) DB2 Express-C по своим характеристикам (задаром - до 2ЦПУ, unlimit users, unlimit diskspace, 4 GB RAM) легко покрывает потребности 98% компаний России (мелкий и средний бизнес).
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33588966
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответить что ли за MSSQL-льщиков ;)

gardenman1) В DB2 многие вещи решаются всего лишь одним единственным запросом. В MSSQL вам придется писать для этого процедуру.
В Юконе многие вещи теперь так же решаются одним запросом. Ну а сложные вещи решаются написанием процедуры или функции, что есть правильно.

gardenman2) В DB2 есть понятие статического SQL. Ничего подобного в MSSQL даже близко нет.
И на фиг не сдалось. Помнится даже на местном форуме DB2 многие специалисты подтвердили, что он на фиг не сдался, потому что нормальный стоимостной оптимизатор запросов гораздо выгодней и гибче будет работать на базах с разным заполнением данных, чем запрос, жестко привязанный к одному плану выполнения. Плюс в MSSQL есть хинты, которые позволяют добиться нужного плана запроса, если уж припрет - чем не альтернатива ?

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

gardenman4) Процедурный язык ( у MS SQL - T-SQL, у Oracle - PL/SQL, у DB2 - SQLPL) намного сложнее чем T-SQL.
В MSSQL2005 диалект TSQL неплохо подтянулся и не особо теперь уступает диалектам других языков, хотя все таки в некоторых вещах недотягивает до уровня конкурирующих диалектов. Однако как показывает практика разработки и эксплуатации проектов даже на MSSQL2000, его хватает на реализацию всей необходимой бизнес-логики БД и вроде пока никто не обломался с отсутствием какой либо фичи. Здесь правильней сказать, что диалект TSQL потребует несколько больших затрат на разработку кода, чем конкурирующие диалекты.

gardenman5) У DB2 на С/С++ можно такого наворотить, что Oracle и MSSQL - просто отдыхают.
Фигня, любая РСУБД поддерживает разработку расширенных хранимок на Си, плюс MSSQL 2005 до кучи поддерживает свой любимый .NET, на котором теперь можно много чего нагородить. Так что никто нигде не отдыхает.

gardenman6) DB2 Express-C по своим характеристикам (задаром - до 2ЦПУ, unlimit users, unlimit diskspace, 4 GB RAM) легко покрывает потребности 98% компаний России (мелкий и средний бизнес).
Все эти прекрасные качества к сожалению гробяться наличием множества ручек, где как раз мелкий и средний бизнес более интересует работа без администратора, чем сервер без ограничений, но которому кто то должен накручивать ручки.

Во как. Все вышесказанное так же до кучи можно отнести к ASA и Oracle (если исключить рассуждения о ручках, которых в нем тоже не маловато будет).
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33588977
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ACRUS - ну блин... По всем пунктам - пальцем в ж...
А по существу - переходить из-за того, что кто-то где-то бесплатно - дурацкая затея.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33589000
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Фигня, любая РСУБД поддерживает разработку расширенных хранимок на Си, плюс MSSQL 2005 до кучи поддерживает свой любимый .NET, на котором теперь можно много чего нагородить. Так что никто нигде не отдыхает.


То, что MSSQL предлагает для C/C++ - это полное фуфло по сравнению с DB2.
Для DB2 тоже можно писать хранимки и интерфейс на .NET. Однако, за хранимки на .NET я б сразу ставил к стенке и расстеливал... И не важно на каком серваке это делают на MSSQL или на DB2.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33589011
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvА по существу - переходить из-за того, что кто-то где-то бесплатно - дурацкая затея.
Да естественно. Причем чтобы действительно осуществить переход, это надо не хило для начала изучить тот же DB2, поработать где то на существующих проектах, чтобы проникнуться ньюансами и возможностями, посмотреть как правильно в парадигме DB2 рисовать БД - и только потом, осознавая свою зеленость и боясь ошибок в проектировании, начинать очень осторожно рисовать свой первый полноценный коммерческий проект. Я уж молчу про ньюансы построения клиентских приложений, способов получения и сохранения данных, ньансах работы драйверов доступа и т.д. Кошмар - тут минимум год нужно плотно поработать и шишек хороших пособирать, чтобы потом действительно заявить, что удачно перешел на другой сервер, если конечно действительно все получится "удачно" :)

P.S. Так что надо изрядной храбростью обладать, чтобы осуществлять такие переходы, это не миграция между похожими и совместимыми MSSQL-ASE-ASA, шишек будет очень много :)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33589021
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ACRUS - во, теперича гораздо более продуманный пост получился.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33589022
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
sorry, ASCRUS
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33589025
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТо, что MSSQL предлагает для C/C++ - это полное фуфло по сравнению с DB2. Для DB2 тоже можно писать хранимки и интерфейс на .NET. Однако, за хранимки на .NET я б сразу ставил к стенке и расстеливал... И не важно на каком серваке это делают на MSSQL или на DB2.
Согласен - есть язык хранимых процедур, вот он самый выгодный в использовании, особенно если сервер кроссплатформенный ;) А хранимки на .NET по моему поздновато MS сделала - мода видимо проходит, у нас например на ASA с 99 года есть поддержка хранимок и хранения и обработки обьектов на Java. Сейчас эта опция обьявлена как "Deprecated" и в принципе никто не возмутился - не сильно много было "героев", которые предпочли шустрому и легкому WatcomSQL заниматься извратами и писать хранимки, прокручивающиеся на JVM, у которых и скорость выполнения ниже, ресурсов жрут больше, да и кода не мало получалось.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33589047
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvASCRUS - во, теперича гораздо более продуманный пост получился.
Дык я никогда никого ни за что не агитирую. Всегда пишу как у меня в ASA, чтобы ради интереса сравнить как у других, что повышает мой (и надеюсь прочих) горизонт восприятия решений проблем и позволяет более трезво оценивать выбор решений при различных поставленных задачах. Тут меня всегда удивляет народ, которые в ответ на мое "А у нас в ASA так ...", начинает возмущаться, как девушка, которой непристойное предложение делают и какими то комплексами страдать, что вот у них бедных не так Я и по форумам других РСУБД в свободное время с удовольствием лазию и читаю, всегда интересно увидеть новые решения, какие у кого проблемы и ньюансы. К примеру с того же форума MSSQL я перевел на ASA кучу интересных алгоритмов и решений, жалко, что теперь MSSQL двинулся в сторону .NET и совместимость между этими серверами можно считать потерянной (а может быть MS и стремилась к такому повороту, кто ее знает).
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33589051
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ASCRUS
Когда мне что-то особенное нужно сделать - типы чтобы быстро считалось, тыстрый поиск подстроки, конвертация и прочие фишки, то ей-богу лучше такие фичи реализовывать на ASM или С/С++ потому что в результате производительность повышается чуть ли не на порядок по сравнению с SQL-версией
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33589063
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
gardenman - аха, ты еще им про fenced/unfenced расскажи....
И примеры красивых запросов приведи, из Unleashed SQL....
Во крику то будет....
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33589070
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Кстати, ASCRUS - вы же читаете наш db2-шный форум, могли бы и прочитать про "ручки настроек" и куда и как они подевались в следующей версии.
Но так по пунктам по всем можно пройтись.
Лучше не надо.
И переходить на express не надо.
Для разработчиков всегда есть ESE , а бизнес, неспособный заплатить за поддержку - это блин уму непостижимо...
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33589205
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS wrote:
> P.S. Так что надо изрядной храбростью обладать, чтобы осуществлять такие
> переходы, это не миграция между похожими и совместимыми MSSQL-ASE-ASA,
> шишек будет очень много :)
Насколько я понимаю, изрядной храбростью надо обладать даже для того,
чтобы вот так взять, и проапгрейдится на следующую версию сой же СУБД
(МС, Оракл и т.д.)... а тут раз - и в Китай... с нашим то ивритом :-)

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33589662
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
Ну это смотря какой сервер. На ASA к примеру 2 вида апгрейта:
1. Апгрейт структуры служебных таблиц, без апгрейта физической структуры хранения данных БД, что позволяет работать с БД на новой версии, но остаются недоступными многие новые фичи.
2. Полный апгрейт посредством выгрузки через визард или утилиту схемы/данных БД, создания БД на новой версии и загрузки обратно схемы/данных. Здесь все делается автопилотом, но для больших БД надо думать занимает не мало времени выполнения, с учетом выгрузки всех данных в CSV и обратной их загрузки вместе со статистикой в чистую БД формата новой версии.

В любом случае поддерживается полная обратная совместимость и переход на новую версию (при условии, что она уже устойчива) не вызывает проблем. Единственное, где после перевода слишком старых БД, народу можно поразвлекаться позапускать профайлеры ХП, консультант индексов, поставить на перехват графические планы запросов для запросов с высоким временем выполнения на рабочей БД, чтобы пооптимизировать структуру БД, запросы и ХП с целью увеличения производительности сервера. Но и даже без этого производительность выполнения запросов увеличивается, что особенно заметно сказывается на БД с большим кол-вом активных сессий, так как сервер и в т.ч. оптимизатор совершенствуются каждый месячный патч, а не только со сменой пака или целой версии сервера.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33589848
Фотография Leonid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSОтветить что ли за MSSQL-льщиков ;)Ув. ASCRUS не утруждайтесь, итак понятно, что будут гнать фанаты DB2.

To Baracuda_kst:
Вы сначала попробуйте после MSSQL на DB2 поработать сами. Подергайте туда-сюда, более чем уверен, будете с тоской вспоминать о MSSQL.

Вы лучше с ASCRUS-ом свяжитесь, он вам про ASA раскажет, если вам по зарез нужно куда-то линять с виндов и MSSQL.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33589960
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidВы лучше с ASCRUS-ом свяжитесь, он вам про ASA раскажет, если вам по зарез нужно куда-то линять с виндов и MSSQL.
Человеку, насколько я понял, нужен халявный сервер. ASA (окромя Developer Edition) не имеет аналогов всяких Express Edition, где разрешалась бы бесплатная эксплуатация в коммерческих целях, хотя здесь есть 3 положительных ньюанса:
1. Стоимость самого сервера достаточно низкая
2. В эту низкую стоимость входит весь функционал сервера, без каких либо ограничений или требования приобретения другого штатного или стороннего ПО (т.е. 2 вида репликаций, работа с удаленными серверами, работа с веб-сервисами и как http-сервера и т.д. и т.п.).
3. Все ежемесячные патчи и выходящие в среднем в раз в год паки бесплатны.

P.S. Вообще для разработки и тестирования Dev Edition вообще не имеет ограничений, на котором есть все тоже, что и в продаваемой лицензии сервера ASA, даже утилита лицензирования максимального кол-ва подключения (perseat) или процессоров (processor) и паки на эту версию ставяться те же самые, что и на продаваемые версии ASA, причем ASA версия для разработчиков есть для всех платформ, вплоть до 64-разрядных Win/Linux/Solaris и IBM. Так что ... иногда мы клиентам просто предлагаем месяц поюзать и пощупать в пилотном варианте проекты на базе установленной без девелоперского ключа ASA (что автоматом превращает девелоперскую версию в триальную), причем на разных узлах, чтобы они сами могли посмотреть и оценить оффлайн репликации, веб-сервисы и интеграцию с своими системами на базе удаленных серверов и XML, а уж потом самим решать, покупать ли проект, куда просто доставляются нужное кол-во лицензий на сервера и подключения, которые имеют одинаковую стоимость и списываются с золотого диска, купленного нами, как партнерами Sybase. Т.е. например 10 серверов и 40 лицензий на подключение будет равняться 50 выписанным на продукт лицензиям, то есть порядка 7 тонн зелени с НДС, что довольно дешево, с учетом того, что на 10 серверах можно связать холдинг с 9-ю удаленными филиалами и организовать через оффлайн без требований выделенных каналов достаточно мощную систему с поддержкой обмена информации через мыло или FTP по любому заданному расписанию и без требования наличия удаленных администраторов, где все на физическом уровне разруливается ASA, а на логическом централизованно с консолидированной БД, где команды управления серверами (например изменение расписание обмена данных), автоматически доставляются и выполняются репликацией на заданных узлах. Здесь конечно все Express Edition проигрывают, потому что не поддерживают репликаций и получается в качестве кандидатов на сервера удаленных филиалов не тянут.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33589998
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
эти express - сплошное вредительство.
Маркетологам делать нечего....
Эхх, не технари правят миром...
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590241
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Исходное письмо содержало просьбу о сравнении DB2 и MS SQL 2000. Про Юкон никто не спрашивал. К сожалению, ни 2000-го, ни 2005-го у меня нет, так что сравнить не могу.

2. Статический SQL кое-где может быть выгоден.

3. Как показали недавно шумно прошедшие тесты интербейсников, у DB2 эти ручки приходится крутить слишком часто там, где MSSQL просто честно отрабатывает без этих самых ручек. Мягко говоря, передёргивание. В основном шум был от того, что я пытался понять, что именно делал Олег. За исключением проблемы CPUSPEED, прочие настройки можете считать "дефолтными". Кое-что осталось невыясненным (как DB2 посмела не выиграть в каждом тесте? ;-) ), но это займёт время.

4. Написание SP и UDF на C для DB2 было основным способом написания SP и UDF, вплоть до версии 7, и, на мой взгляд, это сделано гораздо более удобно, чем в Oracle (где этот способ - вспомогательный).

5. Все эти прекрасные качества к сожалению гробяться наличием множества ручек, где как раз мелкий и средний бизнес более интересует работа без администратора, чем сервер без ограничений, но которому кто то должен накручивать ручки.
Очевидно, предполагается, что DB2 Express-C должен поставляться вместе с приложениями. У приложений, разумеется, должны быть разработчики, которые должны разбираться в настройках. По моему мнению, именно разработчики приложения должны дать рекомендацию, как создать и сконфигурировать базу. Она может выглядеть как "Создайте базу так-то, затем воспользуйтесь Configuration Advisor, а затем увеличьте количество архивных логов до". Ничего сложного.

6. Вы сначала попробуйте после MSSQL на DB2 поработать сами. Подергайте туда-сюда, более чем уверен, будете с тоской вспоминать о MSSQL. Согласен. Правда, это будет говорить не о качествах собственно DB2, а о человеческой психологии. Я вот к Oracle до сих пор не на 100% адаптировался, а первое время был вообще в шоке.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590270
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS gardenmanТо, что MSSQL предлагает для C/C++ - это полное фуфло по сравнению с DB2. Для DB2 тоже можно писать хранимки и интерфейс на .NET. Однако, за хранимки на .NET я б сразу ставил к стенке и расстеливал... И не важно на каком серваке это делают на MSSQL или на DB2.
Согласен - есть язык хранимых процедур, вот он самый выгодный в использовании, особенно если сервер кроссплатформенный ;)
С чем, с чем вы согласны? Разве gardenman такое сказал? И разве SP на C не кросплатформенны? И что такое "выгодно использовать"?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590298
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Metelitsa
Согласен - есть язык хранимых процедур, вот он самый выгодный в использовании, особенно если сервер кроссплатформенный ;)
С чем, с чем вы согласны? Разве gardenman такое сказал? И разве SP на C не кросплатформенны? И что такое "выгодно использовать"?[/quot]

кросплатформены они были разве, что если за собой компилятор таскать, да и потом разве SPL уже не окончательно вытеснил этот доисторический способ писать SP ?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590313
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Yo - нет, этот "доисторический" способ не вытеснен, и сильно надеюсь, не будет вытеснен. Нельзя терять такую класную вещь.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590324
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! Victor Metelitsa
Согласен - есть язык хранимых процедур, вот он самый выгодный в использовании, особенно если сервер кроссплатформенный ;)
С чем, с чем вы согласны? Разве gardenman такое сказал? И разве SP на C не кросплатформенны? И что такое "выгодно использовать"?

кросплатформены они были разве, что если за собой компилятор таскать, да и потом разве SPL уже не окончательно вытеснил этот доисторический способ писать SP ?[/quot]

это - не доисторический способ. А способ писать высокопроизводительные процедуры, это способ использовать имеющуюся платформу на 100%.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590330
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!!
кросплатформены они были разве, что если за собой компилятор таскать, да и потом разве SPL уже не окончательно вытеснил этот доисторический способ писать SP ?

Что такое "таскать за собой компилятор"?

SQL PL не вытеснил C-процедуры. Можно пользоваться тем, можно этим.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590440
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman
это - не доисторический способ. А способ писать высокопроизводительные процедуры, это способ использовать имеющуюся платформу на 100%.

использовать на 100% это конечно хорошо, но не в данном случае. да наверно в некоторых тяжелых OLPT задачах есть смысл пару процедур написать на C где реально нада 110% ... но не больше, вы же не пытаетесь все писать на асме, чтоб выжать из платформы 100% ?
в оракле тоже можно писать udf на pro*c но никто по своей воле этого делать не станет, такое супортить потом замаешся, ibm это прекрасно понимает отсюда и подвижки в сторону SPL и .Net, а искать меморилики в udf мое большое ИМХО что из далекого прошлого.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590483
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не искать утечки памяти - нужно писать ХП правильно.
А когда XP или FUNCTION поднимает перфоменс запроса на два порядка - это ооочень тешит мое самолюбие...)))
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590494
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanЧтобы не искать утечки памяти - нужно писать ХП правильно.
А когда XP или FUNCTION поднимает перфоменс запроса на два порядка - это ооочень тешит мое самолюбие...)))
Странно - если в ХП у меня используется только бизнес-логика в виде запросов и ветвлений через IF, если у сервера есть все необходимые штатные быстрющие функции работы с математикой, строками, датами, аналитикой и т.д., а всякие затратные, но не имеющие отношения к БД функции, типа "суммы прописью", перевода Gif в JPeg, распознавания текстов и т.д., хорошо и быстро работают на клиенте и отчетнике, то спрашивается - ну где там можно перфоменс на два порядка поднять, что нужно делать, чтобы такое различие скорости было заметно ? У меня честно говоря окромя сравнения, что на Си обрабатывать данные курсорчиками будет в 2 раза быстрее, чем в ХП, других мыслей в голову и не приходит. Так что колитесь ;)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590505
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590507
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
типа все заб[ы|и]ли на топик, и понеслась.....
Интересно, это свойство человеческой натуры вообще, или это мы, ITшники грешим только...
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590510
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ggv
Ага... все мы грешники... каюсь...
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590532
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
есть предложение...
Братьям по верем. По вере в IT.
Забить на все эти топики, с дурацкими вопросами этих, как их....
Пользователей, блин.
Тольку от них. Что от пользователей, что от вопросов их дурацких....
И собственно, занятся любимым делом!
Обсуждением нашей веры!
Лучше всего очно, в пивняке :)
Все одно этим заканчивается любой топик.
Ну в пивняке врядли получится, в смысле - в реальном. Мы, так сказать, "распределенное" сообщество.
То есть предлагаю наше распределенное сообщество интегрировать в виртуальном пивняке.
Где мы и займемся любимым делом :)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590562
Фотография Leonid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvГде мы и займемся любимым делом :)Каким? :)
Расхваливать сервера и технологии, на которых работаем?
Ссориться и сраться за веру в великое будущее MS, IBM или Оракла?

Так мы и так этим занимаемся. Зачем нам виртуальный пивняк? :)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590633
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
а вот как раз затем, чтобы заниматься любимым делом безотносительно ваших вопросов.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590734
Фотография Leonid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvа вот как раз затем, чтобы заниматься любимым делом безотносительно ваших вопросов.Не понял, чьих "ваших вопросов"?

При всем уважении, не получится.
Все равно собъемся на спор каждый за свою веру.

Поэтому "виртуальный кабак" придется разбивать на столик для DB2-шников, столик для MSSQL-евцев и т.д.
Так у нас и так форум разбит на "столики".
А драки, как положено, в курилке "Сравнение СУБД" :)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590789
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
неее, суть в том, чтобы не ждать очередного топика для драки, а иметь ее перманентно, не обращая внимания собвтвенно на вопросы страждущих :)
Ну вот взять этот топик - ну и сколько сообщений по теме?
Воо, так нафига ждать прихода темы?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33590966
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvYo - нет, этот "доисторический" способ не вытеснен, и сильно надеюсь, не будет вытеснен. Нельзя терять такую класную вещь.

За наличие C - компилятора на продакш машине надо ставить к стенке.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591101
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегалло ggvYo - нет, этот "доисторический" способ не вытеснен, и сильно надеюсь, не будет вытеснен. Нельзя терять такую класную вещь.

За наличие C - компилятора на продакш машине надо ставить к стенке.

В огороде бузина, а в Киеве дядька.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591104
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да здравствует сухой закон!
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591109
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегалло

За наличие C - компилятора на продакш машине надо ставить к стенке.

непонял, это вы так с хакерами боретесь :) ? и шо помогает ?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591127
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Metelitsa Выбегалло ggvYo - нет, этот "доисторический" способ не вытеснен, и сильно надеюсь, не будет вытеснен. Нельзя терять такую класную вещь.

За наличие C - компилятора на продакш машине надо ставить к стенке.

В огороде бузина, а в Киеве дядька.

JFYI : возможность создавать хранимые процедуры БЕЗ компилятора С в DB2 появилась, по-моему, с версии 8.2. До этого использование SP автоматически влекло установку компилятора. В том числе и на продакшн. Теперь понятней ?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591143
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! Выбегалло

За наличие C - компилятора на продакш машине надо ставить к стенке.

непонял, это вы так с хакерами боретесь :) ? и шо помогает ?

Нет, уважаемый далекий друг - это мы так стандарты безопасности соблюдаем. Ну, знаете, всякие правила, guidelines, Sarbanex Oxley и прочую херню, которой в России тардиционно не заморачиваются по причине широты души.
Читайте классику , Reflections on Trusting Trust, Ken Thompson http://www.acm.org/classics/sep95/
про то как хакать C компилятор таким образом, чтобы он сам вставлял троянов в чистый собственный source code и после перекомпиляции самого себя - вставлял троянов в скомпилированные им программы.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591149
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВыбегаллоНет, уважаемый далекий друг - это мы так стандарты безопасности соблюдаем. Ну, знаете, всякие правила, guidelines, Sarbanex Oxley и прочую херню, которой в России тардиционно не заморачиваются по причине широты души.
Читайте классику , Reflections on Trusting Trust, Ken Thompson http://www.acm.org/classics/sep95/
про то как хакать C компилятор таким образом, чтобы он сам вставлял троянов в чистый собственный source code и после перекомпиляции самого себя - вставлял троянов в скомпилированные им программы.
Вот это уже ближе к теме топика - DB2 (до 8-й версии) требовала компилятор С, а значит была более подвержена атакам хакеров. Вывод - с MSSQL надо переходить на Оракл!
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591151
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov ВыбегаллоНет, уважаемый далекий друг - это мы так стандарты безопасности соблюдаем. Ну, знаете, всякие правила, guidelines, Sarbanex Oxley и прочую херню, которой в России тардиционно не заморачиваются по причине широты души.
Читайте классику , Reflections on Trusting Trust, Ken Thompson http://www.acm.org/classics/sep95/
про то как хакать C компилятор таким образом, чтобы он сам вставлял троянов в чистый собственный source code и после перекомпиляции самого себя - вставлял троянов в скомпилированные им программы.
Вот это уже ближе к теме топика - DB2 (до 8-й версии) требовала компилятор С, а значит была более подвержена атакам хакеров. Вывод - с MSSQL надо переходить на Оракл!

Выаод неправильный - переходить надо на Informix :-)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591158
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегалло Victor Metelitsa Выбегалло ggvYo - нет, этот "доисторический" способ не вытеснен, и сильно надеюсь, не будет вытеснен. Нельзя терять такую класную вещь.

За наличие C - компилятора на продакш машине надо ставить к стенке.

В огороде бузина, а в Киеве дядька.

JFYI : возможность создавать хранимые процедуры БЕЗ компилятора С в DB2 появилась, по-моему, с версии 8.2. До этого использование SP автоматически влекло установку компилятора. В том числе и на продакшн. Теперь понятней ?
А в Америке негров линчуют.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591159
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov ВыбегаллоНет, уважаемый далекий друг - это мы так стандарты безопасности соблюдаем. Ну, знаете, всякие правила, guidelines, Sarbanex Oxley и прочую херню, которой в России тардиционно не заморачиваются по причине широты души.
Читайте классику , Reflections on Trusting Trust, Ken Thompson http://www.acm.org/classics/sep95/
про то как хакать C компилятор таким образом, чтобы он сам вставлял троянов в чистый собственный source code и после перекомпиляции самого себя - вставлял троянов в скомпилированные им программы.
Вот это уже ближе к теме топика - DB2 (до 8-й версии) требовала компилятор С, а значит была более подвержена атакам хакеров. Вывод - с MSSQL надо переходить на Оракл!
А в Киеве дядька.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591161
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегалло

Нет, уважаемый далекий друг - это мы так стандарты безопасности соблюдаем. Ну, знаете, всякие правила, guidelines, Sarbanex Oxley и прочую херню, которой в России тардиционно не заморачиваются по причине широты души.
Читайте классику , Reflections on Trusting Trust, Ken Thompson http://www.acm.org/classics/sep95/
про то как хакать C компилятор таким образом, чтобы он сам вставлял троянов в чистый собственный source code и после перекомпиляции самого себя - вставлял троянов в скомпилированные им программы.

Cool ! компилировать трояна в C сторед процедуру, это что какой-то вид аудита ? :) не слышал о такой фичи у оракла :)

ЗЫ. видел люди ставили иконки на сервер, но чтоб компилятор выковыривать, это впервые. послушайте расскажите нам серым, а perl, bash, java вы тоже выковыриваете ? особо интересует методика выковыривания C компилятора из db2 8.2 ;)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591195
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вы пользуетесь покупной системой на Oracle, которая построена с использованием wrapped процедур, плюс клиентская часть на чём-то (Delphi/Java/etc), где гарантия, что там нет трояна? Проверить вы не сможете. (А будут исходники, действительно ли станете проверять, или доверитесь поставщику?). C-процедуры и функции DB2 нисколько не более опасны.

1) Классические C-процедуры и

2) процедуры на SQL PL, которые ранее транслировались на C, а, начиная с DB2 8.2, в собственный DB2-байткод,

это всё-таки разные вещи. Но в обоих случаях, C-компилятор на production никогда не требовался и не требуется; если использовался C, то поставляются скомпилированные модули (DLL, shared libraries).
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591218
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот вам SP на SQL PL (язык появился в DB2 v7 и усовершенствовался в v8).
Код: 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.
48.
49.
50.
51.
52.
53.
54.
55.
56.
CREATE PROCEDURE IN_PARAMS (IN lowsal DOUBLE, IN medsal DOUBLE, IN highsal DOUBLE, IN department CHAR( 3 ))
SPECIFIC SQL_IN_PARAMS
DYNAMIC RESULT SETS  0 
DETERMINISTIC
LANGUAGE SQL 
MODIFIES SQL DATA
BEGIN
  DECLARE SQLSTATE CHAR( 5 ) DEFAULT '00000';
  DECLARE SQLCODE INTEGER DEFAULT  0 ;
  DECLARE errorLabel CHAR( 32 ) DEFAULT '';
  DECLARE v_firstnme VARCHAR( 12 );
  DECLARE v_midinit CHAR( 1 );
  DECLARE v_lastname VARCHAR( 15 );
  DECLARE v_salary DOUBLE;
  DECLARE at_end SMALLINT DEFAULT  0 ;
 
  DECLARE c1 CURSOR FOR
    SELECT firstnme, midinit, lastname, CAST(salary AS DOUBLE)
    FROM employee
    WHERE workdept = department 
    FOR UPDATE OF salary;

  DECLARE CONTINUE HANDLER FOR NOT FOUND
    SET at_end =  1 ;

  DECLARE EXIT HANDLER FOR SQLEXCEPTION
    SIGNAL SQLSTATE value SQLSTATE SET MESSAGE_TEXT = errorLabel;

  -- initialize OUT parameter
  SET errorLabel = 'OPEN CURSOR';
  OPEN c1;
  SET errorLabel = 'FIRST FETCH';
  FETCH c1 INTO v_firstnme, v_midinit, v_lastname, v_salary;
  WHILE (at_end =  0 ) DO
    IF (lowsal > v_salary) THEN
      UPDATE employee
      SET salary = lowsal
      WHERE CURRENT OF c1;
    ELSEIF (medsal > v_salary) THEN
      UPDATE employee
      SET salary = medsal
      WHERE CURRENT OF c1;
    ELSEIF (highsal > v_salary) THEN
      UPDATE employee
      SET salary = highsal
      WHERE CURRENT OF c1;
    ELSE UPDATE employee
      SET salary = salary *  1 . 10 
      WHERE CURRENT OF c1;
    END IF;
    SET errorLabel = 'FETCH IN WHILE LOOP';
    FETCH c1 INTO v_firstnme, v_midinit, v_lastname, v_salary;
  END WHILE;
  SET errorLabel = 'CLOSE CURSOR';
  CLOSE c1;
END @
А вот аналог на C, с DB2 v2 (комментарии я выкинул).
Код: 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.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
SQL_API_RC SQL_API_FN InParams(double *inLowSal,
                               double *inMedSal,
                               double *inHighSal,
                               char inDept[ 4 ],  /* CHAR(3) */
                               sqlint16 *inLowSalNullInd,
                               sqlint16 *inMedSalNullInd,
                               sqlint16 *inHighSalNullInd,
                               sqlint16 *inDeptNullInd,
                               char sqlstate[ 6 ],      
                               char qualName[ 28 ],  
                               char specName[ 19 ],  
                               char diagMsg[ 71 ]) 
{
  EXEC SQL INCLUDE SQLCA;  
  EXEC SQL BEGIN DECLARE SECTION;
    double hvInParamLowSal;
    double hvInParamMedSal;
    double hvInParamHighSal;
    double hvInParamSalary;
    char hvInParamDept[ 4 ];
  EXEC SQL END DECLARE SECTION;
  char sqlStmtInfo[ 60 ];
  memset(sqlStmtInfo, '\0',  60 ); 
  EXEC SQL WHENEVER SQLERROR GOTO return_error;
  if ((*inLowSalNullInd) <  0  || 
      (*inMedSalNullInd) <  0  ||  
      (*inHighSalNullInd) <  0  ||
      (*inDeptNullInd) <  0 )
  {
    strcpy(sqlstate, "38100");
    strcpy(diagMsg, "Received null input.");   
    return( 0 );
  } 
  hvInParamLowSal = *inLowSal;
  hvInParamMedSal = *inMedSal;
  hvInParamHighSal = *inHighSal;
  strcpy(hvInParamDept, inDept);
  strcpy(sqlStmtInfo, "DECLARE statement failed");    
  EXEC SQL DECLARE curInParam CURSOR FOR
             SELECT CAST(salary AS DOUBLE)
               FROM employee
                 WHERE workdept = :hvInParamDept FOR UPDATE;  
  strcpy(sqlStmtInfo, "OPEN statement failed");  
  EXEC SQL OPEN curInParam;
  strcpy(sqlStmtInfo, "FETCH statement failed");   
  EXEC SQL FETCH curInParam INTO :hvInParamSalary;
  if (sqlca.sqlcode ==  100 )
  {
    strcpy(sqlstate, "38200");  
    strcpy(diagMsg, " 100: NO DATA FOUND");
    strcpy(sqlStmtInfo, "CLOSE statement failed");
    EXEC SQL CLOSE curInParam;
    return ( 0 );
  }      
  while (sqlca.sqlcode ==  0 )
  {
    strcpy(sqlStmtInfo, "UPDATE statement failed");   
    if (hvInParamLowSal > hvInParamSalary)
    {
      EXEC SQL UPDATE employee SET salary = :hvInParamLowSal
	         WHERE CURRENT OF curInParam;
    }
    else if (hvInParamMedSal > hvInParamSalary)
    {
      EXEC SQL UPDATE employee SET salary = :hvInParamMedSal 
	         WHERE CURRENT OF curInParam;
    }
    else if (hvInParamHighSal > hvInParamSalary)
    {
      EXEC SQL UPDATE employee SET salary = :hvInParamHighSal 
	         WHERE CURRENT OF curInParam;
    }
    else
    {
      EXEC SQL UPDATE employee
                 SET salary = :hvInParamSalary *  1 . 10 
                   WHERE CURRENT OF curInParam;
    }   
    strcpy(sqlStmtInfo, "FETCH statement failed");   
    EXEC SQL FETCH curInParam INTO: hvInParamSalary;
  }
  strcpy(sqlStmtInfo, "CLOSE statement failed");    
  EXEC SQL CLOSE curInParam;  
  return ( 0 );
  return_error:
  {  
    strcpy(sqlstate, sqlca.sqlstate);      
    sprintf(diagMsg, "%d", sqlca.sqlcode);
    strcat(diagMsg, ": ");
    strcat(diagMsg, sqlStmtInfo);
    return ( 0 );
  }
} /* InParams function */ 

Про производительность ничего не скажу, но MSSQL-цы и ораклисты зря боялись.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591222
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подчёркиваю, второй текст (SP на C) не был получен трансляцией первого (SP на SQL PL). На C писали "от сотворения" (ну, или от DB2 Common Server 2.1, как минимум). Разница же не так уж велика.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591223
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! Выбегалло

Нет, уважаемый далекий друг - это мы так стандарты безопасности соблюдаем. Ну, знаете, всякие правила, guidelines, Sarbanex Oxley и прочую херню, которой в России тардиционно не заморачиваются по причине широты души.
Читайте классику , Reflections on Trusting Trust, Ken Thompson http://www.acm.org/classics/sep95/
про то как хакать C компилятор таким образом, чтобы он сам вставлял троянов в чистый собственный source code и после перекомпиляции самого себя - вставлял троянов в скомпилированные им программы.

Cool ! компилировать трояна в C сторед процедуру, это что какой-то вид аудита ? :) не слышал о такой фичи у оракла :)

ЗЫ. видел люди ставили иконки на сервер, но чтоб компилятор выковыривать, это впервые. послушайте расскажите нам серым, а perl, bash, java вы тоже выковыриваете ? особо интересует методика выковыривания C компилятора из db2 8.2 ;)

Выковыривать надо серу из ушей, а cc просто используется. как отдельный продукт. можете не ставить, но тогда хранимые процедуры на данной машине - не скомпилировать.
Хотя что это я бисер мечу перед виндоузником...
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591236
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегалло
Выковыривать надо серу из ушей, а cc просто используется. как отдельный продукт. можете не ставить, но тогда хранимые процедуры на данной машине - не скомпилировать.
Хотя что это я бисер мечу перед виндоузником...

Осталось только узнать, нафига их там компилировать.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591237
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaC-процедуры и функции DB2 нисколько не более опасны.

1) Классические C-процедуры и

2) процедуры на SQL PL, которые ранее транслировались на C, а, начиная с DB2 8.2, в собственный DB2-байткод,

это всё-таки разные вещи. Но в обоих случаях, C-компилятор на production никогда не требовался и не требуется; если использовался C, то поставляются скомпилированные модули (DLL, shared libraries).

Позвонил я тут в личный DB2 саппорт :-), результаты разговора :
1. Можно обойтись без C на продакшене...
2. если иметь девелоперский бокс с совпадающей операционкой и db2...
3. и не забывать тянуть все dependancies с собой.

Т.е. можно, но не без гиморроя.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591242
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВыбегаллоПозвонил я тут в личный DB2 саппорт :-), результаты разговора :
1. Можно обойтись без C на продакшене...
2. если иметь девелоперский бокс с совпадающей операционкой и db2...
3. и не забывать тянуть все dependancies с собой.

Т.е. можно, но не без гиморроя.

Типа "Я делаю систему для богатого клиента с DB2 на AIX, а у меня нет соотвествующего железа и я не могу скомпилировать SP для этой платформы"? Какая ужасная ситуация. Осталось только посчитать, насколько она вероятна.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591335
Фотография Leonid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВыбегаллоПозвонил я тут в личный DB2 саппорт :-), результаты разговора :
1. Можно обойтись без C на продакшене...
2. если иметь девелоперский бокс с совпадающей операционкой и db2...
3. и не забывать тянуть все dependancies с собой.

Т.е. можно, но не без гиморроя.Подождите, Выбегайло, чего-то я не пойму, объясните толком.
В 8-ке что тоже необходим С-компилятор в продакшене или все же нет?
Меня вот Виктор убеждал, что там в отличии от 7-ки компиляция в байт-код a la MSSQL и Oracle.
А если байт-код, то нахрена С-компилятор?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591341
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidМеня вот Виктор убеждал, что там в отличии от 7-ки компиляция в байт-код a la MSSQL и Oracle.
У Оракла давно (с 9-й версии) есть возможность компилировать PL/SQL в нативный код используя С-компилятор. В отличие от DB2 (сразу уточню, что верно для iSeries DB2), этот код оптимизированный.

Ещё хочу заметить, что MSSQL не может передавать коннект в ХП. То есть из ХП надо обратно соединятся с базой, что бы там что-то сделать.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591345
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я помню, в SQL Server 2005 (под .Net) есть контекст, в котором можно получить втч и коннект.
Сильно утверждать не буду, но в бета-версии что-такое было
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591348
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid ВыбегаллоПозвонил я тут в личный DB2 саппорт :-), результаты разговора :
1. Можно обойтись без C на продакшене...
2. если иметь девелоперский бокс с совпадающей операционкой и db2...
3. и не забывать тянуть все dependancies с собой.

Т.е. можно, но не без гиморроя.Подождите, Выбегайло, чего-то я не пойму, объясните толком.
В 8-ке что тоже необходим С-компилятор в продакшене или все же нет?
Меня вот Виктор убеждал, что там в отличии от 7-ки компиляция в байт-код a la MSSQL и Oracle.
А если байт-код, то нахрена С-компилятор?

Define "8" :-)
Байт-код появился начиная с 8.2 (см ftp://ftp.software.ibm.com/ps/products/db2/info/vr82/pdf/en_US/db2q0e81.pdf )
Соответственно в 8.1 его еще не было.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591351
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Metelitsa ВыбегаллоПозвонил я тут в личный DB2 саппорт :-), результаты разговора :
1. Можно обойтись без C на продакшене...
2. если иметь девелоперский бокс с совпадающей операционкой и db2...
3. и не забывать тянуть все dependancies с собой.

Т.е. можно, но не без гиморроя.

Типа "Я делаю систему для богатого клиента с DB2 на AIX, а у меня нет соотвествующего железа и я не могу скомпилировать SP для этой платформы"? Какая ужасная ситуация. Осталось только посчитать, насколько она вероятна.

Нет, типа "мы проапгрейдили AIX на QA боксе и теперь я не могу перекомпилировать процедуру и развернуть ее продакшене".
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591353
Фотография Leonid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton DemidovЕщё хочу заметить, что MSSQL не может передавать коннект в ХП. То есть из ХП надо обратно соединятся с базой, что бы там что-то сделать.Чего?
С этого момента поподробнее...
Что вы хотели сказать?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591360
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что тут говорить - для работы с базой нам выдали T-SQL, если нужно сделать что-то ещё (непредусмотренное) - Extended Stored Procedures. В MSSQL версии 2000 они не имеют встроенного интерфейса в БД.
Sample Extended Stored ProceduresUses ODBC to open a bound connection to the same instance of SQL Server that called the extended stored procedure. The server returns a result set to the extended stored procedure, which passes the result set to the client.
Код: plaintext
1.
2.
--
Антон
Per rectum ad astrum
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591462
Baracuda_kst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Итак господа гуру, делайте выводы в краткой форме и по койкам ! :-)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591464
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Baracuda_kstИтак господа гуру, делайте выводы в краткой форме и по койкам ! :-)
Ну во первых выводы то Вы должны делать, господа гуру приятно провели время и почесали языком, а уж решаться Вам ...

Во вторых уже вставать пора, а не по койкам собираться спать :)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591534
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid
В 8-ке что тоже необходим С-компилятор в продакшене или все же нет?
Меня вот Виктор убеждал, что там в отличии от 7-ки компиляция в байт-код a la MSSQL и Oracle.
А если байт-код, то нахрена С-компилятор?
Почему бы вам не перечитать то, что я писал? Хотя бы то, что на второй странице данной темы?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591538
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton DemidovУ Оракла давно (с 9-й версии) есть возможность компилировать PL/SQL в нативный код используя С-компилятор. В отличие от DB2 (сразу уточню, что верно для iSeries DB2), этот код оптимизированный.

Можно подробностей? Что такое "оптимизированный код", почему он в Oracle "оптимизированный", а в DB2/400 нет?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591542
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВыбегаллоНет, типа "мы проапгрейдили AIX на QA боксе и теперь я не могу перекомпилировать процедуру и развернуть ее продакшене".
Если одна и та же DB2 (одинаковые бинарники) работает там и тут, что за проблема с компилятором? Странно мне такое слышать. Я из под Windows XP вполне могу делать программы для Windows 95.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591619
gybson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У DB2 на С/С++ можно такого наворотить, что Oracle и MSSQL - просто отдыхают.


Во бред то.

Отдыхать будут люди, которым придется с этой БД после Вас работать :D :D :D

P.S. .net не модная фишка, а необходимость. Ну некрасиво когда внешняя процедурина сервак валит :)

P.S.S. Опыт подстказывает, что писать что-то внешнее приходится чтобы заткнуть дыры в проектировании и реализации.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591705
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gybson
P.S. .net не модная фишка, а необходимость. Ну некрасиво когда внешняя процедурина сервак валит :)
Ну что вы! На самом деле вам совершенно необходимо использовать :kgb, реализованный в Linter 2917 codenamed Magadan. Точнее, :kgb будет использовать вас. И он не допустит использования внешних процедур, лишив вас права переписки.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591742
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чрезвычайно некрасиво, что MS SQL и даже сами винды написаны на C/C++. Требуем от MS их полностью переписать на C#, а от Intel - поддержать C# в железе.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33591860
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Важное уточнение:

версии DB2, которые я застал, были: 2.1, 5.1, 5.2, 6.1, 6.2, 7.1, 7.2, 8.1, 8.2.

Когда я говорю "DB2 v8", это означает "DB2 for LUW версии либо 8.1, либо 8.2", где "DB2" = "IBM DATABASE 2" и "LUW" = "Linux, UNIX, Windows". Аналогично с v7 и т.п.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33592276
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Выбегалло - ну вы хоть чушь не порите по вопросам, которые не входят в вашу компетенцию.
Statis SQL и packages как раз появились в давние времена, когда и речи не могло быть о наличии никакого компилятора на production server, это и было главным условием возникновения этих вещей. Со временем добавились SP.
И геммора небыло , правда, поскольку объектный файл не являлся составляющей базы, то использовались другие возможности (ОС) по его backup/restore и переносам.
Так пукнуть в лужу....
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33592286
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
И очень бы хотелось прочитать про оптимизацию С кода на оракле.
Я на С много чего оптимизировал, в том числе и SP.
Может, чему и научусь.
Правда, Anton вряд ли чего пояснит - у него с объективностью туго.
Что не привычно - сразу ненавижу. Объективность так и прет. В основном по незнанию, не со зла...
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33592791
gybson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Metelitsa

Вот когда Ваш подчиненный нечаянно "уронит" сервак и Вам башку за это снимут, тогда осознаете как это здорово, manged code.

Никогда заплатки для "xp" не скачивали. Никогда не приходилось выснять почему сервак вдруг падать стал через день? Ах, оказывается мы стали счастливчиками которые нашли баг в xp, ах что же делать. Конечно в таких связках как DB2+Linux ошибки невозможны, как же так, ведь ошибки делают только когда под винду пишут.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33592838
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
gybson - каким-то таким образом оказалось, что огромное кол-во бизнес приложений умудряются жить без managed code, и что самое интересно - с безопастностью у них все хорошо, если не сказать - гораздо лучше, чем в ситуации с managed code.
Интересно - почему? Меньше рекламе верят?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33592843
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 gybson

Мой любимый анекдот.

Программист пишет программу на ASM-е.
К нему подходит шеф, заглядывает в монитор.
- Эй, а чё это у тебя два раза JMP M1; JMP M1;
- А вдруг первый JMP не сработает...

А вообще - не используйте продакшн сервер в качестве девелоперского. Относитесь к своим обязанностям как следует, изучайте матчасть, не выделяйте самостоятельно память через new в хп, оставьте работу с памятью на совести DB2 (SCRATCHPAD), а если очень нужно то юзайте shared memory - и не будет у вас утечек, переполнения стека. Если что не знаете - спросите, вам ответят.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33592844
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таки переписываем винды под C#? Ведь упадут же! А с вас потом начальник голову снимет.

(Для потенциально подозрительных SP и UDF "на C" DB2 имеет ключевое слово FENCED. Огораживаем забором, короче. В случае чего упадёт только один коннект. Хотя SQL PL и Java тоже никто не отменял, и поддержка .Net есть).
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33592848
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
что-то мне сдается, что уважаемый gybson не имеет понятия, как в нормальных услорвиях происходит доступ к промышленным системам, в том числе и по вопросу инсталляции, upgrade, и так далее.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33592853
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
К тому, что написал Viktor, добавлю - даже очень тщательно написанный код требует прохождения вывереной бизнес процедуры прежде чем попадет в производство.
Это целый регламент , который как раз и разрабатывался для исключения исключительных случаев.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33592859
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕщё хочу заметить, что MSSQL не может передавать коннект в ХП. То есть из ХП надо обратно соединятся с базой, что бы там что-то сделать

мда...
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33592970
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024 авторЕщё хочу заметить, что MSSQL не может передавать коннект в ХП. То есть из ХП надо обратно соединятся с базой, что бы там что-то сделать

мда...
Я так полагаю товарищ имелл в виду ВНЕШНИЕ хп.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33593270
gybson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть набор системных внешних процедур, в которых до сих пор иногда находят баги.

А в остальном разумеется, не было еще никогда такого, чтобы баг пролез в рабочую систему, что вы.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33593381
pavelvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaДля потенциально подозрительных SP и UDF "на C" DB2 имеет ключевое слово FENCED. Огораживаем забором, короче. В случае чего упадёт только один коннект.Во, блин. Думал они вообще в отдельном процессе исполняются...
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33593691
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavelvp Victor MetelitsaДля потенциально подозрительных SP и UDF "на C" DB2 имеет ключевое слово FENCED. Огораживаем забором, короче. В случае чего упадёт только один коннект.Во, блин. Думал они вообще в отдельном процессе исполняются...
Это у Оракла
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33593698
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда внешняя процедура NOT FENCED, то она исполняется в адресном пространстве сервера и примерно в 2 раза быстрее.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33593718
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanКогда внешняя процедура NOT FENCED, то она исполняется в адресном пространстве сервера и примерно в 2 раза быстрее.

NOT FENCED быстрее, но может завалить весь сервер ?
а теперь они в бэкапе участвуют или и теперь это отдельно осью нужно бэкапить ?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33593749
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaМожно подробностей? Что такое "оптимизированный код", почему он в Oracle "оптимизированный", а в DB2/400 нет?
Про Оракл читаем здесь . PLSQL_OPTIMIZE_LEVEL initialization parameter. Для тех, кто в танке проводим аналогию с оптимизатором в С-компиляторе.
Про оптимизацию (точнее её отсутствие) в SQL Stored Procedures нам рассказывал в октябре прошлого года Daniel Cruikshank
в Rochester-e, MN. Он же сказал, что ХП написанная на языке третьего поколения (C, COBOL, ...) скорее всего будет работать быстрее написанной на SQL PL, так как накакой оптимизации генерированного С кода они в iSeries 5R3 не производят. У меня не было возможности проверить его слова, но он, что называется, величием опыта давит. Если ты ему не веришь - перехвати герерируемый С код и посмотри, что же там на самом деле.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33593805
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Metelitsa ВыбегаллоНет, типа "мы проапгрейдили AIX на QA боксе и теперь я не могу перекомпилировать процедуру и развернуть ее продакшене".
Если одна и та же DB2 (одинаковые бинарники) работает там и тут, что за проблема с компилятором? Странно мне такое слышать. Я из под Windows XP вполне могу делать программы для Windows 95.

Вы никогда не сталкивались с изменением поведения компиляторов при апгрейде ОС ? Как говорил Остап, " с таким счастьем - и на свободе".
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33593815
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvВыбегалло - ну вы хоть чушь не порите по вопросам, которые не входят в вашу компетенцию.
Statis SQL и packages как раз появились в давние времена, когда и речи не могло быть о наличии никакого компилятора на production server, это и было главным условием возникновения этих вещей. Со временем добавились SP.
И геммора небыло , правда, поскольку объектный файл не являлся составляющей базы, то использовались другие возможности (ОС) по его backup/restore и переносам.
Так пукнуть в лужу....

Гемор заключается в
а) необходимости иметь идентичный сервер на идентичной ос для компиляции процедур
б) необходимости тянуть с собой все dependancies для скомпилированной процедуры.
Вы с этим не согласны, или это для вас не гимор ? Сколько понадобится машин для тестирования миграции на новую версию ОС ?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33593929
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov Victor MetelitsaМожно подробностей? Что такое "оптимизированный код", почему он в Oracle "оптимизированный", а в DB2/400 нет?
Про Оракл читаем здесь . PLSQL_OPTIMIZE_LEVEL initialization parameter. Для тех, кто в танке проводим аналогию с оптимизатором в С-компиляторе.
Про оптимизацию (точнее её отсутствие) в SQL Stored Procedures нам рассказывал в октябре прошлого года Daniel Cruikshank
в Rochester-e, MN. Он же сказал, что ХП написанная на языке третьего поколения (C, COBOL, ...) скорее всего будет работать быстрее написанной на SQL PL, так как накакой оптимизации генерированного С кода они в iSeries 5R3 не производят. У меня не было возможности проверить его слова, но он, что называется, величием опыта давит. Если ты ему не веришь - перехвати герерируемый С код и посмотри, что же там на самом деле.
Для меня это просто не имеет значения. Во-первых, неизвестно, будет ли "оптимизированный" код Oracle быстрее "неоптимизированного" кода DB2/400. Во-вторых, для тех исходников систем на Oracle, что я видел, глубоко сомневаюсь, чтобы те "оптимизации" дали прирост хоть на процент. В третьих, у нас нет AS/400, и посмотреть генерируемый на той системе (которая имеет довольно мало общего с DB2 for LUW) нет возможности, не говоря о желании. Кстати, на SQL PL у DB2 for LUW кое-какие оптимизации проводятся, но, честно говоря, я не знаю, стоило ли им утруждаться.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33593934
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavelvp Victor MetelitsaДля потенциально подозрительных SP и UDF "на C" DB2 имеет ключевое слово FENCED. Огораживаем забором, короче. В случае чего упадёт только один коннект.Во, блин. Думал они вообще в отдельном процессе исполняются...
Когда fenced, то да. Процессы называются db2fmp.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33593936
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! gardenmanКогда внешняя процедура NOT FENCED, то она исполняется в адресном пространстве сервера и примерно в 2 раза быстрее.

NOT FENCED быстрее, но может завалить весь сервер ?
а теперь они в бэкапе участвуют или и теперь это отдельно осью нужно бэкапить ?

Может завалить, да. Бекапить надо отдельно.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33593938
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегалло Victor Metelitsa ВыбегаллоНет, типа "мы проапгрейдили AIX на QA боксе и теперь я не могу перекомпилировать процедуру и развернуть ее продакшене".
Если одна и та же DB2 (одинаковые бинарники) работает там и тут, что за проблема с компилятором? Странно мне такое слышать. Я из под Windows XP вполне могу делать программы для Windows 95.

Вы никогда не сталкивались с изменением поведения компиляторов при апгрейде ОС ? Как говорил Остап, " с таким счастьем - и на свободе".
И с чистой совестью. Версия компилятора имеет значение, но причём тут собственно ОС (если игнорировать факт, что некоторые ОС поставляются с компиляторами)?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33593939
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегалло
Гемор заключается в
а) необходимости иметь идентичный сервер на идентичной ос для компиляции процедур
б) необходимости тянуть с собой все dependancies для скомпилированной процедуры.
Вы с этим не согласны, или это для вас не гимор ? Сколько понадобится машин для тестирования миграции на новую версию ОС ?

Да ладно пугать-то. Шла бы речь о каком-то закрученном GUI-приложении, это одно дело, но SP и UDF обычно используют очень ограниченный набор чего-то внешнего. Строковые функции да кое-что из самой DB2.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33593981
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Metelitsa Anton Demidov Victor MetelitsaМожно подробностей? Что такое "оптимизированный код", почему он в Oracle "оптимизированный", а в DB2/400 нет?
Про Оракл читаем здесь . PLSQL_OPTIMIZE_LEVEL initialization parameter. ...
Для меня это просто не имеет значения. Ну а зачем тогда спрашивать? Попонтоваться? Пальцы растопырить?

Victor MetelitsaВо-первых, неизвестно, будет ли "оптимизированный" код Oracle быстрее "неоптимизированного" кода DB2/400. Во-вторых, для тех исходников систем на Oracle, что я видел, глубоко сомневаюсь, чтобы те "оптимизации" дали прирост хоть на процент. В третьих, у нас нет AS/400, и посмотреть генерируемый на той системе (которая имеет довольно мало общего с DB2 for LUW) нет возможности, не говоря о желании. спорьте о вкусе устриц, что вы никогда в жизни не пробовали. Ни Оракла, ни DB2/400 не видел, а зачем-то споришь. Ещё и генерируемый код перехватить не можешь.

Victor MetelitsaКстати, на SQL PL у DB2 for LUW кое-какие оптимизации проводятся, но, честно говоря, я не знаю, стоило ли им утруждаться.Факты, друг мой, факты где?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33593998
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov Victor Metelitsa Anton Demidov Victor MetelitsaМожно подробностей? Что такое "оптимизированный код", почему он в Oracle "оптимизированный", а в DB2/400 нет?
Про Оракл читаем здесь . PLSQL_OPTIMIZE_LEVEL initialization parameter. ...
Для меня это просто не имеет значения.
Ну а зачем тогда спрашивать? Попонтоваться? Пальцы растопырить?

Был слабый шанс, что что-то полезное я всё-таки узнаю. Как-никак, с Oracle приходится иметь дело, а всех тонкостей не знаю. Главная причина, почему это оказалось неинтересно, была упомянута в "во-вторых". Я не верю, что тот параметр нам хоть на копейку помог бы, даже будь у нас 10g.

Но для чего вы вообще заговорили про AS/400 (она же iSeries)? Какое это могло иметь отношение к обсуждаемой теме (DB2 Express-C против - MS SQL Server 2000 )? Ведь, в отличие от DB2 for LUW, MS SQL, Oracle, Informix, Sybase, Firebird etc эта система, мягко говоря, не для всех. Попонтоваться и растопырить пальцы?


Victor MetelitsaВо-первых, неизвестно, будет ли "оптимизированный" код Oracle быстрее "неоптимизированного" кода DB2/400. Во-вторых, для тех исходников систем на Oracle, что я видел, глубоко сомневаюсь, чтобы те "оптимизации" дали прирост хоть на процент. В третьих, у нас нет AS/400, и посмотреть генерируемый на той системе (которая имеет довольно мало общего с DB2 for LUW) нет возможности, не говоря о желании.
спорьте о вкусе устриц, что вы никогда в жизни не пробовали. Ни Оракла, ни DB2/400 не видел, а зачем-то споришь. Ещё и генерируемый код перехватить не можешь.


Как это я Oracle не видел, когда я администрирую пару систем и прямо только что сообщил, что просматривал исходники на Oracle? Масса кода на PL/SQL. Правда, 8.1.7, но у одной скоро будет переезд на 9ir2? И как я могу перехватить генерируемый AS/400 код, если у нас AS/400 нет? С вами точно всё в порядке?


Victor MetelitsaКстати, на SQL PL у DB2 for LUW кое-какие оптимизации проводятся, но, честно говоря, я не знаю, стоило ли им утруждаться.Факты, друг мой, факты где?
Какие факты? Что проводятся какие-то оптимизации? Вы действительно хотите получить от меня ссылку на статью на developerworks, или на самом деле вам это неинтересно?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33594051
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaБыл слабый шанс, что что-то полезное я всё-таки узнаю. Как-никак, с Oracle приходится иметь дело, а всех тонкостей не знаю. Главная причина, почему это оказалось неинтересно, была упомянута в "во-вторых". Я не верю, что тот параметр нам хоть на копейку помог бы, даже будь у нас 10g.
Верить не надо - надо самому проверять и тестировать. И именно на 10g - на девятке его нет. Victor MetelitsaНо для чего вы вообще заговорили про AS/400 (она же iSeries)? Не я первый ушёл от основной темы топика. С другой стороны это то, что есть меня из DB2 (ну ещё DB2 7.1 for z/OS, но похоже, что я её знаю не больше, чем ты Оракл)
Victor MetelitsaИ как я могу перехватить генерируемый AS/400 код, если у нас AS/400 нет? Я имел в виду просмотр генерируемого кода на вашей системе. И, в общем говоря, это хорошо, что у вас AS/400 нет - врагу не пожелаешь.
Victor MetelitsaКакие факты? Что проводятся какие-то оптимизации? Вы действительно хотите получить от меня ссылку на статью на developerworks, или на самом деле вам это неинтересно? Такие вещи указываются в документации. Я же привёл ссылку по Ораклу. Мне действительно было бы интересно и приятно увидеть, что DB2 for LUW работает в этом месте лучше iSeries. У меня тонны кода на Коболе и у меня, как у заядлого PL/SQL-щика, руки чешутся улучшить его быстродействие (за счёт лучшего использования SQL) и удобство поддержки (меньший объём кода) за счёт SQL PL, но пока ещё он очень "сырой" продукт.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33594858
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Загрузке ЦПУ далеко до 100% => Производительность привязана к IO => Как я понимаю, надо улучшать запросы.

А что написано про PLSQL_OPTIMIZE_LEVEL? документация 10gPL/SQL performance is improved across the board. Most improvements are automatic, with no action required from you. Global optimization of PL/SQL code is controlled by the PLSQL_OPTIMIZE_LEVEL initialization parameter. The default optimization level improves performance for a broad range of PL/SQL operations. Most users should never need to change the default optimization level.

Performance improvements include better integer performance, reuse of expression values, simplification of branching code, better performance for some library calls, and elimination of unreachable code.

Ни на копейку не поверю, что это как-то ускорит запросы. Особенно если люди принципиально отказываются использовать global temporary tables для временных данных и пользуются обычными.

2. DB2 для мэйнфреймов, DB2/400 и DB2 for LUW - это такие разные вещи, что лучше бы IBM их назвала DB2, DB3 и DB4 соответственно. Мы сейчас говорили бы об DB4 Express-C, и DB3 просто не всплыла бы в обсуждении, как и IMS (DB1?) ;-).

По моему мнению, Oracle или, скажем, MySQL, в этой теме если и не онтопик, то близко к нему, а вот AS/400 злостный оффтопик. Ведь речь идет о выборе для "обычных" людей, работающих с "обычными" x86-серверами.

3. У меня 8.1 уже нет, только 8.2, и C-код не генерируется.

4. Не могу сказать, что по той ораклиной ссылке много информации.

Я считаю, что к статьям, которые писали разработчики, можно относиться как к документации. Но прямо сейчас, к сожалению, "The IBM developerWorks Web site is currently under maintenance.".
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33595135
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0501rielau/index.html
Serge Rielau, Senior Software Developer, IBM
SQL PL tuning in the PVM

Gustavo Arocena, the architect of SQL Procedure, published SQL Procedures Performance: Hints and Tips in 2003. Since then, much has changed. Instead of cross-compiling SQL Procedures to C with embedded SQL, the DB2 V8.2 natively compiles and executes SQL Procedures using its PVM. In the process, some of the hints Arocena describes have found their way into the fledgling PVM optimizer. As you may have seen in the screenshots of the previous examples, some statements have no costs assigned to them. This is not because they are free, but because the statements either get combined with other statements in the PVM optimizer, or because the PVM can execute the SQL natively. In DB2 V8.2 PVM can, among other things, do the following:

* Perform most straight variable assignments
* Do very basic math, such as loop increments
* Combine chains of SET statements into a single VALUES INTO statement
* Rewrite CASE and IF THEN ELSE statements with embedded SET statements into CASE expressions
* Evaluate basic conditions such as “a<b”
* Pre-compute CASE condition and IF THEN ELSE conditions and jump into the right branch right away

The purpose of these optimizations is to avoid invocation of the regular SQL runtime interpreter wherever possible to shorten the code path. PVM is still young, but it in general outperforms SQL Procedures compiled prior to V8.2 primarily because of the improvements shown above.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33595168
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Victor, это как раз то, что меня интересовало. Похоже, что IBM движется в том же направлении, что и Оракл в вопросах развития встроенного языка программирования. Это не может не радовать.

По поводу оптимизации PLSQL: помимо указанной в приведённом отрывке оптимизации "не-SQL" кода, новый компилятор использует по возможности bulk- операции в SQL. Этому нет аналога в DB2 и DB4 (AS/400 и DB2 zOS). Не знаю насчет DB2 LUW.
Вкратце, это возможнось работы с массивами данных в SQL, например экономится время на фетчах для селектов. Можно вставить массив в таблицу ОДНОЙ операцией.
Код: plaintext
1.
2.
--
Антон
Per rectum ad astrum
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33595212
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оригинальная DB2 появилась на мэйнфреймах, а вот что появилось раньше - AS/400 или DB2 на OS/2, я не в курсе (и, честно говоря, заниматься исследованиями не хочется). Когда я получил сидюк от знакомого, в его конторе AS/400 уже стояла, поэтому условно обозначил DB2/400 как DB3 и DB2 Common Server (превратившийся в DB2 for LUW) как DB4 ;-).

Что касается bulk operations, то, во-первых, в SQL PL у DB4 ( ;- ) ) нет массивов. Во-вторых, я помню "их" утверждение, что цикл FOR на DB4 оптимизируется целиком, как единое выражение, а не процедурный цикл. В-третьих, здесь я ещё не говорил, но вообще я против хранимых процедур на DB4; считаю, что её SQL достаточно богат, чтобы во многих случаях обходиться вообще без процедурного языка. За 10 лет я написал всего около десятка SP. Теперь возможности SQL ещё усилились, благодаря SELECT FROM UPDATE/INSERT/DELETE.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33595289
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про FOR я пока нашёл бумагу здесь: http://www.cs.ubc.ca/local/reading/proceedings/cascon96/pdf/fuh.pdf
но я читал про это не здесь, а из какого-то источника типа developerworks, т.е. это должно быть уже реализовано в DB2 for LUW.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33598034
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaПро FOR я пока нашёл бумагу здесь: http://www.cs.ubc.ca/local/reading/proceedings/cascon96/pdf/fuh.pdf
Нет, это не то, это какая-то научая работа середины 90-х в которой предлагалось реализовать компиляция процедурного кода в план исполнения SQL кода.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33598036
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Metelitsa... но вообще я против хранимых процедур на DB4; считаю, что её SQL достаточно богат, чтобы во многих случаях обходиться вообще без процедурного языка. За 10 лет я написал всего около десятка SP. Теперь возможности SQL ещё усилились, благодаря SELECT FROM UPDATE/INSERT/DELETE.
Видать задачи перед нами разные стояли.
К примеру, я на PL/SQL генерирую другие хранимые процедуры (на PL/SQL же), которые и выполняют действия указанные пользователем при определении workflow (уж и не знаю, как это слово по-русски). Эти процедуры пишут в плоские файлы помимо всего прочего. На "чистом" SQL это ну никак не реализовать.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33598038
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но ведь я сказал, что имел в виду не эту бумагу. Я видел нечто похожее либо в статье на developerworks, либо в DB2 magazine, либо в одной из IBM-овских PDF-ок про Stinger, описанное как уже реализованное. Но не могу пока найти.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33598041
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaНо ведь я сказал, что имел в виду не эту бумагу. Я видел нечто похожее либо в статье на developerworks, либо в DB2 magazine, либо в одной из IBM-овских PDF-ок про Stinger, описанное как уже реализованное. Но не могу пока найти.
Понятно, я думаю, что основную идею я уловил.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33598486
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
здесь опять замечательно проявляются особенности стратегии IBM о Oracle
- Oracle все в одном, все задачи мы решим внутрях базы
- IBM дает набор специализированных инструментов для решения задач, где база тоже всего лишь инструмент. И для организации и работы с workflow есть несколько специализированных продуктов, которые само собой используют и базу.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33599994
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov Victor MetelitsaНо ведь я сказал, что имел в виду не эту бумагу. Я видел нечто похожее либо в статье на developerworks, либо в DB2 magazine, либо в одной из IBM-овских PDF-ок про Stinger, описанное как уже реализованное. Но не могу пока найти.
Понятно, я думаю, что основную идею я уловил.

Найти пока не удаётся, хотя полагаю, что мне это не приснилось. Надо, наверное, подойти к вопросу по-другому: посмотреть планы и сравнить фактическую производительность.

Не вижу необходимости, удобства и пользы в формировании файлов в SP. Скажем, ночную рассылку чего-либо отлично осуществит REXX-скрипт, пускаемый по расписанию.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33600706
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо ggv что точно подметил разницу в стратегиях. У оракла действительно всё-в-одном. В том числе и планировщик заданий (точнее их уже два в 10g). Пока работает база - работает планировщик. ИМХО надёжнее.

Я думаю, что немалую долю сыграл тот факт, что у IBM уже были свои языки программирования и до недавнего времени они не видели необходимости создавать ещё один. Опять же, мы должны были покупать эти компиляторы за дополнительные деньги. А у орала всё шло в базой в комлекте. И средства разработки на PL/SQL и куча расширений (стандартных пакетов) и средства администрирования (Enterprise Manager 10g со средствами анализа проблем и ср-вами их прогнозирования).
ggv- IBM дает набор специализированных инструментов для решения задач, где база тоже всего лишь инструмент. И для организации и работы с workflow есть несколько специализированных продуктов, которые само собой используют и базу.
У меня продукт, специально "заточенный" для наших нужд. "Универсальные" решения мы пробовали - медленно, хотя и работает.
На самом деле у нас два продукта - один мой под Оракл (с глубокой оптимизацией), другой написан на Коболе для решений от IBM. Он ведет свою история ещё с IBM System/36
Код: plaintext
1.
2.
--
Антон
Per rectum ad astrum
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33600896
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ну универсальные решения ... всегда проигрывают специалищированным в чем то.
У меня на предыдущей работе тоже было решение исключительно на продуктах IBM и opensource.
Так когда компания продалась, то переделывали систему под оракл ровно 12 месяцев нехилый штат спецов, причем вышло с потерей качества (мы ее быстрее сделали вдвое меньшим составом)
Есть и другие reference, довольно старые, тоже не из российского бизнеса, когда компания мигрирует систему с IBM (mainfarame) на оракл solaris, и вместо 6 как-то так получается 18 админов, и много других "непоняток", и затрат, и обратная миграция как результат. Это было во времена большой популярности unix.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33600931
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению, далеко не всегда технические решения принимаются компетентными людьми. Да и новый штат программистов у вас тогда небось набирали с улицы во время пика интернет бума. У нас до сих пор такие "спецы" работают, хоть их и увольняют периодически. Страшное зрелище их код.
Код: plaintext
1.
2.
--
Антон
Per rectum ad astrum
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33601642
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Да нет, просто нашу компанию купила другая, более крупная, но стратегически ориентированная на оракла.
Никто не нанимал дополнительных разработчиков.
Просто приняли стратегическое решение - уйти от софта IBM, работать на софте Oracle и Cisco. Если бы согласились на разумный компромис, и заменили только базу - проблем бы столько небыло.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33601698
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggv
У меня на предыдущей работе тоже было решение исключительно на продуктах IBM и opensource.
Так когда компания продалась, то переделывали систему под оракл ровно 12 месяцев нехилый штат спецов, причем вышло с потерей качества (мы ее быстрее сделали вдвое меньшим составом)

да таких историй навалом, правда я восновном обратные слышал, когда ораклоиды пытались в свои системы подержку блокировочников добавить. обычно было проще нахрен все выкинуть и пепроэктировать заново, у вас ребята небойсь первые 6 месяцов охеревали зачем так извращатся, чтоб получить консистентный отчет и искали подвох.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33601793
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Yo - нет, уважаемый, пальцем в ж.
С отчетами проблем никаких небыло. Да и не может. быть
Вы пукнули?
Надеюсь, конструктивно.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33601988
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Год назад, когда я работал еще с Sybase (Ак как известно Sybase и MSSQL - типа родственники), так вот там существовало такое понятие как "расщепление хранимой процедуры". Что это такое поясняю на пальцах. Кода ХП вызывается то ей указываются параметры. Чтобы построить эффективный план запроса оптимизатор должен знать параменты каждого запроса в ХП. А хранимка как известно состоит изк кучи запросов. Поэтому оптимизатор "расщепляет" ХП на запросы чтобы сформировать для каждого правильны план исзодя из данных параметров. Но, насколько я знаю те, кто пишет на T-SQL, частенько в ХП используют запросы которые используют временные таблицы созданные внутри процедуры, а также вычисляют параметры других запросов также динамически. Т.е. получается что в процесса построения плана запроса для ХП (до начала ее выполнения) оптимизатор не может правильно оценить мощность временной табицы, и значения динамических параметров запроса. Следовательно он не может построить эффективный план. (Я предкасно помню что на T-SQL некоторые ХП - это несколько страниц кода - увы это подавляющий стиль работы на T-SQL). Т.е. по идее чтобы написать хороший код на T-SQL следует делать 1 запрос на 1 ХП. Поэтому существуют системы в которых тысячи и десятки тысяч ХП. Честно говоря мне подобный стиль работы напоминает мусорную свалку. Назначение многих ХП просто забывается. А отказаться от использования ХП - это вообще очень-очень плохо - проверка синтаксива и компиляция во внутренний код всякий раз - это требует ресурсов.

Если посмотреть под такм же углом на DB2 - то после того как ХП откомпилирована - у нее уже есть план запроса. т.е. по сравнению с MSSQL где вы не увидите плана до тех пор пока не запустите процедуру в DB2 плпн уже есть - до выполнения. И он всегда один и тот же. (можно кстати, причем легко сделать так, чтобы менялся как и в MS, но я не сильно горю желанием использовать такую возможность). Т.е. добившись однажды нужного плана - вы можете отдыхать. Работа - сделана. А если кто-то будет утверждать, что в MS SQL можно добиться стабильности плана выполнения хинтами - то не верьте. Рано или поздно все равно нарветесь на проблемы.

Хух... устал писАть...
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33602046
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2gardenman

что то вы все перемешали. конечно зуб не дам вдруг у db2 как-то по другому, но сильно сумневаюсь. у хп понятия плана нет в принципе, там нечего планаировать, там байт код который исполняет процессор, понятие плана есть у SQL запросов и действительно у временных таблиц например в оракле нет статистики на которую бы мог оперется оптимизатор, это может привести к тому, что cost based оптимизатор без статистики приймет неверное решение. на сколько мне известно в db2 тоже cost based optimizer который принимает решения во время исполнения на основе собраной статистики, а не плана который был актуальным в начале века.
другое дело что у оракла и наверника у db2 есть механизмы закрепления плана, которые помогут в ситуации с временной таблицой, но это чуть другая история.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33602100
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Yo!!
Дело ведь не только во временных таблицах, но и в динамически формируемых параметрах запросов. Типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
create procedure p1() 
begin
   declare @c1 int;
   select od into c1 from ...
   select ... from where var=@c1
   ...
end

вот в этом примере параметр @c1 - динамически вычисляемый, и следовательно план будет построен неоптимально.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33602134
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2gardenman

в данном примере будет только оптимальный план (что бы там нибыло - поиск по индексу). но соглашусь что можно придумать пример где плану нужно знать каким будет @c1, но не понимаю причем тут хп, а если такой запрос прийдет напрямую от клиента то что изменится, а главное не понимаю, что db2 изобрела что-то фундоментально новое ?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33603742
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!!...
понятие плана есть у SQL запросов и действительно у временных таблиц например в оракле нет статистики на которую бы мог оперется оптимизатор, это может привести к тому, что cost based оптимизатор без статистики приймет неверное решение. на сколько мне известно в db2 тоже cost based optimizer который принимает решения во время исполнения на основе собраной статистики, а не плана который был актуальным в начале века.
другое дело что у оракла и наверника у db2 есть механизмы закрепления плана, которые помогут в ситуации с временной таблицой, но это чуть другая история.
Читаем документацию про bind peeking (гугл поможет). И у Оракла и у DB2 эта фича есть. Первый смотрит в значение bind variable только первый раз, вторая - постоянно и перестраивает план запроса, если надо (верно для AS/400 5R3). Есть способы запретить это делать, но не рекомендуется.

Далее, для временных таблиц Оракла можно и иногда нужно указывать статистику. Либо хинтом (cardinality) в лоб, либо используя sampling.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33603755
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov
Читаем документацию про bind peeking (гугл поможет). И у Оракла и у DB2 эта фича есть. Первый смотрит в значение bind variable только первый раз, вторая - постоянно и перестраивает план запроса, если надо (верно для AS/400 5R3). Есть способы запретить это делать, но не рекомендуется.

Далее, для временных таблиц Оракла можно и иногда нужно указывать статистику. Либо хинтом (cardinality) в лоб, либо используя sampling.

в оракле bind peeking имхо просто смотрит на переменую и подсовывает статистику оптимизатору, чтоб тому было чуток легче. gardenman же нам тут про какие-то планы ХП рассказывает, которые строятся во время компиляции (!?) ХП.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33603773
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно он говорит. Во время компиляции ХП в ДБ2 строятся планы исполнения для всего SQL, что используется внутри. Другое дело, что в ДБ2 они потом почти не используются - перед исполнением оптимизатор перепроверяет валидность плана. То есть ты мог скомпилировать хранимку на пустой девелоперской базе, перенести скомпилированный модуль в продакшн и потом удивлятся, что планы уже другие (как и должно быть).
У Оракла давно (в 7-й версии?) при компиляции PL/SQL кода план исполнения SQL фиксировался. Сейчас уже нет. Если ХП у Оракла внешняя - то там SQL априори динамический.
Код: plaintext
1.
2.
--
Антон
Per rectum ad astrum
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33604132
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Anton
Планы в DB2 строятся в момент связывания (операция BIND) в конкретной БД. И остаются постоянными пока кто-нить не грохнет какую-нить зависимость - типа почикают индекс, ну и естественно пакет станет невалидным и следующий раз при вызове пакета будет произведена попытка пересвязать пакет заново. Ну и в зависимости от результата - либо построится новый план либо облом.
Но план построится - и будет постоянным. И наплевать ему меняется ли статистика или нет. Т.е. вызвав db2expln.exe и посмотрев план - вы точно знаете что в пакете именно тот план, который вы видите. А в других базах это далеко не так. Оракл не исключение. Совсем не факт если вы даже выдите что запрос сейчас исполняется так как вам надо когда вы его тестируете, то легко может наступить помент когда это будет неверно.
Выгоды на самом деле в статическом SQL просто огромны, особенно в случае OLTP.ИМХО. Нелепо всякий раз пересматривать план простейшего запроса из 2-3 джойнов.
Мое мнение таково - статический SQL - это полезная фича. И единственная СУБД у кого это действительно есть - это ДБ2.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33604218
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для того, чтобы каждый раз не пересматривать планы запросов, а держать в временном и постоянном кэше наиболее лучшие, но актуальные, существуют эвристические анализаторы запросов, которые работают в паре с оптимизаторами запросов и как раз отвечают за то, чтобы находить и хранить наиболее лучшие планы запросов, постоянно отслеживая, что эти планы запросов остаются наиболее эффективными на текущий момент времени. Это гораздо лучше всякого статического SQL, потому что к примеру, после массовой вставки в БД миллионов записей эвристический анализатор тут же заставит оптимизатор заново составить планы запросов и снова отобрав лучшие далее уже будет продолжать работу по ним.

IMHO не бывает чистых OLTP задач - у меня в клиентских приложениях пользователь мышкой может такое условие поиска или фильтра информации составить, что при выполнении запроса через динамический SQL в нем будет ого го сотен строк (вплоть до обхвата всех таблиц БД) и чем тут статический SQL помочь может даже не представляю. Ну а для серии мелких запросов OLTP я уже говорил выше про эвристический анализатор - то же подобие статического SQL, тока автоматически контролирующегося и перестраивающегося самим сервером без какого либо вмешательства извне, в т.ч. без изменения мета-структуры, а при большом изменении к примеру статистики или резкому проседанию выполнению запросов, что вполне возможно из-за тех жеизменения доступных ресурсов сервера, что тоже кстати приведет к перестроению планов запросов (те же HASH JOIN при отсутствии нужных ресурсов придется уводить на INDEX JOIN или TABLE SCAN, то есть вообще план запросов будет другой).
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33604228
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
опять же, static sql (наряду с синтаксисом sql, позволяющим в одном запросе сделать то, что в других базах делается рядом запросов) одна из причин низкого использования SP в db2
пакет db2, появившийся на заре rdbms, как раз и есть "прообраз" SP.
То есть он позволяет достичь почти всех преимуществ SP, кроме снижения сетевого траффика.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33604235
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
этот "эвристический анализатор" называется у IBM - LEO Learning Optimizer.
Почитайте, интересная вещь.
Создается полным ходом.
Но статический SQL никуда не денется - если у вас под него нет задач, то у других они есть. И OLTP задача никуда не денется - пусть даже и как часть системы.
Тысячи типовых транзакций в секунду проводить все равно надо будет всегда, безо всяких массовых обновлений данных. Вот под эти задачи и создавался static SQL, под них же он и продолжает использоваться.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33604282
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ууу как все запущено. это ж прошлый век, основное преимущество cost based оптимизатора, то что он способен реагировать на изменения в бд. наполнение таблиц происходит неравномерно, селективность индексов со временем меняется, как заметил Anton даже значения bind переменных могут влиять на план, любой современный оптимизатор всегда это учитывает. а у db2 получается что-то типа оракла 80x c rule based оптимизатором, хотя я уже практически уверен что gardenman тут, что-то путает.

авторВыгоды на самом деле в статическом SQL просто огромны, особенно в случае OLTP.ИМХО. Нелепо всякий раз пересматривать план простейшего запроса из 2-3 джойнов.
современные субд так делали в 80х, теперь никто так не делает, особенно в OLPT где база меняется стремительно. а парсить и пересматривать план каждый раз необязательно, план естесвенно кешируется в любой современной субд.

да и еще раз вопрос, какое отношение имеет ХП к этой байте, допустим в ХП передается тот параметер @c1, с каким планом скомпилится ХП если на каждое значение @c1 нужен свой план ?
о чем это gardenman ?
gardenman Т.е. по идее чтобы написать хороший код на T-SQL следует делать 1 запрос на 1 ХП. Поэтому существуют системы в которых тысячи и десятки тысяч ХП. Честно говоря мне подобный стиль работы напоминает мусорную свалку.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33604731
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Yo!!
содержание таблиц, из мошность, отношение мощностей таблиц учавствующих в запросе действительно меняется постепенно. Но план запроса постепенно меняться не может. Он всегда ведь пересматривается полностью. Интересна ситуация когда запрос SELCT * FROM ... WHERE A1 LIKE="А%" в одном случае будет сканировать по диапазону индекса, а в друго выберет сканирование таблицы. Юзер надеется что в выборке все будет упорядочено по алфавиту. А результат в зависимости от параметра - разный то по алфавиту то вперемешку.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33604745
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надежда юзера может быть оправдана ТОЛЬКО при помощи order by
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33604777
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman о план запроса постепенно меняться не может. Он всегда ведь пересматривается полностью.
где ? в оракле ?? не говорите чепухи. даже в db2 динамик sql из кеша берет план.

gardenmanЮзер надеется что в выборке все будет упорядочено по алфавиту.

с каждым постом вы меня удивляете все сильней, вы вообще вкурсе что SQL это декларативный язык ?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33605500
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Надежда юзера может быть оправдана ТОЛЬКО при помощи order by

Это ток у вашего MSSQL такая последняя единственная надежда. А у меня есть надежда еще и на Static SQL. И еще ни разу не подводила.
Если вдруг для этого ORDER BY ваш сервак сначала просканирует, отсортирует и отфильтрует всю таблицу - юзеры будут сильно недовольны производительностью. А у меня таких систуаций ВООБЩЕ не наблюдается.

Кстати тот же select max(id) from .. может выполняться по-разному. По тем же причинам. И я предпочитаю иметь в этих случаях стабильный план запроса и не полагаться на волю случая. Да что говорить - чем больше соединений в запросе, тем больше вариантов планов доступа. А собирать статистику, чтобы оптимизатор ее правильно интерпретировал - это большое искусство. Поэтому я предпочитаю знать что у меня в сервере происходит. DB2 дает мне эту возможность а другие СУБД - нет.

несмотря на то что SQL декларативный язык - нам далеко не безразлично каким способом данные вытаскиваются.

Вообще все так навалились на static sql - дескать нафиг он не нужен. будьте в конце концов честными - в MSSQL и Oracle хинтов гораздо больше чем в DB2. И все только для того, чтоб стабилизировать план запроса, чтобы знать что происходит в машине. Откажитесь от хинтов - и потом доказывайте что я не прав.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33605873
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не последняя , а единственная :)
остальное хак, хотя-бы потому как непереносимо
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33605903
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Не последняя , а единственная :)
остальное хак, хотя-бы потому как непереносимо
Имхо, проблема с order by появилась из-за merry-go-round scan, это оптимизация производительности скана таблицы несколькими процессами, так что первопричина здесь как раз повышение производительности :)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33605907
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman

Кстати тот же select max(id) from .. может выполняться по-разному. По тем же причинам. И я предпочитаю иметь в этих случаях стабильный план запроса и не полагаться на волю случая.

чем дальше в лес тем гуще партизаны ... теперь у нас план влияет на физическое расположение записей :)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33606306
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
дык эта, речь вроде о том, что у db2 есть и static sql, и dynamic sql
То есть есть выбор в данном случае.
А крик стоит - нам выбар не надааа!!!!!!!!!
Не нет, так нет, никто же вас не заставляет имплементить static sql.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33606371
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvдык эта, речь вроде о том, что у db2 есть и static sql, и dynamic sql
То есть есть выбор в данном случае.
А крик стоит - нам выбар не надааа!!!!!!!!!
Не нет, так нет, никто же вас не заставляет имплементить static sql.

такой выбор и в оракле есть, точнее был, выкинули такой выбор нафиг за ненадобностью. еще в девятке можно было включить rule optimizer который план не менял, но с появлением cost based всем стало ясно какой это sux. дальше любой нормальный ораклоид знает, что новичков нада бить за необоснованые хинты, бить и тыкать носом в документацию, там доходчего расписано в каких случаях следует использовать хинты и к каким последствиям это приводит (хинт нужен только если оптимизатор не справляется со своей задачей, чем выше версия оракла тем меньше ситуаций когда оптимизатор лажается).
если оптимизатор db2 лажается и не в кассу меняет оптимальные планы на неоптимальные это баг оптимизатора/собирателя статистики, а не фича static sql.

так всетаки вопрос: есть запрос оптимальный план которого зависит от @c1, какой план скомпилирует static sql не зная какие значения будут в реальных запросах ? первый попавшийся ? это фича ?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33606435
Dooma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!!такой выбор и в оракле есть, точнее был, выкинули такой выбор нафиг за ненадобностью. еще в девятке можно было включить rule optimizer который план не менял, но с появлением cost based всем стало ясно какой это sux. дальше любой нормальный ораклоид знает, что новичков нада бить за необоснованые хинты, бить и тыкать носом в документацию, там доходчего расписано в каких случаях следует использовать хинты и к каким последствиям это приводит (хинт нужен только если оптимизатор не справляется со своей задачей, чем выше версия оракла тем меньше ситуаций когда оптимизатор лажается)Ну надо же...,
помнится в старых спорах вы гнули пальцы, и говорили как круто, что в Оракле хинтов больше, чем в MSSQL. На что вам отвечали, что в MSSQL и без хинтов лучше с планом справляется.
Или я ошибаюсь?
Или это были не вы?
Сейчас пороюсь в старых спорах...
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33606663
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Yo - ты как всегда великолепен в бредовом угаре.
смешались в кучу "rule optimizer", static sql, все это объявляется сосущим, и ни к чему негодным.
Ну тебе не надо - не используй.
Ну убогий твой оракл, всего ничего как на cost based optimizer перешел, совсем новая разработка, не отлаженная :)
Так тебя больше устраивает?
Ты же по-флеймить, а не узнать.
Дафай, толкай про консистентные отчеты, про эскалацию, бухти :)
Да, static sql не забудь записать как страшный баг у IBM :)
Я далек от мысли советовать тебе самому попробовать, знаю, все равно не попробуешь. Так шта дафай мы дружно заткнемся обсирать то, в чем некомпетентны, а?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33606675
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то у ggv сегодня весеннее обострение
:о))

Код: plaintext
1.
2.
--
Антон
Per rectum ad astrum
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33606827
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я понимаю, изначально в DB2 был Embedded SQL, а CLI (сильно смахивающий на ODBC; практически то же самое, но с дополнениями) появился позже (про JDBC и SQLJ я молчу).

Embedded SQL был и есть статический и динамический.
CLI всегда был динамический, а теперь его можно "превратить" в статический (причём программа и знать не будет). Утилита db2cap "Binds a capture file to generate one or more static packages. A capture file is generated during a static profiling session of a CLI/ODBC/JDBC application, and contains SQL statements that were captured during the application run. This utility processes the capture file so that it can be used by the CLI/ODBC/JDBC driver to execute static SQL for the application." Никогда не пользовался.

Теперь забудем про CLI и будем пользоваться только языком C как для прикладных программ, так и для хранимых процедур. (IBM утверждала, что это большое удобство, что вам не надо знать два процедурных языка. Вы можете делать SP на C, Cobol, Fortran, Java... В этом списке был REXX, но, увы, теперь SP на REXX не поддерживаются, а ведь, по моему нескромному мнению, в удобствах (хотя не в производительности) REXX давал SQL PL сто очков вперёд).

Каждая прикладная программа или набор хранимых процедур состоят из нескольких файлов с расширением SQC. В каждом файле SQC имеются выражения, начинающиеся с EXEC SQL.

Динамический пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
  
  strcpy(print, "SELECT * FROM building");
  EXEC SQL PREPARE printBuilding FROM :print;
  EXEC SQL DECLARE bldCursor CURSOR FOR printBuilding; 
  EXEC SQL OPEN bldCursor; 
  EXEC SQL FETCH bldCursor INTO :id, :address, :city, :floors, :employees;

Статический пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
  EXEC SQL DECLARE c1 CURSOR FOR
    SELECT colname, typename, length, scale
      FROM syscat.columns
      WHERE tabschema = :schemaName AND tabname = :tableName;
  EXEC SQL OPEN c1;
  EXEC SQL FETCH c1 INTO :columnName, :dataType, :dataLength, :dataScale;

Далее, препроцессор для каждого SQC-файла генерируется два файла:
* один с расширением C
* второй с расширением BND

В BND-файлах лежит информация из EXEC SQL. Вы видите из примера выше, что известно выражение выборки в "статическом" примере, но неизвестно в "динамическом" - оно определяется в runtime. Эти файлы "привязывают" (биндят) к базе. В базе образуются пакеты. С пакетами связаны планы статических SQL, они тоже хранятся в базе. Первоначально, чтобы сменить эти планы (например, после большого изменения статистики), необходимо было пометить пакеты, как invalid. Планы возникали при привязке либо первом обращении к инвалидному пакету; значениями параметров DB2 не интересовалась.

Параметр BIND'а REOPT появился относительно недавно (вроде бы даже только в v8):
REOPT Specifies whether to have DB2 determine an access path at run time using values for host variables, parameter markers, and special registers. Valid values are:
* NONE The access path for a given SQL statement containing host variables, parameter markers, or special registers will not be optimized using real values. The default estimates for the these BIND variables is used, and the plan is cached and will be used subsequently. This is the default value.
* ONCE The access path for a given SQL statement will be optimized using the real values of the host variables, parameter markers, or special registers when the query is first executed. This plan is cached and used subsequently.
* ALWAYS The access path for a given SQL statement will always be compiled and reoptimized using the values of the host variables, parameter markers, or special registers that are known each time the query is executed.

Файл C дальше компилируется C-компилятором, объектные файлы линкуются. Получается executable или shared library/DLL, в зависимости от того, какого типа приложение. Пользователям это приложение поставляется со всеми сгенерированными BND-файлами.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33606833
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman
Кстати тот же select max(id) from .. может выполняться по-разному. По тем же причинам. И я предпочитаю иметь в этих случаях стабильный план запроса и не полагаться на волю случая. Да что говорить - чем больше соединений в запросе, тем больше вариантов планов доступа. А собирать статистику, чтобы оптимизатор ее правильно интерпретировал - это большое искусство. Поэтому я предпочитаю знать что у меня в сервере происходит. DB2 дает мне эту возможность а другие СУБД - нет.
По-моему, это совершенно неправильно. Начну с того, Oracle действительно даёт возможность более-менее стабилизировать план при помощи хинтов и Stored Outlines. Тогда как если вы добьетесь в DB2 пусть стабильного благодаря static, но плохого плана, что вы будете делать - неужто статистикой играть?

Статистика не предназначена для того, чтобы её играли, и собирать её не должно быть искусством. Она просто должна быть полностью собранной и актуальной, а задача оптимизатора - сгенерировать оптимальный план для неё.

Я помню высказывания типа "Если Oracle генерирует плохой план, используйте хинты. Если DB2 генерирует плохой план, обращайтесь в support IBM насчёт обнаружения ошибки в оптимизаторе".

Действительность несколько хуже, почему я с восторгом услышал про LEO. Но в принципе я обычно придерживаюсь примерно такого подхода: не моя забота рыться в планах.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33607196
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДействительность несколько хуже, почему я с восторгом услышал про LEO. Но в принципе я обычно придерживаюсь примерно такого подхода: не моя забота рыться в планах.

Виктор, я ведь тебе уже говорил, что "желательный" план доступа закладывается уже на этапе проектирования базы данных. Конечно если проектировать так: накидаю-ка я табличек, понасабираю статистики, понаделаю запросов с десятком джойнов - все равно оптимайзер за меня всю работу сделает. Результат такого подхода - большая круглая ж...
Я ведь прекрасно знаю, что если где-то нужно быстро получать агрегаты - то это значит вы будете смотреть в сторону MQT. Если вы подразумеваете использование MQT - следовательно вы уже примерно знаете каким должен быть запрос и сколько времени он будет отрабатывать, а также каков тип MQT как он повлияет на вставку/удаление/изменение.

Короче говоря будьте честнее. Не наделяйте оптимизатор СУБД свойствами ИИ.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33607239
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Victor Metelitsa

а что будет если у db2 удалить индекс, он пометит все пакеты с планами как инвалидные (те планы которые использовали индекс) или запросы с такими планами будут вываливатся с ошибкой ?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33607308
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я уже писал об этом - смотри выше.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33609030
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanВиктор, я ведь тебе уже говорил, что "желательный" план доступа закладывается уже на этапе проектирования базы данных. Конечно если проектировать так: накидаю-ка я табличек, понасабираю статистики, понаделаю запросов с десятком джойнов - все равно оптимайзер за меня всю работу сделает. Результат такого подхода - большая круглая ж...Вы идеалист, я смотрю. Впрочем, возможно, что так уж получилось, что ваши программы писались под статический круг задач. У меня сплошь и рядом примеры, когда клиенты приспосабливают мои программы для решения еще и своих задач, которые не предусматривались в оригинальной спецификации.

Вот пример: в банке таблица аккаунтов, у каждого аккаунта есть код продукта (кредитная карта, автомоб. заём, магазинный кредит и пр.) Ты проектируешь и залаживаешь индексный доступ по коду продукта (там, где надо выбрать только один продукт). Предполагаешь (а что тебе еще остаётся делать?), что распределение примерно одинаковое. А что в реальной жизни? Коньюктура рынка меняется, происходит перекос то в сторону одного продукта, то в сторону другого. В какой-то момент индексный доступ становится невыгодным для одного из продуктов - его много стало и кол-во i/o (index range scan + table probe) больше, чем при (full table scan). А что у тебя в программе творится со статическим планом, заложенным при проектировании - планомерное ухудшение производительности.

Извини, что всё так разжевал, но я хотел, что бы ты меня точно понял. Твоя неприязнь оптимизатора может объяснятся золотым наблюдением Виктора Victor MetelitsaЯ помню высказывания типа "Если Oracle генерирует плохой план, используйте хинты. Если DB2 генерирует плохой план, обращайтесь в support IBM насчёт обнаружения ошибки в оптимизаторе". То бишь понадеешься на него, а потом в один прекрасный момент он тебя как обломит, и звони потом в суппорт, жалуйся на судьбу свою несчасную :-[
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33609137
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
То бишь понадеешься на него, а потом в один прекрасный момент он тебя как обломит, и звони потом в суппорт, жалуйся на судьбу свою несчасную :-[
Или юзай опцию REOPT во время BIND :-)))
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33609179
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman
Код: plaintext
1.
То бишь понадеешься на него, а потом в один прекрасный момент он тебя как 
обломит, и звони потом в суппорт, жалуйся на судьбу свою несчасную :-[
Или юзай опцию REOPT во время BIND :-)))
Ага, вижу, что немного изменил твоё отношение - значит день прожит не зря.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33728707
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman1) В DB2 многие вещи решаются всего лишь одним единственным запросом. В MSSQL вам придется писать для этого процедуру.


зы.. ничего личного

попробовал я как-то в ДБ2 в триггере узнать какое из блобных полей поменялось. Оказалось надо пять триггеров делать.

А в другой раз с таблицей в 34 блобных поля я понял айбэму есть куда еще расти
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33728767
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsik gardenman1) В DB2 многие вещи решаются всего лишь одним единственным запросом. В MSSQL вам придется писать для этого процедуру.


зы.. ничего личного

попробовал я как-то в ДБ2 в триггере узнать какое из блобных полей поменялось. Оказалось надо пять триггеров делать.

А в другой раз с таблицей в 34 блобных поля я понял айбэму есть куда еще расти
У все свои недостатки - вон у MSSQL2000 вообще с блобами никак работать нельзя - ни в триггерах, ни в хранимках ... только клиенту тупо отдать и взять и ничего же - SQL.RU крутится себе ;)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33729720
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSу MSSQL2000 вообще с блобами никак работать нельзя - ни в триггерах, ни в хранимкахВы не совсем правы. Нельзя объявлять переменные типа блобов - это да, но ничто не мешает работать с их содержимым, хранящимся в таблице. И, кстати, благодарить за такой подход надо Sybase. ASCRUSтолько клиенту тупо отдать и взять и ничего же - SQL.RU крутится себеСомневаюсь, что для хранения сообщений на SQL.RU используется блоб.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33730210
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA ASCRUSу MSSQL2000 вообще с блобами никак работать нельзя - ни в триггерах, ни в хранимкахВы не совсем правы. Нельзя объявлять переменные типа блобов - это да, но ничто не мешает работать с их содержимым, хранящимся в таблице. И, кстати, благодарить за такой подход надо Sybase. ASCRUSтолько клиенту тупо отдать и взять и ничего же - SQL.RU крутится себеСомневаюсь, что для хранения сообщений на SQL.RU используется блоб.
Так а как с ними внутри хранимки работать ? Максимум - выдрать только часть, которая по длине войдет в varchar. Sybase мы спасибо говорить не будем, он никакого отношения к Ваткому и ASA не имеет, кроме торговой марки, у нас поля и переменные до 2 гб обрабатываются аналогично другим типам, без каких либо ограничений ;) Ну а насчет хранения сообщений SQL.RU - а где же их еще хранить то, неужели в varchar(8000) ?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33730607
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSМаксимум - выдрать только часть, которая по длине войдет в varchar.Можно "выдрать", можно "тыдрать", бишь, заменить или удалить часть блоба или целиком. IMHO, это не совсем соответствует утверждению ASCRUSу MSSQL2000 вообще с блобами никак работать нельзя, не так ли ?
ASCRUSSybase мы спасибо говорить не будем, он никакого отношения к Ваткому и ASA не имеет, кроме торговой марки, у нас поля и переменные до 2 гб обрабатываются аналогично другим типам, без каких либо ограниченийМожете не говорить, но такой способ работы с блобами был унаследован от своего предка, коим был Sybase. Рад за Sybase, что он сделал шаг вперед раньше, чем MS SQL, который сделал то же самое только в версии 2005. Не считаю это большим достижением, так как РСУБД предназначены, IMHO, не для обработки текста или графики условно неограниченного размера.
ASCRUSНу а насчет хранения сообщений SQL.RU - а где же их еще хранить то, неужели в varchar(8000) ?Не имею ни малейшего понятия, Вы, как модератор, могли бы напрямую обратиться к judge с этим вопросом. Если форумы реализованы на MSSQL, то нет уверенности, что хранить все сообщения именно в блобе является оптимальным вариантом, не так уж много сообщений, размер которых превышает пресловутые 8000 символов. Впрочем, может быть и в блобе...
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33730765
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChAМожете не говорить, но такой способ работы с блобами был унаследован от своего предка, коим был Sybase. Рад за Sybase, что он сделал шаг вперед раньше, чем MS SQL, который сделал то же самое только в версии 2005. Не считаю это большим достижением, так как РСУБД предназначены, IMHO, не для обработки текста или графики условно неограниченного размера.
Рано радуетесь, что то я не припоминаю, чтобы в ASE хоть что то можно было сделать с блобом, хотя я конечно в родной СУБД от Sybase не специалист и не знаю, что они в 15-ой версии сделали. Ну а насчет обработки мне кажется Вы не правы - как только дело начинает касаться реализации логики в пределах БД, XML, вебсервисов и т.д. то очень даже нужно уметь работать с типами больших размеров на языке хранимых процедур. Ну а если еще и динамический SQL правильно реализован, без каких либо ограничений на права доступа и оптимизацию, то собрать и выполнить любой скрипт без ограничения размера (вернее с ограничением до 2 гб) прямо внутри ХП вообще иногда получается очень даже полезным.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33730877
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChAМожете не говорить, но такой способ работы с блобами был унаследован от своего предка, коим был Sybase.
Кстати в SQL 4.2 (и по-моему в 6.0, не 6.5) таблица inserted в триггере содержала поля text. Потом ребята из MS это убрали.
Так что не развивали они функционал, а наоборот :)
Формально то конечно функции для работы с блобами есть, но больно всё убого.
Да чего говорить если сами разработчики хранят тексты процедур не в одном поле-блобе, а в нескольких строках обычного varchar
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33730889
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSмне кажется Вы не правы - как только дело начинает касаться реализации логики в пределах БД, XML, вебсервисов и т.д. то очень даже нужно уметь работать с типами больших размеров на языке хранимых процедур. Правота - категория весьма субъективная, поэтому не смею настаивать, ранее было указно, что это IMHO. Мне кажется, что у СУБД есть свои задачи, в отличие от вебсервисов, парсинга, распознавания образов и прочая. Меня всегда настораживают системы, которые с равным успехом играют роли "и швец, и жнец и на дуде игрец".
Во-первых, вряд ли они делают все это равно хорошо, чем некий специализированный, "заточенный" под конкретную задачу, инструмент. Пусть лучше делают одно, но хорошо, а специалист, в случае необходимости, скомпонует из нескольких разных инструментов гармоничный ансамбль.
Во-вторых, если каждое приложение будет содержать в себе все мыслимые и немыслимые инструменты на все случаи жизни, то потребление ресурсов вычислительной системы вряд ли можно будет признать экономным. Повторюсь, не всегда мне нужны все возможности, предлагаемые данной системой, но повлиять на это уже не смогу, что называется - уплачено. И никто не может объяснить, а на кой, собственно, ляд, мне непременно нужен HTTP или FTP сервер в СУБД ?
ASCRUSНу а если еще и динамический SQL правильно реализован, без каких либо ограничений на права доступа и оптимизацию, то собрать и выполнить любой скрипт без ограничения размера (вернее с ограничением до 2 гб) прямо внутри ХП вообще иногда получается очень даже полезным.Динамический SQL в 2ГБ ? Вы меня, положительно, пугаете :) Мне, лично, даже 2 МБ, позволительных в MS SQL 2000, много. Необходимость динамической генерации скриптов такого размера наводит на мысли о вменямости разработчика. В конце концов, зачем это делать серверу, когда то же самое можно прекрасно сделать через клиента ? Впрочем, вопрос, скорее, риторический.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33730914
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperКстати в SQL 4.2 (и по-моему в 6.0, не 6.5) таблица inserted в триггере содержала поля text. Потом ребята из MS это убрали.
Так что не развивали они функционал, а наоборот :)Увы, уже не помню особенности этих раритетов. Но представь себе триггер, в котором надо обработать, например, сотню, строк, каждая из которых может содержать не один блоб размером хотя бы в гигабайт. Что при этом произойдет с производительностью, боюсь даже представить. А уж что с логом будет ? Так что, IMHO , правильно они сделали.
SergSuper
Формально то конечно функции для работы с блобами есть, но больно всё убого.С одной стороны - да, с другой - у СУБД свои задачи, у парсеров - свои. Опять же, IMHO...
SergSuperДа чего говорить если сами разработчики хранят тексты процедур не в одном поле-блобе, а в нескольких строках обычного varcharСобственно, не вижу особых проблем, подавляющее число процедур занимают наверняка меньше 8КБ. Так что возможно исходя из этого и был использован такой подход. Все таки это чуть более экономно. Опять же, нам-то какая разница, в каком виде они храняться ? Мы же не напрямую с ними работаем.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33731198
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChAПравота - категория весьма субъективная, поэтому не смею настаивать, ранее было указно, что это IMHO. Мне кажется, что у СУБД есть свои задачи, в отличие от вебсервисов, парсинга, распознавания образов и прочая. Меня всегда настораживают системы, которые с равным успехом играют роли "и швец, и жнец и на дуде игрец".
Во-первых, вряд ли они делают все это равно хорошо, чем некий специализированный, "заточенный" под конкретную задачу, инструмент. Пусть лучше делают одно, но хорошо, а специалист, в случае необходимости, скомпонует из нескольких разных инструментов гармоничный ансамбль.
На каждое правило есть исключение - в данном случае любой желающий может поставить себе ASA и убедиться что этот сервер исключение из правил.

ChAВо-вторых, если каждое приложение будет содержать в себе все мыслимые и немыслимые инструменты на все случаи жизни, то потребление ресурсов вычислительной системы вряд ли можно будет признать экономным. Повторюсь, не всегда мне нужны все возможности, предлагаемые данной системой, но повлиять на это уже не смогу, что называется - уплачено. И никто не может объяснить, а на кой, собственно, ляд, мне непременно нужен HTTP или FTP сервер в СУБД ?
Еще одно исключение - сервер потребляет минимальное кол-во ресурсов по сравнению с другими, естественно разумное в зависимости от поставленных задач, хотя у нас на форуме Sybase присутствует специалист, у которого в режиме многопользовательского доступа на ASA крутится БД в полтеррабайта на 4 пне с 512 RAM и человек не жалуется. Но это опять же пока не увидишь, не поверишь, как впрочем тут не верили, что полноценный РСУБД может занимать 10 мб на диске.

На кой ляд нужен веб-сервер - обьясняю:
1. размазывание логики между БД и клиентом (или третьим звеном) приводит к невозможности гарантировать целостность и правильность информации БД, если ее заполняют сторонние источники и логика БД не имеет возможности ее проверить.
2. вынос логики с БД на внешний слой приводит к усложнению логики работы, большему кол-ву кода и привлечению других программных средств в цепочку работы.
Практический пример - зачем мне писать на C#, Java, Delphi и прочем считывание курса Центорбанка с их сайта или каталог товаров интернет магазина в XML, если это решается парой строчек на языке хранимых процедур WatcomSQL и внутри БД я всегда могу получить курс в релтайме по мере необходимости с процедуры или события:
Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE PROCEDURE CB_Course (IN OnDate date)
  URL 'http://www.cbr.ru/scripts/XML_daily.asp'
  TYPE 'SOAP:RPC';

SELECT NumCode, Name, Value
FROM CB_Course (CURRENT DATE);

Зачем мне выносить веб-сервис возврата данных в виде XML для других веб приложений на всякие C#, Java, Delphi с подключением всяких IIS, J2EE и т.д., когда это в ASA решается с помошью пары строчек кода на языке хранимых процедур WatcomSQL:
Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE SERVICE catalog TYPE 'XML'
AUTHORIZATION ON
AS
  SELECT Id, Name, Price
  FROM DBA.Catalog
  WHERE ProductType = :ProductType;
Теперь в браузере наберем:
http://localhost/catalog?producttype=HDD
и получим список жестких дисков в каталоге в виде XML (а ведь можно усложнить запрос и написать достаточно сложный путь хранения информации на XML в виде вложений по производителям товаров, типам шины и т.д., опять же просто указав дополнительные аттрибуты в запросе возврата каталога).

Я не спорю, что все это можно организовать не на сервере, но извиняюсь - а на кой рожна это нужно, когда сервер сам умеет работать с веб-сервисами и XML и обслуживать запросы по 80-ому порту на HTTP и SOAP без лишнего кода, ПО и потребляемых ресурсов ?

ChA ASCRUSНу а если еще и динамический SQL правильно реализован, без каких либо ограничений на права доступа и оптимизацию, то собрать и выполнить любой скрипт без ограничения размера (вернее с ограничением до 2 гб) прямо внутри ХП вообще иногда получается очень даже полезным.Динамический SQL в 2ГБ ? Вы меня, положительно, пугаете :) Мне, лично, даже 2 МБ, позволительных в MS SQL 2000, много. Необходимость динамической генерации скриптов такого размера наводит на мысли о вменямости разработчика. В конце концов, зачем это делать серверу, когда то же самое можно прекрасно сделать через клиента ? Впрочем, вопрос, скорее, риторический.
Каждый пугается в меру своих знаний и опыта работы (помнится специалисты DB2 упорно утверждали, что ХП не нужны, когда есть возможность писать на Си, а Ораклисты до сих пор не понимают, зачем нужны временные таблицы). В бытность на 2-ом Фоксе в 90-ых я достаточно успешно использовал макросы и получал хорошие результаты, сейчас тоже самое в моих глазах неплохо показывает динамический SQL сервера ASA.

Так что на 2 гб я конечно не разу скрипты в динамическом SQL не запускал, но вот когда пользователь в фильтрах выбирает условия, обхватывающие всю БД и в хранимой процедуре на сервере по ним собирается и выполняется в динамическом SQL запрос на сотни строк, всегда приятно, что:
a) не выйдем за пределы ограничений символьного типа
б) динамический SQL будет работать под правами владельца вызвавшей его процедуры и нам не придется расставлять на все обьекты БД гранты для пользователей там, где достаточно одного гранта на процедуру
в) не будем боятся проседания производительности, где серверу до лампочки - выполнить препарированный запрос клиента или только что собранный и запущенный на динамическом SQL и оптимизатор в любом случае все перестроит и соберет правильно с оптимальной производительностью
г) засчет того, что в запросах можно использовать ХП, всегда сможем не только выполнить динамический SQL, но еще и тут же обработать его результаты в запросе:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE PROCEDURE D_SQL (
  IN @Script long varchar
)
BEGIN
  EXECUTE IMMEDIATE WITH RESULT SET ON @Script;
END;

SELECT *
FROM D_SQL('SELECT Id, Name FROM Table1')
WHERE Id BETWEEN  1  AND  100 ;

А вообще я лично много нашел применений динамическому SQL и интегрированному веб-серверу - удобно прямо БД в виде HTML возвращать помощь приложения, организовывать удаленную админку, интранет-сайты, сделал свою систему синхронизации удаленных БД клиентов, где БД ASA сами соединяются по вебу с хранилищем изменений в версиях, запускают на себя скрипты обновления и выгружают изменения по клиентской части ... в общем при наличии функциональных расширений, всегда их можно использовать, чем отрицать.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33731224
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ChA
ASCRUSSybase мы спасибо говорить не будем, он никакого отношения к Ваткому и ASA не имеет, кроме торговой марки, у нас поля и переменные до 2 гб обрабатываются аналогично другим типам, без каких либо ограниченийМожете не говорить, но такой способ работы с блобами был унаследован от своего предка, коим был Sybase. Рад за Sybase, что он сделал шаг вперед раньше, чем MS SQL, который сделал то же самое только в версии 2005. Не считаю это большим достижением, так как РСУБД предназначены, IMHO, не для обработки текста или графики условно неограниченного размера.

Это не сайбейз, это ваткому нужно сказать спасибо. Сайбейз его купила и это положило начало АСА. АСЕ, который предок МССКЛ-я, это совсем другая история, вполне возможно что в смысле БЛОБ-ов в скриптах он и сейчас там же где был 10 лет назад.


ChA ASCRUSмне кажется Вы не правы - как только дело начинает касаться реализации логики в пределах БД, XML, вебсервисов и т.д. то очень даже нужно уметь работать с типами больших размеров на языке хранимых процедур. Правота - категория весьма субъективная, поэтому не смею настаивать, ранее было указно, что это IMHO. Мне кажется, что у СУБД есть свои задачи, в отличие от вебсервисов, парсинга, распознавания образов и прочая. Меня всегда настораживают системы, которые с равным успехом играют роли "и швец, и жнец и на дуде игрец".
Во-первых, вряд ли они делают все это равно хорошо, чем некий специализированный, "заточенный" под конкретную задачу, инструмент. Пусть лучше делают одно, но хорошо, а специалист, в случае необходимости, скомпонует из нескольких разных инструментов гармоничный ансамбль.
Во-вторых, если каждое приложение будет содержать в себе все мыслимые и немыслимые инструменты на все случаи жизни, то потребление ресурсов вычислительной системы вряд ли можно будет признать экономным. Повторюсь, не всегда мне нужны все возможности, предлагаемые данной системой, но повлиять на это уже не смогу, что называется - уплачено. И никто не может объяснить, а на кой, собственно, ляд, мне непременно нужен HTTP или FTP сервер в СУБД ?
В согласен с Вами, мне это тоже не нравится, но в данном случае эти дополнительные возможности ИМХО реализовать ничего не стоило и это было сделано не в ущерб развитию основной функциональности. Так что пусть будет, никому не мешает. Кстати, хоть это немного не в тему, по-моему как раз Микрософт в основном и страдает впихиванием всего чего угодно в свои продукты.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33731242
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSНа каждое правило есть исключение - в данном случае любой желающий может поставить себе ASA и убедиться что этот сервер исключение из правил.Да, да, разумеется, ровно такие же утверждения слышу, т.е. вижу, у адептов Cache, Visual FoxPro. Думаю, если порыскать по этому форуму, исключительных по своим качествам СУБД можно будет найти еще парочку. Как-то уже отмечал, что в Вас пропадает талантливый маркетолог. Это не шутка. Хотя все чаще мне кажется, что не пропадает ;) ASCRUSНа кой ляд нужен веб-сервер - обьясняю:Вопрос был риторическим :) Отношу себя к стороникам компонентной модели, а не монолитной, посему здесь общий язык мы найдем, только если Вы согласитесь, что разные модели имеют равные права на существование. Если мне нужен только телефон, то зачем мне дешевый MP3-проигрыватель, убогие игрушки, дерьм...ээээ...плохая фотокамера и еще с десяток такого же уровня прибамбасов, которые нужны как собаке пятая нога ? Вопрос риторический, можно не отвечать ;)
ASCRUSЯ не спорю, что все это можно организовать не на сервере, но извиняюсь - а на кой рожна это нужно, когда сервер сам умеет работать с веб-сервисами и XML и обслуживать запросы по 80-ому порту на HTTP и SOAP без лишнего кода, ПО и потребляемых ресурсов ?Может поэтому ASA и не упоминается на tpc.org ? ASCRUSВ бытность на 2-ом Фоксе в 90-ых я достаточно успешно использовал макросы и получал хорошие результаты, сейчас тоже самое в моих глазах неплохо показывает динамический SQL сервера ASA.Макросы тоже до 2ГБ расширялись ? :) Извините, но не вижу практической необходимости в динамическом SQL, если проектированием БД занимался грамотный специалист. Максимум - процедуры генерация объектов БД по метаинформации. Но в этом случае не то что 2ГБ, даже 2MB слишком много. Производительность в многопользовательской среде процедур из тысяч строк у меня лично вызвала бы, как минимум, сомнения в компетентности программиста. Впрочем, это IMHO, наверняка есть масса людей, которые имеют другое мнение. ASCRUSТак что на 2 гб я конечно не разу скрипты в динамическом SQL не запускалНу, слава Богу :) А то меня постигло бы еще одно разочарование.
ASCRUSмного нашел применений динамическому SQL и интегрированному веб-серверу - удобно прямо БД в виде HTML возвращать помощь приложения, организовывать удаленную админку, интранет-сайты, сделал свою систему синхронизации удаленных БД клиентов, где БД ASA сами соединяются по вебу с хранилищем изменений в версиях, запускают на себя скрипты обновления и выгружают изменения по клиентской части ... в общем при наличии функциональных расширений, всегда их можно использовать, чем отрицать.Ну вот, к чему мы и пришли, динамический SQL понадобился из-за всей этой лабуды, которая не имеет прямого отношения к собственно СУБД. Прямо как в анекдоте: "А теперь, со всей этой фигней, мы попытаемся взлететь" :)
Вполне доверяю Вам и готов согласиться, что ASA - прекрасный продукт и есть ниша для его существования. В то же время только у Sybase целых 3 разных продукта в категории СУБД, значит есть веские основания считать, что ASA не лучший и не единственный всегда и везде ?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33731250
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c127Кстати, хоть это немного не в тему, по-моему как раз Микрософт в основном и страдает впихиванием всего чего угодно в свои продукты.Все этим страдают в той или иной степени, MS, естественно не отстает, положение обязывает. IMHO, вся беда в том, что миром стали править маркетологи. Только и мелькает "Новая версия поднимает <<Продукт>> на новую недосягаемую высоту, кроме плюшек, он теперь делает плошки. Но главное, он имеет уникальные возможности по скруджированию неваляшек...." Мать их... :)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33731377
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChAКак-то уже отмечал, что в Вас пропадает талантливый маркетолог. Это не шутка. Хотя все чаще мне кажется, что не пропадает ;)
Ну ... пока пропадает, раз деньги за это не получаю. Как начну получать, будем считать что не пропал

ChAВопрос был риторическим :) Отношу себя к стороникам компонентной модели, а не монолитной, посему здесь общий язык мы найдем, только если Вы согласитесь, что разные модели имеют равные права на существование. Если мне нужен только телефон, то зачем мне дешевый MP3-проигрыватель, убогие игрушки, дерьм...ээээ...плохая фотокамера и еще с десяток такого же уровня прибамбасов, которые нужны как собаке пятая нога ? Вопрос риторический, можно не отвечать ;)
Согласен - никому не нужен такой телефон. Однако работая сейчас на PC надо думать Вы не грушаетесь слушать музыку, смотреть видео, играть в игры, читать информацию в интернете и делать множество прочих вещей ? Как быть в данной ситуации - почему бы Вам не пользоваться отдельными, специально заточенными под эти задачи устройствами ? Отвечу сам - потому что на PC качественно и универсально, будучи тесно интегрированным между собой на уровне аппаратной и программной части. Тот же самый ответ можно отнести к ASA.

ChAИзвините, но не вижу практической необходимости в динамическом SQL, если проектированием БД занимался грамотный специалист. Максимум - процедуры генерация объектов БД по метаинформации.
Не только процедуры генерации шаблонных обьектов, но и процедуры сборки и выполнения скриптов по метаинформации не БД, а бизнес-логики. Полно задач, где поведение бизнес-логики является не только настраиваемым, но и зависящем от различных ситуаций. Все это можно собирать в клиенте ... а можно в БД на ХП, где тогда все лежит в одном месте и нет зависимости логики БД от клиентской части.

ChA ASCRUSмного нашел применений динамическому SQL и интегрированному веб-серверу - удобно прямо БД в виде HTML возвращать помощь приложения, организовывать удаленную админку, интранет-сайты, сделал свою систему синхронизации удаленных БД клиентов, где БД ASA сами соединяются по вебу с хранилищем изменений в версиях, запускают на себя скрипты обновления и выгружают изменения по клиентской части ... в общем при наличии функциональных расширений, всегда их можно использовать, чем отрицать.Ну вот, к чему мы и пришли, динамический SQL понадобился из-за всей этой лабуды, которая не имеет прямого отношения к собственно СУБД. Прямо как в анекдоте: "А теперь, со всей этой фигней, мы попытаемся взлететь" :)
А кто сказал, что в современном 21-ом веке "вся эта лабуда" не должна иметь отношения к СУБД ? Если использовать подход, что СУБД это тупое хранилище, умеющее только дать и взять данные от умной клиентской части или 3-его звена - то наверное да, эта лабуда не нужна. Если использовать подходы, предложенные в ASA, то наоборот - клиентская часть выступает в роли тупой консоли на показать, занести, сохранить, совершенно ничего не зная ни о настоящей структуре БД, ни о бизнес-логике и прочих вещах. Просто разные подходы, у каждого найдутся свои преимущества и недостатки и каждым пользуется достаточное кол-во специалистов, знающих о их преимуществах и недостатках, так что я здесь не оригинален.

ChAВполне доверяю Вам и готов согласиться, что ASA - прекрасный продукт и есть ниша для его существования. В то же время только у Sybase целых 3 разных продукта в категории СУБД, значит есть веские основания считать, что ASA не лучший и не единственный всегда и везде ?
Ну во первых у Sybase уже 4 СУБД - в прошлом году были куплены Extended Systems вместе с Advantage Server, причем куплено не самим Sybase, а именно дочерней конторой iAnywhere Solution (производитель ASA). Я правда не понимаю, как кол-во серверов может влиять на веские основания ? С моей точки зрения, подчеркиваю - для моих задач, с моими подходами в проектировании, требованиям к ресурсам, ценовой политике, безопасности и так далее - ASA пока лучший всегда и везде, что впрочем только доказывает что я нашел себе подходящий для задач сервер. Именно поэтому обсуждение серверов само по себе просто бессмысленно без обсуждения направлений решаемых задач, подходов к проектированию БД, реализации бизнес-логики и т.д. - это как обсуждать что лучше - молоток или ложка, не уточняя область обсуждаемого применения.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33731386
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA c127Кстати, хоть это немного не в тему, по-моему как раз Микрософт в основном и страдает впихиванием всего чего угодно в свои продукты.Все этим страдают в той или иной степени, MS, естественно не отстает, положение обязывает. IMHO, вся беда в том, что миром стали править маркетологи. Только и мелькает "Новая версия поднимает <<Продукт>> на новую недосягаемую высоту, кроме плюшек, он теперь делает плошки. Но главное, он имеет уникальные возможности по скруджированию неваляшек...." Мать их... :)
Гм, одна из причин моего перехода на ASA ... берем новые расширения 10-ой версии и сраниваем с листом затребованных расширений, предложенных пользователями ASA - один в один. Прямая работа с пользователями очень эффективна без прослойки маркетологов - никаких встраиваний C#, красивых, но бесполезных фенечек и т.д. - ровно столько, сколько хочется пользователям. Если сложно поверить, здесь краткий список расширений новой версии с ссылкой на полный. Я лично не увидел в этом списке каких либо красивых, но бесполезных маркетинговых феничек, все что перечислено было заявлено как требуемый функционал пользователями, где большой вклад в это дело кстати внесли ораклисты, работающие с ASA, прося в функциональность ввести версионность и материализованные представления (единственное с чем их обломали - это с пакетами из за того, что многим пользователям ASA удобно работать с владельцами и в пакетах они не видят практического применения) . Тоже самое я видел, к примеру читая нотацию на новую версию Informix - исправлены ошибки и недочеты, введена новая полезная для пользователей функциональность, улучшена производительность (сразу зауважал команду Informix). Однако как только мы берем 3 наших кита РСУБД: MSSQL, Oracle, DB2 - вот тут начинаются чудеса маркетинга - и C# интегрируется и XML нативно поддерживается и все само собой интегрируется, а спрашивается - в MSSQL 2005 появилась функция получения нового инкремента без физической вставки записи в таблицу, чтобы облегчить жизнь для построения Master-Detail в клиентских приложениях ? Странно, такая мелочь и не появилась. В свое время после выхода ASA 8.0 пользователи попросили и в 8.0.1 появилась ... мелочь, а приятно и жизнь как известно состоит из мелочей (желательно приятных).

P.S. Так что нечего тут рассуждать о маркетинговых завоеваниях, работая на попсовых (то бишь в правильном переводе популярных) продуктах
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33732623
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSИменно поэтому обсуждение серверов само по себе просто бессмысленно без обсуждения направлений решаемых задач, подходов к проектированию БД, реализации бизнес-логики и т.д. - это как обсуждать что лучше - молоток или ложка, не уточняя область обсуждаемого применения.Надеюсь Вы не ждете от меня опровержения ? :) Но ASA, разумеется, все равно лучше всех :) ASCRUSТак что нечего тут рассуждать о маркетинговых завоеваниях, работая на попсовых (то бишь в правильном переводе популярных) продуктахДык, небось тоже хотите, чтобы ASA стал таковым ;)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33732738
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS
Однако как только мы берем 3 наших кита РСУБД: MSSQL, Oracle, DB2 - вот тут начинаются чудеса маркетинга

Но ведь потом чудеса маркетинга когда-нибудь придут все же в ASA:


ASCRUS
все что перечислено было заявлено как требуемый функционал пользователями,

где большой вклад в это дело кстати внесли ораклисты , работающие с ASA, прося в функциональность ввести версионность и материализованные представления
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33733001
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA ASCRUSИменно поэтому обсуждение серверов само по себе просто бессмысленно без обсуждения направлений решаемых задач, подходов к проектированию БД, реализации бизнес-логики и т.д. - это как обсуждать что лучше - молоток или ложка, не уточняя область обсуждаемого применения.Надеюсь Вы не ждете от меня опровержения ? :) Но ASA, разумеется, все равно лучше всех :) ASCRUSТак что нечего тут рассуждать о маркетинговых завоеваниях, работая на попсовых (то бишь в правильном переводе популярных) продуктахДык, небось тоже хотите, чтобы ASA стал таковым ;)
Разговор ни о чем - если бы я хотел работать из за попсовости на каком либо РСУБД, то я бы так и продолжил работать на MSSQL или же перешел на Oracle. Раз выбрал и выучил ASA и уже 3 года сижу на этом сервере и радуюсь жизни, значит что то в этом надо думать есть ;)

P.S. Не очень понимаю связи маркетинга и Ораклиных снапшотов с матпредставлениями. Можете обьяснить, что имелось ввиду в последнем Вашем сообщении ?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33733007
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, забыл уточнить - вопрос в P.S. относился в vadiminfo.
--
www.rusug.ru - портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33733074
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS
Не очень понимаю связи маркетинга и Ораклиных снапшотов с матпредставлениями. Можете обьяснить, что имелось ввиду в последнем Вашем сообщении ?


Вот тут
ASCRUS
Прямая работа с пользователями очень эффективна без прослойки маркетологов - никаких встраиваний C#, красивых, но бесполезных фенечек и т.д

Заменяем C#, красивых, но бесполезных фенечек на "снапшоты с матпредставлениями". Термины "Красивых и бесполезных" ведь можно выбросить - эта оценка не совсем ведь очевидна, а фенечки на лицо.
Т.е. связь - была прослойска маркетинга снапшоты с матпредставлениями, но пришла в ASA. Так и может и C# прийти. Маркетологи вседа придавали значения "снапшотам с матпредставлениями" (термин матпредстваление - это замена старого термина снапшот, т.е. это одно и то же).
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33733101
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впервые слышу, что материлизованные представления и уровень изоляции снапшот это одно и тоже. Еще впервые слышу, что версионность и материализованные представления можно считать маркетинговыми фенечками Оракла, особенно версионность, которая изначально была той идей, из за которой создавался Оракл и явно реализовано все это было в нем раньше того времени, когда маркетологи заполучили возможность влиять на развитие ПО. Или мы просто о разном говорим ?
--
www.rusug.ru - портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33733136
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSВпервые слышу, что материлизованные представления и уровень изоляции снапшот это одно и тоже. Еще впервые слышу, что версионность и материализованные представления можно считать маркетинговыми фенечками Оракла, особенно версионность, которая изначально была той идей, из за которой создавался Оракл и явно реализовано все это было в нем раньше того времени, когда маркетологи заполучили возможность влиять на развитие ПО. Или мы просто о разном говорим ?

снапшот у оракла это снимок бд и к уровням изолировности не имеют отношения :)
на счет маркетологов вы зря их недооцениваете - продать несуществующую ось ibm явно не технические навыки помогли БГ, а ораклу выпустить в продакшен субд раньше выхода субд от разработчика прототипа systemR и обозвать версия 2.0 наверно тоже не техническое состояние субд помогла. :)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33733866
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS
Или мы просто о разном говорим ?

Да о разном. Я имел в виду термин оракла СНАПШОТ, который был тем, что сейчас назвается матпредставлением. Одноименное же название носила и репликация типа "Ведщий-Ведомый" (онп построена на мат представлениях). По, крайней мере, в 8 версии.
Вот пример синтаксиса для создания снапшота.

Код: plaintext
1.
2.
create SNAPSHOT &&SnapShotOwner..BRIGADE refresh fast with 
                   primary key as select * from &&MasterOwner..BRIGADE@&&MasterDB;

Теперь вместо SNAPSHOT в нем

Теперь они заменили SNAPSHOT на Materialized View, а репликация назыается Materialized View Replication. Но синтаксис с SNAPSHOT и в 9 работает.
Вы употребили рядом эти слова и связи с фичами Оракла, поэтому и подумал про это. Так как старое название еще из общения не ушло. (Версионность лучше так и называть)

Термин "фенечки" просто повторил за Вами. И маркетинговые тем более. Смысл был в том, что раз эти фичи взяли, то и другие (С# и проч) могут взять.
Почему они маркетинговые фенечки, а мат представления нет? Кто это может отличить? Тем более что те фичи маркетинг никада не забывал. Я их во многих сравнениях Оракла с другими СУБД видел.
Какой критерий у фичи быть маркетинговой фенечкой?
Вот Вы говорите впервые слышите, что мат представления маркетинговые. А где и кто говорил или объявлял, что C# и др. - маркетинговый?
Я вообще думаю, что чем больше фич, тем лучше. Мало ли что завтра понадобится.
А чтобы они не перегружали, некоторые продаются в виде опций (например, секционирование, ОЛАП) в виде опций, да и при создании БД не все может включаться - по выбору.
Так чем это плохо?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33734162
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASCRUSГм, одна из причин моего перехода на ASA ... берем новые расширения 10-ой версии и сраниваем с листом затребованных расширений, предложенных пользователями ASA - один в один. Прямая работа с пользователями очень эффективна без прослойки маркетологов - никаких встраиваний C#, красивых, но бесполезных фенечек и т.д. - ровно столько, сколько хочется пользователям.
Джава.

Но это единственное что я могу припомнить из откровенных глупостей. Хотя возможно пользователи сильно просили. Правда потом они же упорно не желали пользоваться.

Yo.!!на счет маркетологов вы зря их недооцениваете - продать несуществующую ось ibm явно не технические навыки помогли БГ, а ораклу выпустить в продакшен субд раньше выхода субд от разработчика прототипа systemR и обозвать версия 2.0 наверно тоже не техническое состояние субд помогла. :)
Конечно маркетологи необходимы, но они должы знать свое место, нельзя позволять им превращать промышленный продукт в новогоднюю елку.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33734346
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c127 ASCRUSГм, одна из причин моего перехода на ASA ... берем новые расширения 10-ой версии и сраниваем с листом затребованных расширений, предложенных пользователями ASA - один в один. Прямая работа с пользователями очень эффективна без прослойки маркетологов - никаких встраиваний C#, красивых, но бесполезных фенечек и т.д. - ровно столько, сколько хочется пользователям.
Джава.

Но это единственное что я могу припомнить из откровенных глупостей. Хотя возможно пользователи сильно просили. Правда потом они же упорно не желали пользоваться.
Так все - нет Java. Вернее осталась поддержка расширеных ХП на Java, а вот сериализация обьектов в таблицах, прямая работа с обьектами на языке хранимых процедур и в запросах - все depricated, убрали как невостребованные и мешающиеся под ногами фичи. Зато SQL до SQL2003 навернули, веб-сервисы и мощную обработку XML сделали - гораздо полезнее, чем Java в БД.

Кстати, скорее всего не пользователи просили, а Sybase настояло, которое в свое время (как и прочие конторы, ожидающие чуда), стала страдать Java-манией и стараться засунуть ее куда ни попадя. Как бы то не было, не нашлось желающих в таблицах хранить и обрабатывать обьекты Java, и мало кто стал пользоваться хранимыми процедурами на Java - разве что по крайней необходимости.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33755640
ASCRUSНа каждое правило есть исключение - в данном случае любой желающий может поставить себе ASA и убедиться что этот сервер исключение из правил.
Слушай, как ты за**** со своей асой... :)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33755745
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS Зато SQL до SQL2003 навернули, веб-сервисы и мощную обработку XML сделали
А интересно, веб-сервисы и обработка XML входят в стандарт SQL2003?
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33755762
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreemanZAV
А интересно, веб-сервисы и обработка XML входят в стандарт SQL2003?
Веб-сервисы вряд ли, а вот для XML в SQL Anywhere сделан по стандарту SQL/XML
--


...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33756207
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Телка из фильма Четверг ASCRUSНа каждое правило есть исключение - в данном случае любой желающий может поставить себе ASA и убедиться что этот сервер исключение из правил.
Слушай, как ты за**** со своей асой... :)
Уважаемая телка с четверга - А что делать ? Ну не сможет любой желающий поставить себе и тут же начать работать с Oracle или DB2 без определенных базовых знаний, досада то. Вот и приходится рекомендовать то, что работает по принципу "сел и поехал с коробкой автомат" - пока конечно не прочитаешь документацию и не поймешь, что она еще не только ездить умеет, но и летать и даже на швейной машинке умеет, если там конечно стоит PocketPC или PalmOS ;)
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33756359
--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS Телка из фильма Четверг ASCRUSНа каждое правило есть исключение - в данном случае любой желающий может поставить себе ASA и убедиться что этот сервер исключение из правил.
Слушай, как ты за**** со своей асой... :)
Уважаемая телка с четверга - А что делать ? Ну не сможет любой желающий поставить себе и тут же начать работать с Oracle или DB2 без определенных базовых знаний, досада то. Вот и приходится рекомендовать то, что работает по принципу "сел и поехал с коробкой автомат" - пока конечно не прочитаешь документацию и не поймешь, что она еще не только ездить умеет, но и летать и даже на швейной машинке умеет, если там конечно стоит PocketPC или PalmOS ;)
Респект, на провокацию не поддался:)
Другой вопрос, что пользователю все равно, что у тебя стоит, не его это дело, а вот разрабтчика поступающего по принципе "сел и поехал с коробкой автомат" - лучше к клавиатуре вообще не подпускать. Видели уже таких, водителей
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33756413
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Другой вопрос, что пользователю все равно, что у тебя стоит, не его это дело, а вот разрабтчика поступающего по принципе "сел и поехал с коробкой автомат" - лучше к клавиатуре вообще не подпускать. Видели уже таких, водителей
Ну что сказать ... если рассмотреть ассоциативное назначение фразы "коробка-автомат" в контенте разных СУБД, то для каждого направления специалисты будут видеть свою образную связь, совершенно отличную от специалистов других направлений и продуктов. Поэтому я сам виноват, что воспользовался ассоциативным термином и был неправильно понят.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33756844
--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS
Ну что сказать ... если рассмотреть ассоциативное назначение фразы "коробка-автомат" в контенте разных СУБД, то для каждого направления специалисты будут видеть свою образную связь, совершенно отличную от специалистов других направлений и продуктов. Поэтому я сам виноват, что воспользовался ассоциативным термином и был неправильно понят.
Теперь уж я точно ничего не понял
Если вас не затруднить, применяйте, пожалуйста, принцип KISS, в том числе и в дискуссиях. Хотя бы со мной, а то при упоминании обратных связей мне мерещится профессор, который в студенческие годы читал нам теорию атоматического управления:)

И все же я хотел бы выяснить смысл который вы вкладывали вот эти слова
авторНу не сможет любой желающий поставить себе(поставить на винды DB2, Oracle, Postgre, ASA, MSSQL сможет любой желающий, который устанавливал на винды хоть что-то сложнее MS Office) и тут же начать работать с Oracle или DB2 без определенных базовых знаний (тут же начать работать "без базовых знаний" любоого из перечисленных мной сервера не сможет никто), досада то(почему досада??? что удивительно в потребности понимать как и что работает???). Вот и приходится рекомендовать то, что работает по принципу "сел и поехал с коробкой автомат" (переключение скоростей далеко не самое главное и самое сложное в управлении автомобилем, точно так же как инсталяция СУБД - далеко не главное при работе с ней) - пока конечно не прочитаешь документацию и не поймешь, что она еще не только ездить умеет, но и летать и даже на швейной машинке умеет
На простых задачах, масштаба небольшой бухгалтерии "нулевым администрированием" обладает любой сервер. На сложных задачах, требовательных ко времени отклика и отказоустойчивости, я не допущу что какой-то "умный" гуй решал за меня, как мне распределить память или как переписать(?) за меня запрос.
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33757201
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-- пишет:

> На сложных задачах,
> требовательных ко времени отклика и отказоустойчивости, я не допущу что
> какой-то "умный" гуй решал за меня, как мне распределить память или как
> переписать(?) за меня запрос.

А почему переписывание запроса вызвало такое удивление? Вы же доверяете
(наверное) компилятору генерацию за вас машинного кода из инструкций на
языке более высокого уровня? А чем вас пугает переписывание запроса? SQL
часто позволяет абсолютно одно и то же выразить несколькими разными
способами. Например JOIN можно заменить подзапросом и т.п. Почему вы
думаете, что на этапе разработки всегда сможете лучше определить способ
выполнения запроса, чем оптимизатор, которому на момент выполнения
доступна статистика распределения значений, точная информация о
быстродействии памяти, HDD и процессора, информация о текущем состоянии
кэша и загруженности сервера? Да, в определенных ситуациях лучше сделать
выбор решения человеку. Но каков процент таких ситуаций? Из личной
практики за много лет использования ASA в задачах, достаточно
требовательных ко времени отклика и отказоустойчивости я лишь пару раз
очень давно был недоволен выбором оптимизатора и прибегнул к хинтам,
которые были убраны примерно через месяц, после выхода очередных
исправлений. Так что это даже не пример ситуации, где выбор автомата
неоправдан. Я даже затрудняюсь с ходу придумать пример, кроме амбиций
собственной значимости: "чтоб кто-то за меня решал!" :) Это может быть
вызвано разве что печальным опытом работы с менее удачными экземплярами
серверов.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
DB2 Express-C против - MS SQL Server 2000 -???
    #33829055
Фотография dudochkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman Baracuda_kstПривет, Я работаю c MS SQL Server 2000, в последнее время подумываю переходить на DB2, узнал что у IBM есть бесплатная версия: DB2 Express-C, хочу попробовать ее. (Восновном из за платформы linux)

Как вы считаете стоит ли переходить на нее, и какие приимущества есть у DB2 пред MS SQL Server-ом (Скорость, простота настройки и администрирования)
?
Я бы вам не советовал так поступать. Вы дважды оскорбили MS SQL-щиков.
1) тем что хотите DB2 и 2) тем что хотите линукс. Так и побить ведь могут. (шутка)

А вообще (если по серьезному) я бы отметил вот эти моменты:
1) В DB2 многие вещи решаются всего лишь одним единственным запросом. В MSSQL вам придется писать для этого процедуру.
2) В DB2 есть понятие статического SQL. Ничего подобного в MSSQL даже близко нет.
3) у DB2 гораздо больше ручек за которые можно курутить чтобы добиться нормальной производительности.
4) Процедурный язык ( у MS SQL - T-SQL, у Oracle - PL/SQL, у DB2 - SQLPL) намного сложнее чем T-SQL.
5) У DB2 на С/С++ можно такого наворотить, что Oracle и MSSQL - просто отдыхают.
6) DB2 Express-C по своим характеристикам (задаром - до 2ЦПУ, unlimit users, unlimit diskspace, 4 GB RAM) легко покрывает потребности 98% компаний России (мелкий и средний бизнес).
...
Рейтинг: 0 / 0
178 сообщений из 178, показаны все 8 страниц
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / DB2 Express-C против - MS SQL Server 2000 -???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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