powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Сравнение СУБД в сфере Web-приложений
278 сообщений из 278, показаны все 12 страниц
Сравнение СУБД в сфере Web-приложений
    #34149488
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелось бы услышать мнения о приемуществах и недостатках СУБД в сфере Web-приложений. Нужно написать сравнительный анализ по данной теме. Для каких Web-приложений (объём данных, количество одновременных подключений, сложные запросы в фоновых режимах, обработка данных из Web-сервисов, публикация своего Web-сервиса в дополнение к Web-приложению) лучше использовать какую СУБД.

На конкретном примере, какую СУБД можно использовать для базы данных с объёмом данных по нескольку десятков миллионов записей в каждой таблице, сложными статистическими отчётами по различным критериям и большим количеством пользователей (несколько тысяч).

Какие видимые преимущества СУБД Oracle в сфере Web-приложений? Я бы отметил такие, как:
- использование Oracle Application Server,
- встроеного CGI-интерфейса,
- стандартные средства безопасности при публикации БД в Интернете,
- возможность вместе с PL/SQL использовать другие языки программирования, например Java, что может расширить возможности в сфере разработки Web-приложений,
- подержка jsp,
- встроеные в OAS средства по управлению блокировками записей в БД из Web.

Интересует, как в такой же ситуации справляются MySQL, Microsoft SQL, DB2?
- Какие приимущества и для какой аудитории пользователей/объёма данных у приведённых систем?
- А также в каких комбинациях можно использовать данные СУБД для организации работы Web-приложения. Например, в MySQL это PHP + Apache.
- В каких СУБД Web-сервер и/или сервер приложений входят в комплект инсталляции?

Заранее примного благодарен за любого рода информацию по теме!
Flukky
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34149543
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Также интересно, какие из приведённых выше СУБД поддерживают выполнение назначеных заданий (фоновых процессов). В Oracle это jobs.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34149766
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FlukkyТакже интересно, какие из приведённых выше СУБД поддерживают выполнение назначеных заданий (фоновых процессов). В Oracle это jobs.
В Microsoft SQL это тоже jobs

А кстати что такое встроеные в OAS средства по управлению блокировками записей в БД из Web ? Правда не знаю, ни что такое OAS, ни зачем записи в БД блокировать именно из Web
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34150594
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне чего-то кажется, что СУБД для веб приложений ничем не отличаются от СУБД для не веб приложений :)
А потому - все те же недостатки и достоинства.

-- Tygra's --
Мои фотогалереи тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34150807
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СУБД не отличаются, но ведь технологии связи субд-web резные, они могут иметь свои плюсы или минусы. Какие-то специфические критерии и т.п.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34150829
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuper FlukkyТакже интересно, какие из приведённых выше СУБД поддерживают выполнение назначеных заданий (фоновых процессов). В Oracle это jobs.
В Microsoft SQL это тоже jobs

А кстати что такое встроеные в OAS средства по управлению блокировками записей в БД из Web ? Правда не знаю, ни что такое OAS, ни зачем записи в БД блокировать именно из Web

Тоесть Оракл и MSSQL в сфере фоновых процессов работают примерно одинаково..

OAS - сервер приложений Оракл. Блокировки записей используются для обеспечения транзакций (тоесть чтобы commit давался не после выполнения одной PL/SQL процедуры, а после заданного множества и т.п.) и одновременного доступа из Web. Тоесть, чтобы не было такой ерунды, что один пользователь откроет форму с данными, второй это сделает в то же время. Сначала сохранит один, потом другой и в как итог в БД будут изнения только второго юзера. Другого необходимо предупредить о том, что кто-то другой после того, как он получил данные, уже изменил эти данные. И всё такое...
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34150842
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FlukkyOAS - сервер приложений Оракл. Блокировки записей используются для обеспечения транзакций (тоесть чтобы commit давался не после выполнения одной PL/SQL процедуры, а после заданного множества и т.п.) и одновременного доступа из Web. Тоесть, чтобы не было такой ерунды, что один пользователь откроет форму с данными, второй это сделает в то же время. Сначала сохранит один, потом другой и в как итог в БД будут изнения только второго юзера. Другого необходимо предупредить о том, что кто-то другой после того, как он получил данные, уже изменил эти данные. И всё такое...

Вот отсюда и один из критериев сравнения. Какая ещё из СУБД реализует такие подходы на уроне сервера апликаций, как Оракл? Потяное дело, что подобный механиз можно разработать самому на уровне процедур..
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34150843
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. Версионность данных?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34150853
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy denТ.е. Версионность данных?
Вроди как да
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34150885
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и ещё один параметр сравнения: интегрированность XML в СУБД. В Оракле например есть специальный тип, несколько (?) встроеных парсеров и т.п. и средства для создания Веб-сервиса там тоже есть, если я не ошибаюсь
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34151288
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flukky FlukkyOAS - сервер приложений Оракл. Блокировки записей используются для обеспечения транзакций (тоесть чтобы commit давался не после выполнения одной PL/SQL процедуры, а после заданного множества и т.п.) и одновременного доступа из Web. Тоесть, чтобы не было такой ерунды, что один пользователь откроет форму с данными, второй это сделает в то же время. Сначала сохранит один, потом другой и в как итог в БД будут изнения только второго юзера. Другого необходимо предупредить о том, что кто-то другой после того, как он получил данные, уже изменил эти данные. И всё такое...

Вот отсюда и один из критериев сравнения. Какая ещё из СУБД реализует такие подходы на уроне сервера апликаций, как Оракл? Потяное дело, что подобный механиз можно разработать самому на уровне процедур..
Или вообще не разрабатывать :) Но и на уровне процедур это делается несложно, так что OAS никаких бонусов особых не даст при сравнении

FlukkyДа и ещё один параметр сравнения: интегрированность XML в СУБД. В Оракле например есть специальный тип, несколько (?) встроеных парсеров и т.п. и средства для создания Веб-сервиса там тоже есть, если я не ошибаюсь
Зачем вам XML в СУБД? Что будете делать с ним?
Вебсервисы как, ни странно, создаются многими другими средствами, причем иногда это даже лучше - независимость друг от друга в смысле работы и разработки.

-- Tygra's --
Мои фотогалереи тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34151719
Dmitriy Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F> Автор: Flukky
F> Да и ещё один параметр сравнения: интегрированность XML в СУБД. В
F> Оракле например есть специальный тип, несколько (?) встроеных
F> парсеров и т.п. и средства для создания Веб-сервиса там тоже есть,
F> если я не ошибаюсь

Для Веб-сервиса необязательно пользовать XML - это не обзятельно плюс.



Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34153770
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitriy Ivanov
Для Веб-сервиса необязательно пользовать XML - это не обзятельно плюс.


Согласен, но XML всё же может использоваться для этого, откуда следует, что встроенные стедства про его обработке есть в Оракле -> это не негативный момент
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34153790
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как в других СУБД обстоят дела с блокировкой записей? При чтении, как я понимаю, лишь один Оракл не блокирует запись. Другие СУДБ блокируют. А при изменении данных другие СУБД блокируют либо блоки, либо "страницы", в то время как Оракл только ту одну запись, с которой работает пользователь. Это правильные утверждения? Для веб-приложений, на мой взгляд, это ощутимый плюс.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34153808
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygra FlukkyВ Оракле например есть специальный тип, несколько (?) встроеных парсеров и т.п.
Зачем вам XML в СУБД? Что будете делать с ним?

А что по этому поводу говорит официальная позиция Оракл?
Зачем они сначала парили мозги что типа СУБД должна быть только СУБД-ой, а потом вводили всю эту байду?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34153853
Алексей2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FlukkyКак в других СУБД обстоят дела с блокировкой записей? При чтении, как я понимаю, лишь один Оракл не блокирует запись. Другие СУДБ блокируют. А при изменении данных другие СУБД блокируют либо блоки, либо "страницы", в то время как Оракл только ту одну запись, с которой работает пользователь. Это правильные утверждения? Для веб-приложений, на мой взгляд, это ощутимый плюс.
хм... ну в MSSQL выставляются тип блокировки на каждый из запросов.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34153854
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я tygra FlukkyВ Оракле например есть специальный тип, несколько (?) встроеных парсеров и т.п.
Зачем вам XML в СУБД? Что будете делать с ним?

А что по этому поводу говорит официальная позиция Оракл?
Зачем они сначала парили мозги что типа СУБД должна быть только СУБД-ой, а потом вводили всю эту байду?

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

ну я: А разве наличие дополнительных средств обработки данных является плохим фактором? Кстати, а как в других СУБД обстоят дела с XML?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34153860
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей2003хм... ну в MSSQL выставляются тип блокировки на каждый из запросов.

Можно чуток по-подробее? Хотя бы в двух-трёх приложениях. Или ссылка на документацию или статью какую (желательно на русском). Спасибо!
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34153902
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, Flukky!
Ты пишешь:

FlukkyF> XML хотя бы для того, чтобы обрабатывать данные,
F> получаемые от каких-либо веб-сервисов.очень глубокая мысль.
до сути не докопаться.
глубоко очень.

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34153920
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну лажно уже издеваться..
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34153950
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, Flukky!
Ты пишешь:

FlukkyF> Ну лажно уже издеваться.. "Он то плакал, то смеялся,
То щетинился, как еж...
Он над нами издевался!
Ну, сумасшедший - что возьмешь..."
(С)

Твои откровенные ляпсусы, выглядят как попытка
циничного надругательства над мозгами участников форума.

Настоятельная рекомендация: в библЯтеку! срочно!

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34154014
Фотография DarkCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MySQL+PHP - самая удобная связка для веб.
и MySQL вполне достаточно для большинства задачь под веб.

...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34154022
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FlukkyКак в других СУБД обстоят дела с блокировкой записей? При чтении, как я понимаю, лишь один Оракл не блокирует запись. Другие СУДБ блокируют. А при изменении данных другие СУБД блокируют либо блоки, либо "страницы", в то время как Оракл только ту одну запись, с которой работает пользователь. Это правильные утверждения? Для веб-приложений, на мой взгляд, это ощутимый плюс.InnoDB имеет построчную блокировку. Используется, например, как один из движков MySQL.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34154152
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flukky ну я tygra FlukkyВ Оракле например есть специальный тип, несколько (?) встроеных парсеров и т.п.
Зачем вам XML в СУБД? Что будете делать с ним?

А что по этому поводу говорит официальная позиция Оракл?
Зачем они сначала парили мозги что типа СУБД должна быть только СУБД-ой, а потом вводили всю эту байду?

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

ну я: А разве наличие дополнительных средств обработки данных является плохим фактором? Кстати, а как в других СУБД обстоят дела с XML?
1. Вопрос скорее к тигре?
2. Мне с XML ничего делать пока не довелось, просто не в курсе.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34154186
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Oracle есть бесплатный вариант ПО - это Oracle Express Edition (XE).
У Microsoft есть бесплатный вариант SQL Server?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34154221
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, SQL*Plus!
Ты пишешь:

SQL*PlusSP> У Oracle есть бесплатный вариант ПО - это Oracle Express Edition (XE).
SP> У Microsoft есть бесплатный вариант SQL Server?у всех есть.
нонче это модно.

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34154228
!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
!
Гость
FlukkyКак в других СУБД обстоят дела с блокировкой записей? При чтении, как я понимаю, лишь один Оракл не блокирует запись. Другие СУДБ блокируют. А при изменении данных другие СУБД блокируют либо блоки, либо "страницы", в то время как Оракл только ту одну запись, с которой работает пользователь. Это правильные утверждения? Для веб-приложений, на мой взгляд, это ощутимый плюс.

Другие тоже могут блокировать 1 запись,
а некоторые могут вообще не блокировать, потому как они версионники.
Еще некоторые могут вам позволить использовать грязное чтение,
на ваш страх и риск.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34154285
Фотография Ales Protiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flukky
Можно чуток по-подробее? Хотя бы в двух-трёх приложениях. Или ссылка на документацию или статью какую (желательно на русском). Спасибо!

В MS SQL 2005 схема блокирования может быть оптимистичной, на сколько я помню...
ключевое слово для поиска READ COMMITED
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34154350
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
Привет, SQL*Plus!
Ты пишешь:

SQL*PlusSP> У Oracle есть бесплатный вариант ПО - это Oracle Express Edition (XE).
SP> У Microsoft есть бесплатный вариант SQL Server?у всех есть.
нонче это модно.

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.3
Ну MSDE на самом деле не бесплатен, он входит в состав других продуктов, с помощью которых пишутся клиенты к нему, а вот при распространении клиента, ты можешь поставлять MSDE уже бесплатно.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34154368
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, Sergey!
Ты пишешь:

SergeySO> Ну MSDE на самом деле не бесплатена кто упоминал MSDE ?

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34154459
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В DB2 встроенный XML более гибок, чем у Oracle. В Oracle особенно когда надо работать с посторяющимеся структурами типа
<employee id>
....
<phone>123</phone>
<phone>432</phone>
</employee>

phone сложно будет развалится в CLOB

Зачем нужен XML в БД. За тем что XML уже не только формат обмена информацией, но и является артефактом транакций (покупка акций - документ, поставка - документ)

На западе все помешались на Regulatory Compliance и документы нужно хранить в оригинальном формате без изменений и быстро предоставлять статистику по интересующей информации в гос органы.

Так же если строить mapping из XML в Relational Tables в некоторых случаях потребуется для полного соотвествия иметь порядка 300 таблиц, так как стандарты преиодически меняеются и дополняются, можно оценить количество гемороя при изменении mappings.

Так же интересная тема это привязка пунктов контракта - который хорошо описывается в XML к определенным данным и изменениям этих даных в оперативных системах. Надеюсь достаточно примеров зачем XML класть в БД

А преимущества использования БД в Web было интересно и актуально лет 6 назад, сейчас у всех вендоров есть эквивалентные инструменты. Вплоть до конфигурации Web Services из запросов и хранимых процедур на уровне конфиграционных файлов.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34154486
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самая хороша БД та, с которой умеешь работать...
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34154539
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkulikov
Так же если строить mapping из XML в Relational Tables в некоторых случаях потребуется для полного соотвествия иметь порядка 300 таблиц, так как стандарты преиодически меняеются и дополняются, можно оценить количество гемороя при изменении mappings.

всего 300? А чего не 1000 или миллион?
Две таблицы или три я еще могу понять как использовать, но вот больше - уже не укладывается в голове
nkulikov
Так же интересная тема это привязка пунктов контракта - который хорошо описывается в XML к определенным данным и изменениям этих даных в оперативных системах.
Привязку в XML делать проще чем в реляционной базе? Так же хотелось бы выяснить чем же
nkulikov Надеюсь достаточно примеров зачем XML класть в БД
Я лично ни одного не увидел
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34154589
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkulikovphone сложно будет развалится в CLOB
Не понял мысли.

nkulikovЗачем нужен XML в БД. За тем что XML уже не только формат обмена информацией, но и является артефактом транакций (покупка акций - документ, поставка - документ)
Если я правильно понял, Вы говорите о хранении xml в базе на уровне примечаний, поля типа memo. Согласен, может потребоваться.

nkulikovТак же интересная тема это привязка пунктов контракта - который хорошо описывается в XML к определенным данным и изменениям этих даных в оперативных системах.
Как минимум, не понял. xml, пардон, далеко не единственная иерархическая структура, и не сказать что лучшая. Ну а что касается привязки к нему-от него по сравнению с foreign key... я бы вряд ли отдал xml первое место.

nkulikovНадеюсь достаточно примеров зачем XML класть в БД
Хм. Могу сказать, зачем поддержку xml в БД используем мы. Во-первых, мы используем XML именно для задачи обмена данными. Во-вторых, архитектурно удобно обрабатывать данные именно в БД; схема положил в БД - вытащил из БД - обработал - положил в БД выглядит... переусложненной, а схема получил - обработал - положил в БД неудачна из-за сложного этапа обработки, который получается жестко связанным с "получил", с транспортировкой. Наконец, мы имели выбор - обрабатывать xml в БД, средствами Oracle, либо вне БД, средствами Delphi, и скажу - поддержка XML в дельфе полное дерьмо.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34154644
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SergSuper
Я лично ни одного не увидел
Мне тоже любопытно посмотреть примеры. Как не силился, не смог придумать никакого применения для хранения ХМЛ в базе, кроме как использования хранимого для обработки другими приложениями. Только зачем это? Лишний слой.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34154748
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
! FlukkyКак в других СУБД обстоят дела с блокировкой записей? При чтении, как я понимаю, лишь один Оракл не блокирует запись. Другие СУДБ блокируют. А при изменении данных другие СУБД блокируют либо блоки, либо "страницы", в то время как Оракл только ту одну запись, с которой работает пользователь. Это правильные утверждения? Для веб-приложений, на мой взгляд, это ощутимый плюс.

Другие тоже могут блокировать 1 запись,
а некоторые могут вообще не блокировать, потому как они версионники.
Еще некоторые могут вам позволить использовать грязное чтение,
на ваш страх и риск.Ну так и InnoDB версионник. И может обеспечивать изоляцию транзакций от грязного чтения до serializable.
Только я "другую" от Оракла указал, а вы нет. ,)
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34155201
Dmitriy Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ня> Автор: ну я
ня> 2. Мне с XML ничего делать пока не довелось, просто не в курсе.

Ваше счастье - дай вам бог, чтобы и впредь не доводилось!



Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34155218
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Orlov Ну MSDE на самом деле не бесплатен, он входит в состав других продуктов, с помощью которых пишутся клиенты к нему, а вот при распространении клиента, ты можешь поставлять MSDE уже бесплатно.
[удалено модератором
в оригинале было глубокое несогласие с позицией автора высказывания]
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34155225
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Flukky
>Также интересно, какие из приведённых выше СУБД поддерживают выполнение назначеных заданий (фоновых процессов).

Кто запускает фоновый процесс? Если клиент, то на 10 000 клиентов (например), сколько фоновых процессов реально может быть запущено?
Принципиально, что бы фоновый процессс выполнялись в среде базы данных? Не достаточно 1-го сервера приложения на 1-ин фоновый процессс?

С уважением, Владимир
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34156403
gals
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что IBM пошла чуть дальше с XML, чем Oracle.
В DB2 9.1, используется язык XQuery для чтения данных. Он позводяет обрабатывать как специальный тип данных XML, так и обычные реляционные таблицы базы данных.
На самом деле, получается, что SQL и XQuery на начальном уровне разводятся на разные синтаксические анализаторы. В оптимизатор сервера попадает один и тот же набор команд.

В тип данных XML заливается не текст XML документа, а преобразованная схема документа. Образуется словарь тегов. Вместо названий тегов используются индексы словоря. XPath выражение использует уже сформированную схему словаря.
Вполне возможно, что Oracle делает нечто подобное.

Да, в Oracle есть готовое WEB решение. Для быстрого решения многих ситуаций, он очень хорошо подходит. Только у него, как и у любого средства есть свои недостатки. Назову один. В некой таблице есть ссылка (не URL) на внешний ресурс, например Word документ. Эта ссылка может показывать на обычный расшаренный каталог. Средствами PL/SQL внешний файл (естественно, на другом сервере) поднять затруднительно. Удобное решение - написание некой Java процедуры, или на любом другом языке, для обрашения к таким ресурсам. Если у вас в проекте будет использоваться CMS, это тоже приведет к необходимости обращения к CMS, а не напрямую к базе данных.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34156484
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПри чтении, как я понимаю, лишь один Оракл не блокирует запись. Другие СУДБ блокируют. А при изменении данных другие СУБД блокируют либо блоки, либо "страницы", в то время как Оракл только ту одну запись, с которой работает пользователь. Это правильные утверждения?

и все-таки. это sql.ru, или нет? чего такие жидкие ответы на такую мощную провокацию? :-)

Так вот - уже давно практически у всех "обычных" коммерческих РСУБД мало того что блокирование на уровне записи, а не страницы, так еще и версионность есть. Причем, версионность есть нынче практически везде, за редким исключением: InterBase/Firebird (уж 20 лет как), Oracle, PostgreSQL, MySQL с движком InnoDB (допустим, т.к. InnoDB уже продан/куплен), и свежий MS SQL 2005.

Но. Как ни странно, для веб-приложений версионность "не очень хорошо", т.к. может иногда напрячь администратора слежением за сборкой мусора и т.п. К примеру, MySQL почему так оказался популярен для Web - потому что использовался движок без транзакций, без версионности, и вообще без чего бы то ни было, что могло бы усложнить администрирование или написание приложений.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34157216
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv авторПри чтении, как я понимаю, лишь один Оракл не блокирует запись. Другие СУДБ блокируют. А при изменении данных другие СУБД блокируют либо блоки, либо "страницы", в то время как Оракл только ту одну запись, с которой работает пользователь. Это правильные утверждения?

и все-таки. это sql.ru, или нет? чего такие жидкие ответы на такую мощную провокацию? :-)
- А скушна-а-а-а-а-а.........



kdvНо. Как ни странно, для веб-приложений версионность "не очень хорошо", т.к. может иногда напрячь администратора слежением за сборкой мусора и т.п.
А ни факт! Во первых - для ентого есть СКРУЛЬ, что б не.... Ну все поняли....
Второе - есть часть, и имхо бОльшая, где без версионности - получается ... полная.


kdv
К примеру, MySQL почему так оказался популярен для Web - потому что использовался движок без транзакций, без версионности, и вообще без чего бы то ни было, что могло бы усложнить администрирование или написание приложений. Ну... Не стоит забывать, что МуСКуЛ раньше и более широко был "обеспечен" литературой, чем тот же FB...
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34159936
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавлю еще кусочек,
как база данных работает с XQuery?
в sql 2005 я читал про специальные функции, в BOL
--



Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34162412
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2SergSuper
автор
всего 300? А чего не 1000 или миллион?
Две таблицы или три я еще могу понять как использовать, но вот больше - уже не укладывается в голове


300 из реального проекта. Если ты не видел таких потребностей, это не означает что их нет
всегда найдется кучка требования которые превратят простую схему из 2-3 таблиц в 200-300.

2softwarer
автор
Если я правильно понял, Вы говорите о хранении xml в базе на уровне примечаний, поля типа memo. Согласен, может потребоваться.

Я сделал четкую оговорку, требования госрегуляторов. Как ты представляешь себе поиск в миллионах документах в поле memo? О производительности не думал?

Понятно, что часть данных можно нормализовать (переложить в виде строк в таблицы) и это упростит поиск докуметов, но это не всегда возможно в силу сложности некоторых индустриальных XML стандартов.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34162502
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkulikovЯ сделал четкую оговорку, требования госрегуляторов. Как ты представляешь себе поиск в миллионах документах в поле memo? О производительности не думал?
Во-первых, ты сказал не о поиске в миллионах документах, а о статистике по этим документам. Не знаю как для тебя, для меня это вовсе не синонимы.

Во-вторых, я говорил о роли этой информации в жизни приложения, а не о реализации ее "полем типа memo", тем паче что такой тип вроде бы канул в прошлое вместе с xBase.

Наконец, если хочешь поговорить именно о поиске в clob-полях - естественным решением являются соответствующие индексы. Если мне не изменяет память, в поддержке полнотекстовых индексов для Oracle была соответствующая фича, начиная с 10gR2 существует XMLINDEX, наконец если сильно хочется, можно написать собственный.

Стоит ли продолжать ожидать ответов на прочие заданные вопросы?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34162886
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkulikov2SergSuper
автор
всего 300? А чего не 1000 или миллион?
Две таблицы или три я еще могу понять как использовать, но вот больше - уже не укладывается в голове
300 из реального проекта. Если ты не видел таких потребностей, это не означает что их нет
всегда найдется кучка требования которые превратят простую схему из 2-3 таблиц в 200-300.

У нас есть такие приборы!!!
Но мы вам о них не расскажем(С)

Каждый из нас видел множество глупостей(да и делал, чего душой кривить-то), не исключаю что это одна из них. Во всяком случае Вы никаких аргументов или причин что бы плодить столько таблиц не привели
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34162905
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkulikov
300 из реального проекта. Если ты не видел таких потребностей, это не означает что их нет
всегда найдется кучка требования которые превратят простую схему из 2-3 таблиц в 200-300.

А потом придется из этих 300 сделать 5-10 талдычек и все запросы начнут летать....
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34165441
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
Во-первых, ты сказал не о поиске в миллионах документах, а о статистике по этим документам. Не
знаю как для тебя, для меня это вовсе не синонимы.


ok что ты подразумеваешь под стастистикой которую надо передавать регуляторам?

softwarer
Во-вторых, я говорил о роли этой информации в жизни приложения, а не о реализации ее "полем типа memo", тем паче что такой тип вроде бы канул в прошлое вместе с xBase.

Наконец, если хочешь поговорить именно о поиске в clob-полях - естественным решением являются соответствующие индексы. Если мне не изменяет память, в поддержке полнотекстовых индексов для Oracle была соответствующая фича, начиная с 10gR2 существует XMLINDEX, наконец если сильно хочется, можно написать собственный.


Про это я написал, проиндексируй XMLINDEX в Oracle тэги которые может дублироваться
<employee>
<phone>
<phone>

Про собственный индекс не смеши, сколько компаний которые пользуются этой фичей в Oracle?

softwarer
Стоит ли продолжать ожидать ответов на прочие заданные вопросы?


Спрашивающих много я один, если честно не в ближайшие две недели.

SergSuper
У нас есть такие приборы!!!
Но мы вам о них не расскажем(С)
Каждый из нас видел множество глупостей(да и делал, чего душой кривить-то), не исключаю что это одна из них. Во всяком случае Вы никаких аргументов или причин что бы плодить столько таблиц не привели

Причина как минимум одна, если у тебя много документов, сколько строк у тебя будет в 2-3 таблицах? Отсюда полезут уши производительности etc...
Я не спорю о том, что можно красиво и аккуратно разложить XML данные в 2-3 таблицы и до определенного объема это будет работать великолепно. Я говорю о том, что есть некоторая граница после которой эту схему придется расширять и причем существенно. Главный послыл, то что все зависит от конкретных условий, а когда все зависит от конкретных условий и частностей, желательно иметь в БД возможности которые упростять работу и не приведут к существенному увеличению кол-ва таблиц. Про случай с 300 таблиц в детали вдаваться не могу NDA, но постараюсь к середине декабря закинуть некоторый нейтральный пример который покажет преимущества хранения XML в БД.

Если кому-то не ответил, могу попробовать ответить через mail
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34165477
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkulikovok что ты подразумеваешь под стастистикой которую надо передавать регуляторам?
Я не знаю, кто такие регуляторы (Билли Кид со Стивеном Кингом, надеюсь, не в счет). Что же до статистики, то я привык понимать под этим понятием [агрегатную] функцию над некоторой выборкой.

nkulikovПро это я написал, проиндексируй XMLINDEX в Oracle тэги которые может дублироваться

<employee>
<phone>
<phone>
Это там, где ты написал странную фразу про "разваливаться в clob"? Это я просил пояснить, фраза осталась загадочной.

nkulikovПро собственный индекс не смеши, сколько компаний которые пользуются этой фичей в Oracle?
Представления не имею. Я пользуюсь, правда не для поиска (для этого хватает стандартных типов), а для того, чтобы без триггеров поддерживать constraint на периоды дат (непересекающиеся date_from, date_to).
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34167524
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkulikovПро собственный индекс не смеши, сколько компаний которые пользуются этой фичей в Oracle?


Это реально используемая фича, полнотекстовый поиск, пространственные данные, отпечатки пальцев. Из известных компаний RCO, баннер которой болтается на этой страничке
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34167979
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkulikovЯ не спорю о том, что можно красиво и аккуратно разложить XML данные в 2-3 таблицы и до определенного объема это будет работать великолепно. Я говорю о том, что есть некоторая граница после которой эту схему придется расширять и причем существенно. Главный послыл, то что все зависит от конкретных условий, а когда все зависит от конкретных условий и частностей, желательно иметь в БД возможности которые упростять работу и не приведут к существенному увеличению кол-ва таблиц. Про случай с 300 таблиц в детали вдаваться не могу NDA, но постараюсь к середине декабря закинуть некоторый нейтральный пример который покажет преимущества хранения XML в БД.
В любом случае выборка по индексу пусть и из большой таблицы всяко лучше чем перебор каждой записи и вызова в ней функций XML(если конечно не рассматривать экзотические примеры, когда XMLи занимают гигабайты).
Ладно, подождём до декабря
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34213697
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вот снова я. Почитал вашу дискуссию, но немногое стало ясно...

Решил своё сравнение разбить по критериям. Базы будут только 4:

1. MS SQL Server
2. MySQL
3. Oracle
4. DB2

Критерии могли бы быть такие:

K1. Наличие встроеных в СУБД Web технологий/реализаций.
K1.1. - есть какие? (ASP?) [MS SQL Server]
K1.2. - не существует [MySQL]
K1.3. - PL/SQL Server Pages, JSP [Oracle]
K1.4. - без понятия [DB2]

K2. Возможность использовать другие Web-технологии вместе с СУБД
K2.1. ASP, PHP...
K2.2. ASP, PHP...
K2.3. PHP...
K2.4. без понятия
Можно ли в эту категорию включать и апплеты Java на стороне браузера?

K3. Наличие бесплатных вариантов с возможностью работать в Web
K3.1. ?
K3.2. Сам бесплатный
K3.3. Express Edition (только нет явы, PSP есть)
K3.4. без понятия

K4. Встроеные в СУБД технологии XML
K4.1. -
K4.2. -
K4.3. - XMLTYPE, XSQL...
K4.4. - есть, но какие?

K5. Поддержка пользователей.
K5.1. - Бесплатная? (патчи бесплатные?)
K5.2. - Нету?
K5.3. - Metalink (но платный, так же как и патчи)
K5.4. - без понятия

K6. Доступные механизмы организации одновремеенного доступа к записям таблиц БД из Web
K6.1. - не смог обобщить вышесказаное по этой теме
K6.2. - ???
K6.3. - не смог обобщить вышесказаное по этой теме
K6.4. - ???

K7. Ограничения для беслатных версий касательно Web
K7.1. ???
K7.3. 4 ГБ данные, Веб доступен, но нет Явы
K7.4. ???

K8. Поддерживаемые платформы
K8.1. - только ОС от Micorsoft
K8.2. - ???
K8.3. - Windows NT/XP, Linux/Unix
K8.4. - ???

K9. Ограничения на объём данных (при каких максимальных объёмах каждая из СУБД выкидывает меньше "бонусов"). Опять таки тут не надо углубляться в особенности структуры приложения, БД...
K9.1. -
K9.2. -
K9.3. -
K9.4. -

K10. Какие-либо явные приемуществая для работы с Web
K10.1. -
K10.2. -
K10.3. - Встроеный Apache и поставляемый отдельно OAS? Что-то подобное есть и у других, наверняка...
K10.4. -

Помогите пополнить и откорректировать этот глупый список. Может есть какие-то ещё параметры? Более поверхностные, т.к. нет возможности углубляться в каждую из 4 СУБД

Спасибо!
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34213875
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По большей части сравнение СУБД интересует в области именно бесплатных версий, которые могут быть использованы для сравнительно небольших Веб-приложений.

Кстати, вот тут о ценах нашёл..
http://relib.com/blogs/bazile/archive/2006/03/06/4337.aspx
В журнале Windows IT Pro/RE за январь-февраль 2006 года в рамках статьи "Платформа 2006. Определяя будущее" опубликовано сравнение стоимости лицензии на процессор разных поставщиков систем управления базами данных. В сравнении учитывалось: стоимость корпоративной версии базового продукта, стоимость средств управления, диагностики, настройки и оптимизации, средств анализа и инструментов построения хранилищ данных, средства повышения отказоустойчивости БД и поддержка многоядерных процессоров. Общая стоимость решений получилась следующая:

IBM DB2 - 329 000 $.
Сюда входят:
Perfomance Expert - 10 000 $
DB2 OLAP - 35 000 $
DB2 Warehouse - 75 000 $
Cube Views - 9 500 $
Recovery Expert 10 000 $

Oracle 10g - от 348 000 $ до 464 000 $.
Сюда входят:
Tuning - 3 000 $
Diagnostics - 3 000 $
Partitioning 10 000 $
OLAP 20 000 $
Mining 20 000 $
BI Bundle 20 000 $
Data Guard 116 000 $

Microsoft SQL Server 2005 (все включено) - 25 000 $.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34214709
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
от журнала "Windows IT Pro" можно и не такого ожидать
Особенно порадовало включение в список Business Intelligence (BI Bundle 20 000 $)
Код: plaintext
1.
--
Per rectum ad astrum
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34214774
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
замечу, что это SQL Server 2005 Enterprise Edition - цена за процессор. Правда, я на на днях смотрел по нашему тендеру, было 20К.
По поводу сравнения - много фактических ошибок, в том числе и непонимание версий и редакций SQL Server. Впрочем, по остальным - то же самое.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34214786
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flukky
K5. Поддержка пользователей.
K5.1. - Бесплатная? (патчи бесплатные?)
K5.2. - Поддержка платная, патчи бесплатны.
K5.3. - Metalink (но платный, так же как и патчи)
K5.4. - без понятия

K6. Доступные механизмы организации одновремеенного доступа к записям таблиц БД из Web
K6.1. - не смог обобщить вышесказаное по этой теме
K6.2. - Ниасилил вопрос. Что хотел узнать автор???
K6.3. - не смог обобщить вышесказаное по этой теме
K6.4. - ???

Flukky
K8. Поддерживаемые платформы
K8.1. - только ОС от Micorsoft
K8.2. - Windows, Linux/Unix
K8.3. - Windows NT/XP, Linux/Unix
K8.4. - ???

K9. Ограничения на объём данных (при каких максимальных объёмах каждая из СУБД выкидывает меньше "бонусов"). Опять таки тут не надо углубляться в особенности структуры приложения, БД...
K9.1. -
K9.2. 42
K9.3. -
K9.4. -

K10. Какие-либо явные приемуществая для работы с Web
K10.1. -
K10.2. Является буквой M в аббревиатуре LAMP
K10.3. - Встроеный Apache и поставляемый отдельно OAS? Что-то подобное есть и у других, наверняка...
K10.4. -
Спасибо!
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34217716
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DocAl, спасибо!

Ещё появился вопрос. Какие из 4 СУБД поддерживают следующие технологии:

1. DBLinks или схожие
2. Механизмы репликации
3. Встроеные возможности для реализации Web-сервиса
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34221990
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FlukkyИ вот снова я. Почитал вашу дискуссию, но немногое стало ясно...
Решил своё сравнение разбить по критериям. Базы будут только 4:
1. MS SQL Server
2. MySQL
3. Oracle
4. DB2

Критерии могли бы быть такие:

K1. Наличие встроеных в СУБД Web технологий/реализаций.
K1.1. - есть какие? (ASP?) [MS SQL Server]
K1.2. - не существует [MySQL]
K1.3. - PL/SQL Server Pages, JSP [Oracle]
K1.4. - без понятия [DB2]


Про mod_plsql (K1.3) я бы сказал не "встроенный", а "идущий в комплекте".


K2. Возможность использовать другие Web-технологии вместе с СУБД
K2.1. ASP, PHP...
K2.2. ASP, PHP...
K2.3. PHP...
K2.4. без понятия
Можно ли в эту категорию включать и апплеты Java на стороне браузера?


K2.4 - ASP, PHP, JSP... В современном мире если уж не "всё коннектится ко всему", то уж к главным СУБД коннект непременно есть. Разве что качество JDBC для MS SQL (было?) под вопросом.


K3. Наличие бесплатных вариантов с возможностью работать в Web
K3.1. ?
K3.2. Сам бесплатный
K3.3. Express Edition (только нет явы, PSP есть)
K3.4. без понятия


K3.4 - DB2 Express-C


K4. Встроеные в СУБД технологии XML
K4.1. -
K4.2. -
K4.3. - XMLTYPE, XSQL...
K4.4. - есть, но какие?

K4.4 в DB2 v9 называется Pure XML. Этой фичей IBM-еры так страшно гордятся, что говорят, что подумывали о переименовании DB2 v9 в DB3.

K5. Поддержка пользователей.
K5.1. - Бесплатная? (патчи бесплатные?)
K5.2. - Нету?
K5.3. - Metalink (но платный, так же как и патчи)
K5.4. - без понятия

Патчи бесплатные, в свободном доступе, хотя в принципе IBM и хочет платы за support (для платных версий DB2).

K6. Доступные механизмы организации одновремеенного доступа к записям таблиц БД из Web
K6.1. - не смог обобщить вышесказаное по этой теме
K6.2. - ???
K6.3. - не смог обобщить вышесказаное по этой теме
K6.4. - ???

???

K7. Ограничения для беслатных версий касательно Web
K7.1. ???
K7.3. 4 ГБ данные, Веб доступен, но нет Явы
K7.4. ???

K7.4 данные - unlimited, 2 двухъядерных процессора и 4 гига ОЗУ.


K8. Поддерживаемые платформы
K8.1. - только ОС от Micorsoft
K8.2. - ???
K8.3. - Windows NT/XP, Linux/Unix
K8.4. - ???

K8.4 Linux, Unix, Windows


K9. Ограничения на объём данных (при каких максимальных объёмах каждая из СУБД выкидывает меньше "бонусов"). Опять таки тут не надо углубляться в особенности структуры приложения, БД...
K9.1. -
K9.2. -
K9.3. -
K9.4. -

???


K10. Какие-либо явные приемуществая для работы с Web
K10.1. -
K10.2. -
K10.3. - Встроеный Apache и поставляемый отдельно OAS? Что-то подобное есть и у других, наверняка...
K10.4. -

Не вижу, в чём так называемый "встроенный" Апач от Oracle лучше обыкновенного. А также вы можете поискать так называемый IBM HTTP Server - тоже Апач на самом деле.


Помогите пополнить и откорректировать этот глупый список. Может есть какие-то ещё параметры? Более поверхностные, т.к. нет возможности углубляться в каждую из 4 СУБД

Спасибо!
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34222004
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FlukkyDocAl, спасибо!

Ещё появился вопрос. Какие из 4 СУБД поддерживают следующие технологии:

1. DBLinks или схожие
2. Механизмы репликации
3. Встроеные возможности для реализации Web-сервиса

1. Коннект к другой базе? DB2 и Oracle и наверняка MS SQL. Но это очень недёшево.
2. DB2, Oracle, MS SQL. Что касаемо DB2 - в бесплатной урезано, только принимать изменения.
3. А нахрена? Говорят о "встроенных", а на самом деле оказывается Апач и т.п. в комплекте.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34235143
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С Новым Годом, господа!

Появился ещё один вопрос. У меня веб-приложение, прогнозируемый прирост данных 3-4 ГБ в год (чистого текста, без индексов и т.п.). Количество пользоваталей - несколько тысяч, прогрозируемое одновременно работаещее количество пользователей - около 100. Выбор ограничен MySQL, MSSQL, Oracle. Желаемая О/С - Linux/Unix.

Какой выбор стоило бы сделать?
Много слышал на этом форуме, что для таких объёмов данных, а там более, в этом приложении будут сложные статистические расчёты по многим таблицам сразу, местами со сложными join'ами, лучше использовать либо MSSQL, либо Oracle.

Лучше знаю Oracle (+), а так же о/с накладывает дополнительное условие, по которым MSSQL не покатит (опять таки (+) Ораклу). Технические возможности для реализации моего веб-приложения примерно одинаковы и в MSSQL, и в Oracle.

Вопрос такой . Как граммотно обосновать выбор не'MySQL. Нужна ссылка на документацию, статьи, сравнения... В моём приложении будут задействованы такие технологии как:
- Jobs,
- Web service (XML).
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34235156
leonbn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FlukkyВыбор ограничен MySQL, MSSQL, Oracle
и
FlukkyЖелаемая О/С - Linux/Unix
Гремучая смесь!
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34235176
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это понятно :)
А что по поводу MySQL и Oracle?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34235290
Yo!.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FlukkyЭто понятно :)
А что по поводу MySQL и Oracle?

Кого лечить то собрался ? Разрисуй фичи оракла, скажи что без materialized view или regexp/connect by prior никак низя
на самом деле "сложные статистические расчёты по многим таблицам сразу, местами со сложными join'ами" mysql может банально не потянуть, у него другая специализация (быстрые несложные запросы на небольшой базе). единственый аргумент за mysql - полная бесплатность, у оракла бесплатна только редакция XE до 4Gb данных, потом $5K за процессор.
С mssql все просто - технически заметно слабее оракла, это не *nix и скорее всего выйдети заметно дороже решения на оракле.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34235291
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К слову,
Yo!.regexp
в MySQL есть, это вам не мс какой-нить.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34235826
Flukky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за инфу!
Но вот это:

Yo!.
на самом деле "сложные статистические расчёты по многим таблицам сразу, местами со сложными join'ами" mysql может банально не потянуть, у него другая специализация (быстрые несложные запросы на небольшой базе).

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

Спасибо!
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34235932
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flukky Впринципе, и документация, и статья подошла бы.
- А что, MySQL.RU уже закрыли?
(Хм... См, ДОКа, выговорил и не запнулся... )
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34236516
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YoС mssql все просто - технически заметно слабее оракла, это не *nix и скорее всего выйдети заметно дороже решения на оракле.
В чем выражается то что MSSQL слабее оракла? Голословное утверждение.
Про то что MS SQL выйдет дороже чем Oracle - просто гон. Не забыли упомянуть что Oracle EE стоит 40k$ за процессор? MS SQL - 25k$ за процессор.
Если говорить про Standard One edition - так у MSSQL тоже есть Standard Edition, которая стоит примерно столько же.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34236747
Yo!.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Flukky
звучит красиво, но мне необходим источник информации, где об этом сказано . Впринципе, и документация, и статья подошла бы.

кто ж тебе о недостатках в документации напишет :) я видел только такой тест:
http://mysql.apachephp.com/dbcomp-2/report.html

а вообще поищи хотя бы сдесь флейм mysql vs postgres, обычно на mysql нападают postgresовцы.

andsm
В чем выражается то что MSSQL слабее оракла? Голословное утверждение.

а ты знаешь когото более многословного меня на енту тему ? :)

andsm
Про то что MS SQL выйдет дороже чем Oracle - просто гон. Не забыли упомянуть что Oracle EE стоит 40k$ за процессор? MS SQL - 25k$ за процессор.

зачем на БД у которой прирост в пару Gb/год и пара сотен веб юзеров ЕЕ edition ?

andsm
Если говорить про Standard One edition - так у MSSQL тоже есть Standard Edition, которая стоит примерно столько же.

standart one edition - $5K, у MS standart edition $6K + винда выйдет гораздо дороже linux/solaris. есть у МС еще workgroup edition но там ограничение в 2Gb RAM, что несерьезно по нынешним временам.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34237660
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo!. andsm
В чем выражается то что MSSQL слабее оракла? Голословное утверждение.

а ты знаешь когото более многословного меня на енту тему ? :)
Решил почитать хотя бы начало. Куча ошибок.
При неправильном размере сегментов очень длинная транзакция может получить ошибку ORA-01555 snapshot too old, в результате чего откатится лишь одна транзакция, в то время как в mssql ни что не ограничит рост tempdb, в результате одна «неудачная» тразакция может просто переполнить tempdb и остановить работу всех пользователей. Не помню ссылку, но где-то на msdn читал что такого не произойдет.
Snapshot VS блокировочник
Конкретно для того приложения каким я занимаюсь, я не вижу зачем версионность нужна для OLTP части. Для аналитических запросов - используется другой сервер. MS SQL 2005 версионность может поддерживать.
Эскалация блокировок (row escalation)При желании эскалацию можно полностью отключить.
Тригеры
В mssql2005 нет before, on connect, триггеры on connect в MS SQL 2005 SP2 есть. Дальше все же не читал, слишком много написано. Думаю там примерно такое же количество ошибок на страницу.

Yo!.
andsm
Про то что MS SQL выйдет дороже чем Oracle - просто гон. Не забыли упомянуть что Oracle EE стоит 40k$ за процессор? MS SQL - 25k$ за процессор.

зачем на БД у которой прирост в пару Gb/год и пара сотен веб юзеров ЕЕ edition ?
andsm
Если говорить про Standard One edition - так у MSSQL тоже есть Standard Edition, которая стоит примерно столько же.

standart one edition - $5K, у MS standart edition $6K + винда выйдет гораздо дороже linux/solaris. есть у МС еще workgroup edition но там ограничение в 2Gb RAM, что несерьезно по нынешним временам.
В начале - да, вроде незачем. Но при этом в проекте закладываются серьезные риски. Риски на то что при росте нагрузки потребуется перейти на компьютер с более чем двумя процессорами, и соответственно отказаться от Standard One Edition. Oracle Standard Edition стоит 15k$. Поэтому, для подобных проектов менее рискованное решение это использование MS SQL.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34237723
Yo!.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andsm
Не помню ссылку, но где-то на msdn читал что такого не произойдет.

а я помю :)
http://msdn2.microsoft.com/en-us/library/ms345124.aspxLong-running transactions can lead to long version chains in SQL Server. The version store keeps a full copy of the data row that saves the expense of reconstructing the row when it is accessed by another transaction.

The integrated SQL Server Agent event management and job scheduling subsystem can be programmed to react automatically to an out-of-physical space condition and take corrective action (such as forcing rollback of any transaction that is contributing to version store space usage).
т.е. если не устраивает стопор всей системы можно настроить джоб убивающий транзакции ...

andsm
Конкретно для того приложения каким я занимаюсь, я не вижу зачем версионность нужна для OLTP части. Для аналитических запросов - используется другой сервер. MS SQL 2005 версионность может поддерживать.

ну я вроде расписал самые спорные части реализации версионного механизма в mssql2005, дал цитату МС о преимуществе даже такой реализации (enhance concurrency for OLTP applications), вроде нигде ничего не переврал, в чем вы усмотрели ошибку ?
да, как бонус могу еще скинуть пару ссылок на OLTP тесты SAP-SD на идентичном железе где оракл быстрей на 30-40%

andsmПри желании эскалацию можно полностью отключить.

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

andsm
триггеры on connect в MS SQL 2005 SP2 есть.
сори, но сп2 появился всего пару месяцев назад, а ентому опусу скоро год стукнет :)

авторДальше все же не читал, слишком много написано. Думаю там примерно такое же количество ошибок на страницу.

ну если вдруг прочтете и будут вопросы, не стесняйтесь, расскажу как вы не правы

andsm
В начале - да, вроде незачем. Но при этом в проекте закладываются серьезные риски. Риски на то что при росте нагрузки потребуется перейти на компьютер с более чем двумя процессорами, и соответственно отказаться от Standard One Edition. Oracle Standard Edition стоит 15k$. Поэтому, для подобных проектов менее рискованное решение это использование MS SQL.
там в первые пару лет там база в память полностью будет вмещатся, когда человек уткнется в проблему CPU 4x современых ядра стоимость EE лицензий будет казатся смехотворной по сравнению со стоимостью I/O системы. ну а для наглядности 2 оптерона тянут 1К конкурентных юзеров SAP :)
ну а если учесть, что уже и четырех-ядерные на подходе ...
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34238455
wellx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andsmРиски на то что при росте нагрузки потребуется перейти на компьютер с более чем двумя процессорами, и соответственно отказаться от Standard One Edition. Oracle Standard Edition стоит 15k$. Поэтому, для подобных проектов менее рискованное решение это использование MS SQL.

При переходе на новый Оракл вы платите только разницу. И, ИМХО, с учетом 4х ядерных процов Оракл скорее всего изменит коэффициенты по ядрам, как это было после выхода 2х ядерных и Ниагары.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34282033
Егор Комов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть еще Sybase ASA 9 и 10.
-Встроеный web-server, соответственно любые WebService(SOAP,XML,HTML) на нем работают на ура. Сам сервер может быть WebService - клиентом.
-Самая навороченная репликация из мне известных.
-Штатно подключается к MsSQL, Oracle, и к любым ODBC.
-Встроенные парсер XML.
-Java в бд.

ну и прочие фенечки

стоит 2k за процессор

Есть полнофункциональная бесплатная версия без ограничений.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #34301908
The_ShadoW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сижу, читаю, и не въезжаю уже с середины первой страницы - о чем вообще беседа, бо как с сабжем что-то не так.

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

Если стоит цель - расписать интеграцию СУБД с веб-технологиями, так и пишите про (и сравнивайте) средства интеграции, а не СУБД . И сравнивайте сервер приложений оракл с сервером приложений J2EE, допустим. А не MySQL с MS SQL.
Да, сейчас модно стало приделывать к СУБД всякие решения "под своих" для интеграции. Но решения не под продукт тоже существуют, тот же J2EE никто никуда не отменял.

Ну и далее, по вашему "глупому списку":
- "K1. Наличие встроеных в СУБД Web технологий/реализаций."
Вот их и сравнивайте.

- "K2. Возможность использовать другие Web-технологии вместе с СУБД"
Везде любые. Это не критерий. Проявив должное количество изобретательности, можно интегрировать козла и осла, особенно если количество промежуточных связей не оговаривается.
Проще говоря, возможность есть всегда во всем. Практический смысл эту возможность применять - вот что интереснее.

- "K4. Встроеные в СУБД технологии XML"
Как уже говорили - нет особого смысла считать этот критерий важным для веб. Он равновероятно может быть и важен, и неважен, в зависимости от конкретики. Более того, его можно сделать таковым, или наоборот, не делать таковым. Кому какие веб-технологии больше нравятся.

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

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

Дальше было лениво, если честно.
Определитесь для начала всёж-таки с вопросом, ЧТО и ПО КАКИМ ПРИЗНАКАМ вы собрались сравнивать. Дальше в разы легче будет.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Сравнение СУБД в сфере Web-приложений
    #35307109
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ!

А может кто-нибудь дать рекомендации по выбору между связкой:

1. PHP+Oracle
2. JSP+Oracle

Предполагается разрабатывать систему с нагрузкой 1000 concurrent requests per second.

Таблицы в БД могут достигать 50000000 записей.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35307243
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maximpr1111Народ!

А может кто-нибудь дать рекомендации по выбору между связкой:

1. PHP+Oracle
2. JSP+Oracle

Предполагается разрабатывать систему с нагрузкой 1000 concurrent requests per second.

ит депендс.
если речь о сайте, что за логика у сайта, какие либы понадобятся (графики, ajax и т.п.)? в общем случае на PHP/Zend быстрее получится разработка, и шевелится apache+php/zend побыстрее, если
1. вся логика в pl/sql
2. пхп занимается только отрисовкой хтмл и проверкой инпута
3. подобран адекватный задаче MVC фреймворк
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35307403
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cпасибо за ответ!

И еще не поскажет кто, какая должна быть "железка" под Oracle при такой нагрузке и объеме БД.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35307490
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maximpr1111Предполагается разрабатывать систему с нагрузкой 1000 concurrent requests per second.

Таблицы в БД могут достигать 50000000 записей.
...
И еще не поскажет кто, какая должна быть "железка" под Oracle при такой нагрузке и объеме БД.А сколько денег выделено на "железку"?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35307546
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*PlusА сколько денег выделено на "железку"?

Какие еще деньги? Это же типичный очередной мегапрожект, призванный
заткнуть за пояс гугль с ютьюбом одновременно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35307567
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторУ Microsoft есть бесплатный вариант SQL Server?
есть.

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

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

И, наконец, веб-проекты бывают разные. Одно дело электронный магазин (php+mysql), другое дело какой-нибудь портал на сотни тысяч пользователей. Причем, не факт что для второго может потребоваться Оракл.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35307734
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторУ Microsoft есть бесплатный вариант SQL Server?
есть.
какие-то глюки или с форумом, или у меня с браузером.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35308071
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL*Plus maximpr1111Предполагается разрабатывать систему с нагрузкой 1000 concurrent requests per second.

Таблицы в БД могут достигать 50000000 записей.
...
И еще не поскажет кто, какая должна быть "железка" под Oracle при такой нагрузке и объеме БД.А сколько денег выделено на "железку"?

Денег достаточно. Я рассматриваю построение системы на "брендовом" железе (HP?,IBM?,Sun?). Вполне отдаю себе отчет, что под подобную нагрузку под базой должен быть очень серьезный и дорогой сервер (планирую даже сделать кластер). Хотелось бы понять какой именно, при чем не хочется брать мощнее, чем необходимо. Если кто может подсказать, чтобы могло бы быть оптимальным, и если возможно в терминах модельного ряда приведенных брендов.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35308202
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov
SQL*PlusА сколько денег выделено на "железку"?

Какие еще деньги? Это же типичный очередной мегапрожект, призванный
заткнуть за пояс гугль с ютьюбом одновременно.
Posted via ActualForum NNTP Server 1.4

Почти. Но с YTube и Google не конкурирует. Совершенно другая область.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35308366
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maximpr1111 SQL*Plus maximpr1111Предполагается разрабатывать систему с нагрузкой 1000 concurrent requests per second.

Таблицы в БД могут достигать 50000000 записей.
...
И еще не поскажет кто, какая должна быть "железка" под Oracle при такой нагрузке и объеме БД.А сколько денег выделено на "железку"? Денег достаточно . Я рассматриваю построение системы на "брендовом" железе (HP?,IBM?,Sun?). Вполне отдаю себе отчет, что под подобную нагрузку под базой должен быть очень серьезный и дорогой сервер (планирую даже сделать кластер). Хотелось бы понять какой именно, при чем не хочется брать мощнее, чем необходимо. Если кто может подсказать, чтобы могло бы быть оптимальным, и если возможно в терминах модельного ряда приведенных брендов.Закажите сайзинг перечисленным вендорам
и/или одной-двум независимым специализированным компаниям.
Попытки решить такой вопрос на форуме несерьезны и забавны...
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35308455
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL*Plus maximpr1111 SQL*Plus maximpr1111Предполагается разрабатывать систему с нагрузкой 1000 concurrent requests per second.

Таблицы в БД могут достигать 50000000 записей.
...
И еще не поскажет кто, какая должна быть "железка" под Oracle при такой нагрузке и объеме БД.А сколько денег выделено на "железку"? Денег достаточно . Я рассматриваю построение системы на "брендовом" железе (HP?,IBM?,Sun?). Вполне отдаю себе отчет, что под подобную нагрузку под базой должен быть очень серьезный и дорогой сервер (планирую даже сделать кластер). Хотелось бы понять какой именно, при чем не хочется брать мощнее, чем необходимо. Если кто может подсказать, чтобы могло бы быть оптимальным, и если возможно в терминах модельного ряда приведенных брендов.Закажите сайзинг перечисленным вендорам
и/или одной-двум независимым специализированным компаниям.
Попытки решить такой вопрос на форуме несерьезны и забавны...

Попытка задать этот вопрос на форуме связана с попыткой получить одно-два независимых мнений от людей, кто может быть имел дело с подобными системами. Естественно, я не рассчитываю использовать данную информацию, как истину в последней инстанции. Естественно эти вопросы будут также задаваться вендорам, но хотелось бы иметь предварительное представление, поскольку предварительную архитектуру хотелось бы составить сейчас, при чем не начиная сразу тратить деньги на проведение экспертиз. В принципе, сейчас пытаюсь составить предварительное представление, что это за проект. Думаю, что лучше будет перед разговором с вендором иметь еще какую-то информацию.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35308621
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несколько Sun Fire E25K Server должны справиться...
+ Дисковые массивы от EMC
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35308649
Z][ANSWER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL*PlusНесколько Sun Fire E25K Server должны справиться...
+ Дисковые массивы от EMC
Не маловато, а вот если взять эти то в самый раз Sun SPARC Enterprise M9000 Server ...:-P
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35311418
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
maximpr1111Народ!

А может кто-нибудь дать рекомендации по выбору между связкой:

1. PHP+Oracle
2. JSP+Oracle

Предполагается разрабатывать систему с нагрузкой 1000 concurrent requests per second.

Таблицы в БД могут достигать 50000000 записей.

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

А то подобная нагрузка уже вызывает некоторый интерес (особенно если все 1000 req per second - пишущие, а логика обработки - сложная), совсем от балды и дешево не сделать.

Впрочем, если это типичный Web, то можно все затраты на лицензии свести к нулю, разных вариантов решений дофига. Да и железо особо крутое тут не нужно, по идее. И много его тоже не нужно.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35311689
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По нагрузке:
думаю, что это будет 800 - чтение, 200 - запись.

Логика элементарная.

Главная опасность это рост объема данных.

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

Имел до этого дело с простыми веб-системами(php+mysql) , системами уровня клиент-банк (WebSphere+Oracle), хранилищами данных(Oracle). К сожалению, ни одна из приведенных выше архитектур здесь не применима.

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

По поводу, middle-tier терзают сомнения, при чем не нашел ни одного подтверждения, что Java производительнее, чем PHP. Хотел узнать еще мнения. Самому ни разу не доводилось сравнивать Java и PHP на сопоставимых нагрузках.

То, что ни удастся решить легко и дешево, мне было понятно с самого начала. Сейчас узнаю мнения сообщества, чтобы убедиться или разубедиться в том насколько не легко и не дешево. Не сгущаю ли я где-то краски.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35312863
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
Попробую ответить на вопросы (и задать свои).

Ну, производительность Java как таковой заметно выше, чем у PHP.
Другое дело, что для Web приложений производительность одного сервера не существенна, проще поставить рядом еще один - если, конечно, все спроектировано по уму. Существенным, скорее, является количество поддерживаемых соединений на сервер, удобство использования всяческих frameworks для генерации html (а их выбор, в свою очередь, зависит от сложности логики на стороне клиента), возможность играть с stateless/statefull, простота поднятия кластера с разными стратегиями loadbalancing/ha.

Далее, что за тяжелые запросы?
Откуда они взялись, какая нужна по ним производительность, нужно ли их делать на уровне БД, а не сервера приложений, не стоит ли их делать на отдельной аналитической БД?

Планируется ли работать с БД напрямую или через какой-нибудь ORM?

Какая стратегия кэширования планируется (memcached, distributed hash, MySQL Cluster) или никакой? Кстати, разумный кэш (если бизнес-логика с ним совместима) может кардинально уменьшить нагрузку на БД и позволит обойтись чем-нибудь простым типа MySQL или DB2 Express C.

Ну и какие сроки проекта :)
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35312938
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Абсолютно согласен с тем, что при Web-приложении производительность одного сервера не существенна.

Сложные запросы: система по предварительному ТЗ содержит достаточно большое количество сущностей (но может не очень, но штук 20 имеется), которые различными способами связаны друг с другом. На ряде страниц будет необходимость отражать сущности вместе со связанными. Можно конечно вытащить все несколькими запросами, но мне кажется, что это тоже не очень хорощо.

Учитывая, что система позицируется, как высоконагруженная с порядка 20000000 зарегистрированных пользователей, а может и выше. Я предполагаю, что хотя бы 20% из них запостят хотя бы одно сообщение в месяц. Таким образом минимальный объем основной таблицы сообщений составит через год 48000000 (а система планирует жить дольше). Архивировать сообщения не хотелось бы. Основным интерфейсом к системе, которым пользуется 100% из заявленных 1000 соединений в секунду будет поиск по этой самой таблице на основе ключевых слов. Ключевые слова для своих сообщений пользователи задют сами и в системе существует справочник этих ключевых слов, которые может расширяться пользователем (предположим 15000 на язык, языков несколько).Каждому сообщению соотвествует одно или несколько ключевых слов. Есть серьезное предположение, что запросы будут настолько разными, что кешировать результаты будет бесполезно. В принципе, кеш планируется по возможности, но как именно пока не думал. Кстати еще одна особенность - учитывая, что это веб-приложения пользователь не может ждать первых результатов дольше минуты.

Подробности системы рассказать не могу, поэтому даю только цифры нагрузки с некими абстрактными сущностями.


Необходимость Application Server в архитектуре. Не знаю, может быть.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35312944
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сроки - 1,5 года с учетом тестирования и маркетинга.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35313009
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
1. Простые запросы почти всегда лучше, чем сложные, даже на БД с хорошим оптимизатором.
Точно стоит подумать, все ли объекты действительно независимы или некоторые можно хранить внутри их "родителей". Стоит подумать о хранении сложных объектов (вытаскиваемых обычно целиком) в сериализованном виде в блобах - так можно сэкономить много select/insert.

2. 48млн. сообщений, даже по килобайту - это всего 48 гигов. С учетом закона Парето (а в Web даже не 20/80, а все 10/90, для нормального кэша сообщений хватит двух memcached машинок с 4 гигами на каждой, что не дорого. Т.е. на вытаскивании сообщений из БД можно хорошо съэкономить.

Если сообщения независимы, то их не обязательно хранить в одной БД, а можно в нескольких с очевидным хэшем. Может дать немалое ускорение (за счет сложности администрирования).

3. Поиск, заметим, не столько по базе сообщений, сколько по базе ключевых слов. Тут многое зависит от количества ключевых слов, сложности запросов и т.п.
Посмотри на то, как устроены поисковые системы, может оказаться, что многоуровневый поиск (типа Яндекса) тут окажется востребован. Да и таблица ключевых слов может поместиться в память - тогда поиск будет быстрым. А уже потом вытаскивать сообщения по списку ключей (из кэша и БД).

Это только очевидные общие мысли, без знакомства с постановкой больше сказать сложно.

4. Если у нас веб, то время отклика больше 1 секунды - это уже плохо.

5. Без сервера приложений - не взлетит :)

6. Если времени всего полтора года, то если команда уже есть - то делать так, как она умеет. А если команды нет, то или искать бюджет на перекупку звезд (дорого) или понимать, что сроки сорвете. Найти команду с опытом высоконагруженных систем меньше, чем за полгода - или не реально или дорого.

7. И найди консультанта с опытом и головой.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35313668
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, насчет команды:

Я рассматриваю возможность аутсорсинга (не оффшор, т.е. люди в офисе) проектной команды.

Никто не подскажет приличную контору, у которой реально есть квалифицированные специалисты для разработки подобных систем и кому можно доверить подобную разработку, не опасаясь за качество и сроки. Плюс сохранение конфидициальности до запуска.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35313841
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maximpr1111Учитывая, что система позицируется, как высоконагруженная с порядка 20000000 зарегистрированных пользователей, а может и выше.
20 миллионов пользователей????
Вот это трава!!!!! Где берете? Сами выращиваете или аутсорс?

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

Кстати, передам чтоли в гугл, что тут конкурент появился, скоро гугл потеснят. При возможности, передам, на неделе :)

-- Tygra's --
Мои фотогалереи тут и тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35313887
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maximpr1111Кстати, насчет команды:

Я рассматриваю возможность аутсорсинга (не оффшор, т.е. люди в офисе) проектной команды.

Никто не подскажет приличную контору, у которой реально есть квалифицированные специалисты для разработки подобных систем и кому можно доверить подобную разработку, не опасаясь за качество и сроки. Плюс сохранение конфидициальности до запуска.
И это в гугл передам - может им заняться щас нечем :)

=======

Кстати, по системе: тут нужен полнотекстовый поиск, на который отдать более мощный сервер, если конечно предполагается, что искать будут совершенно разные слова из очень большого числа этих слов и что на сообщение будут весить много слов, а не 2-3; и сервер чуть проще, который будет по результату поиска отдавать информацию, ибо это легче, чем искать.
Кэшируется тут все без проблем.

ЗЫ Уже пару лет как переделан наш поиск.

-- Tygra's --
Мои фотогалереи тут и тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35313964
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, у гугла пользователей больше (при чем я говорю о зарегистрированных, а не о посетителях), и насколько я знаю, они где-то говорили, что система построена чуть ли не на "персоналках" (хотя не верится). У гугла вообще другая схема нагрузки и другие задачи.

Есть более близкие похожие (по нагрузке, не по сути) системы на просторах Рунета (угадайте кто).

А потеоретизировать в форумах о возможных архитектурных решениях для систем c подобной нагрузкой, почему нет!!! Кстати под описанную мною схему ложится практически любой высоконагруженный форум!!!. Вообщем, условно - форум с 20000000 пользователей и поиском по этому форуму.

Кстати, не могу понять почему сразу Гугл и YouTube. Почему например не mail.ru или sql.ru (более похоже).

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

Скорее всего сделаю прототипы нескольких вариантов и прогоню под нагрузкой. Там и решу.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35314104
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, кроме всего прочего мне нужно было подтверждение (для дальнейшего обсуждения), что заявляемые параметры нагрузки ведут к необходимости построения достаточно тяжелого и дорогого решения, и классический php+MySQL здесь не к месту. У меня эта мысль появилась сразу, но хотелось услышать другие мнения. Я вполне допускаю, что ожидаемая нагрузка завышена раз в 10-20, но нужно же с уверенностью объяснить заказчику, что подобные параметры нагрузки кардинально меняют бюджетные параметры. С другой стороны, если параметры не завышены и достигнут предполагаемых через 1-2 года, то архитектуру надо выбирать так, чтобы она могла быть быстро смасштабирована на более высокую нагрузку с помощью установки большего количества и более мощного оборудования.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35315175
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
php+MySQL должен был отпасть сразу, прямо до рождения :)

IIS + asp.net + MS SQL - лично мое предложение. Из IIS и asp.net делаешь кластер, когда надо, добавляешь. Сервера БД 2 как выше, поиск + остальные данные

-- Tygra's --
Мои фотогалереи тут и тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35316069
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
maximpr1111Кстати, насчет команды:

Я рассматриваю возможность аутсорсинга (не оффшор, т.е. люди в офисе) проектной команды.

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

Ну, есть Devexperts в Питере, они высоконагруженными системами на заказ занимаются. Ищи среди разработчиков биржевых систем - там обычно знают, как с нагрузкой обращаться.

Но сразу следует заметить, что качество в оффшоре появляется, только если с разработкой планируется покупать и сопровождение, причем сопровождение по fixed price. А это бывает не просто редко, а очень редко.

Но полтора года - это все равно очень мало.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35316089
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
tygra[
И конечно же требования к такой мегасистеме нужно выяснять в форуме - ну типа вдруг кто делал уже такую, или может владелец гугла тут случайно объявится, расскажет, скока у них железа и почем.

Да ладно, что там такого крутого особенно.
Количество зарегестрированных - не сильно важный показатель, интереснее количество обращений в секунду. А 1000 запросов в секунду - это вполне себе средненько. Т.е. нужно думать и иметь подходящий опыт, но не более того.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35316131
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
maximpr1111Кстати, кроме всего прочего мне нужно было подтверждение (для дальнейшего обсуждения), что заявляемые параметры нагрузки ведут к необходимости построения достаточно тяжелого и дорогого решения, и классический php+MySQL

Я бы сказал, что параметры такие, что тяжелое и дорогое решение скорее всего не подойдет:)
LAMP в классическом виде тоже с трудом, например, вместо A лучше ставить nginx или litehttpd.

В связке php+MySQL проблемы следующие:
1. Масштабирование MySQL с некоторого момента очень неочевидное. Т.е. придется сразу в архитектуру закладывать шардинг, а тут нужно думать. Ну и надежность сложнее обеспечивать. Т.е. тут я бы (для себя) закладывался бы на бесплатную DB2 с поддержкой на первом этапе и шардингом при сильном росте. Ну и с кэшированием конечно.
Можно еще посмотреть в сторону MySQL Cluster, но надо думать, насколько он совместим с конкретной задачей. Может быть его стоит использовать как кэш.

2. Php, если найти пару действительно хороших php программистов, которые будут контролировать
качество кода - то можно. Иначе большие шансы получить очень запутанный код с высокой стоимостью поддержки. На Java тут обычно чуть попроще, среднее качество кода традиционно выше но и сроки разработки побольше. Еще есть python, но тут, опять, нужно специалистов искать, их пока совсем мало.
Т.е. в качестве языка выбирай тот, качество разработчиков на котором ты (или те, кому доверяешь) сможешь оценить.

3. Windows решения будут слишком дорогие (не стоит забывать о стоимости лицензий на серверную Windows, которая зачастую дороже, чем лицензия на Oracle ;) Так что или Linux или Solaris (особенно если Java).
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35316255
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для построения системы поиска можно использовать
ROSES (Russian Optimized Oracle Secure Enterprise Search)

Ключевое слово - Secure - разграничение доступа.
Если разграничение требуется, то другого продукта, его обеспечивающего, на рынке пока нет.

Почитать о ROSES
Попробовать поиск
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35316415
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
SQL*Plus
Ключевое слово - Secure - разграничение доступа.
Если разграничение требуется, то другого продукта, его обеспечивающего, на рынке пока нет.

Брр, данных о производительности нет, ничего уникального в описании не заметно. Судя по сайту - развод для гос.контор.

(А полнотекстовый поиск с контролем по ACL есть в любой приличной Wiki, в любой системе документооборота, да и прямо в операционной системе. Да и сделать на трехзвенке контроль прав доступа для результатов поиска - задача простейшая, делал неоднократно.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35316441
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
maximpr1111Кстати, кроме всего прочего мне нужно было подтверждение (для дальнейшего обсуждения), что заявляемые параметры нагрузки ведут к необходимости построения достаточно тяжелого и дорогого решения, и классический php+MySQL здесь не к месту.
Вообще, насколько я помню, на php+MySQL крутится и facebook и vkontakte. Там, правда, внутри все довольно сложно, называть это "классическим php+MySQL" я бы не взялся.
Посмотри на презентации, в инете куча описаний архитектуры больших систем.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35320121
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поддержку покупать не планирую, зато планирую покупать тестирование системы при сдаче другой конторой (включая, нагрузку). Думаю, что это должно в результате дать необходимые параметры качества.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35320130
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DPH maximpr1111Кстати, насчет команды:

Я рассматриваю возможность аутсорсинга (не оффшор, т.е. люди в офисе) проектной команды.

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

Ну, есть Devexperts в Питере, они высоконагруженными системами на заказ занимаются. Ищи среди разработчиков биржевых систем - там обычно знают, как с нагрузкой обращаться.

Но сразу следует заметить, что качество в оффшоре появляется, только если с разработкой планируется покупать и сопровождение, причем сопровождение по fixed price. А это бывает не просто редко, а очень редко.

Но полтора года - это все равно очень мало.

Поддержку покупать не планирую, зато планирую покупать тестирование системы при сдаче другой конторой (включая, нагрузку). Думаю, что это должно в результате дать необходимые параметры качества.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35320180
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
Поможет чему?
Что система сама по себе будет удовлетворять ТЗ (если только ТЗ будет достаточно подробно прописано) - да, такое можно проверить.

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

Еще не всякая контора все исходные коды предоставит ;)
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35320921
okdoky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPHНу, производительность Java как таковой заметно выше, чем у PHP. Не всегда выше. Например, Java-многопоточность захлёбывается уже при 10 и более пользователях. При "большом" количестве работающих пользователей, когда в течение 30 мин количество открытых сессий достигает 100, возникают проблемы с оперативной памятью, в которой хранятся сервлеты или стэйтфул-бины. Для неоптимизированной системы бывает очень сложно решить какой сервлет/бин/объект лучше закрыть на время, а какой оставить открытым.
DPHСущественным, скорее, является количество поддерживаемых соединений на сервер, удобство использования всяческих frameworks для генерации html... Использование PHP ЗНАЧИТЕЛЬНО проще и дешевле, чем создание кластеров из нескольких серверов Java-приложений. Универсальные фреймворки и промежуточные звенья (middleware tiers) на порядки замедляют работу системы. Ну а на счет удобства, конечно PHP значительно проще и выразительнее, чем JSP + Java.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35321786
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH SQL*Plus
Ключевое слово - Secure - разграничение доступа.
Если разграничение требуется, то другого продукта, его обеспечивающего, на рынке пока нет.

Брр, данных о производительности нет, ничего уникального в описании не заметно. Судя по сайту - развод для гос.контор.

(А полнотекстовый поиск с контролем по ACL есть в любой приличной Wiki, в любой системе документооборота, да и прямо в операционной системе. Да и сделать на трехзвенке контроль прав доступа для результатов поиска - задача простейшая, делал неоднократно.А если внимательнее почитать об Oracle Secure Enterprise Search ?
По вашему получается, что корпорация Oracle предлагает
продукт, который может легко написать вчерашний студент?!...
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35321950
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
okdokyНе всегда выше. Например, Java-многопоточность захлёбывается уже при 10 и более пользователях. При "большом" количестве работающих пользователей, когда в течение 30 мин количество открытых сессий достигает 100, возникают проблемы с оперативной памятью, в которой хранятся сервлеты или стэйтфул-бины. [quote]
До 200 одновременно открытых сессий вообще никаких проблем, даже на ноубуке и со старым томкатом. Jetty на среднем сервере обещает где-то до 1000 (пока не тестировал, не нужно). А больше, в общем, на стандартных решениях ни у кого нет, нужно уже самому выпендриваться.

А бинами пользоваться в нагруженной системе вообще нельзя.

[quot okdoky]
Использование PHP ЗНАЧИТЕЛЬНО проще и дешевле, чем создание кластеров из нескольких серверов Java-приложений. Универсальные фреймворки и промежуточные звенья (middleware tiers) на порядки замедляют работу системы. Ну а на счет удобства, конечно PHP значительно проще и выразительнее, чем JSP + Java.

Похоже, ты путаешь J2EE с EJB. EJB в нагруженных системах использовать нельзя. А сервлеты (+ уровень представления по вкусу, полегче и попроще, можно сделать самому, JSF не рассматриваем) - вполне производительно, не менее выразительно, чем PHP, обычно существенно надежнее и быстрее.

А кластеры, увы, это единственная возможность для нагруженной 24*7, на чем ее не пиши. Одного сервера всегда мало. Тем более, что производительность на сервер у Java заметно выше, чем у PHP. Просто думать нужно при разработке.

А уж про выразительность и простоту - это вопрос вкуса. На мой взгляд, средний PHP код на порядок ужаснее, нежели средний Java. Есть, правда, люди, умеющие хорошо писать на PHP, но их настолько мало и их так сложно найти... А в среднем - обычные спагетти.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35321959
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
SQL*PlusА если внимательнее почитать об Oracle Secure Enterprise Search ?

В описании Oracle я вижу, чем это решение лучше того, что можно сделать на коленке. Собственно говоря, судя по тому, что я вижу, OSES - это скорее конкурент какому-нибудь внутреннему поисковику, а не средствам предоставления контента по правам из своей БД. Хороший такой поисковик, типа Google Desktop, только по корпоративной сетке.

Но в первой ссылки ничего такого не было;) Тест был рассчитан именно на развод государственных контор (по первому впечатлению). Может, конечно, в глубинах сайта ROSES и есть сравнение с конкурентами и т.п., но ссылка была на первую страницу.

В любом случае, какой смысл предлагать такое решение в указанную разработку - я не понимаю. В задаче я что-то не увидел сформировавшейся корпоративной среды, в которой нужно обеспечивать корпоративный поиск. А если БД проектируется самостоятельно, данные отдаются из БД - то да, нормальный поиск с контролем прав может сделать вчерашний студент. Просто это не та задача, которую, судя по всему, решает OSES.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35321962
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
okdokyНе всегда выше. Например, Java-многопоточность захлёбывается уже при 10 и более пользователях. При "большом" количестве работающих пользователей, когда в течение 30 мин количество открытых сессий достигает 100, возникают проблемы с оперативной памятью, в которой хранятся сервлеты или стэйтфул-бины.
До 200 одновременно открытых сессий вообще никаких проблем, даже на ноубуке и со старым томкатом. Jetty на среднем сервере обещает где-то до 1000 (пока не тестировал, не требовалось). А больше, в общем, на стандартных решениях ни у кого нет, нужно уже самому выпендриваться - причем обходится без пула тредов и без подхода тред на соединение.

А бинами пользоваться в нагруженной системе вообще нельзя.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35322588
okdoky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH До 200 одновременно открытых сессий вообще никаких проблем, даже на ноубуке и со старым томкатом. Jetty на среднем сервере обещает где-то до 1000 (пока не тестировал, не нужно). Не верьте на счет 1000... Вы говорите о реальных задачах или просто об открытых сессиях? Это ваш опыт или мнение? Конечно, цифры зависят от памяти компьютера (а не от ноутбука) и от выполняемых задач. Разделите 1ГБ на 200 пользователей. Получается, в среднем, на пользователя приходится меньше 5МБ ОП. Это кажется очень мало для задач связанных с СУБД. Кроме того, все время будет уходить на сборку мусора, а не на работу.
DPHПохоже, ты путаешь J2EE с EJB. EJB в нагруженных системах использовать нельзя. Мой ответ был навеян сообщением некоего DPH, который писал: Существенным, скорее, является количество поддерживаемых соединений на сервер, удобство использования всяческих frameworks для генерации html (а их выбор, в свою очередь, зависит от сложности логики на стороне клиента), возможность играть с stateless/statefull, простота поднятия кластера с разными стратегиями loadbalancing/ha. Надеюсь это были вы. Разве stateless/statefull не относятся к EJB? Тогда что вы имели в виду?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35322789
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
okdokyНе верьте на счет 1000... Вы говорите о реальных задачах или просто об открытых сессиях? Это ваш опыт или мнение? Конечно, цифры зависят от памяти компьютера (а не от ноутбука) и от выполняемых задач. Разделите 1ГБ на 200 пользователей. Получается, в среднем, на пользователя приходится меньше 5МБ ОП. Это кажется очень мало для задач связанных с СУБД. Кроме того, все время будет уходить на сборку мусора, а не на работу.

1000 - это результаты тестирования (не моего). У меня реально было 200 на стресс тестах без проблем (на одном гиге памяти). На production выше 200 нагрузка не поднималась, но там на сервере много что еще крутится. Да и проблем с памятью и сборкой мусора не наблюдалось. И, кстати, непонятно, зачем на пользователя 5MB? У меня и 100K не требуется.

okdokyРазве stateless/statefull не относятся к EJB? Тогда что вы имели в виду?
Нет конечно, зачем EJB. Это просто два подхода к построению системы - когда есть необходимость в контексте сессии (и требуется уметь ее расшаривать в кластере, синхронизировать и т.п.) и когда такой необходимости нет. Первый сложнее в реализации (думать нужно больше), зато лучше и проще масштабируется. Ну и не всегда можно обойтись без контекста сесси ;(

Я как-то кроме сервлетов ничего не использую ;) Ну, может еще что-нибудь для генерации HTML, но и без этого стараюсь обойтись :)
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35323547
okdoky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH У меня реально было 200 на стресс тестах без проблем (на одном гиге памяти). На production выше 200 нагрузка не поднималась, но там на сервере много что еще крутится. Ну хорошо. Рад, что мое мнение на счет предельно допустимого количества пользователей для надежной работы Java-приложений (~100) не сильно отличается от вашего опыта (~200).
DPH И, кстати, непонятно, зачем на пользователя 5MB? У меня и 100K не требуется. Похоже, мы говорили о разных задачах. Я говорил о хостинге, когда для каждого пользователя вызывается отдельное приложение. Обычно, для каждого приложения, только загружаемые классы занимают 1 МБ-10МБ ОП памяти. Количество загружаемых классов варьируется примерно от 100 до 1000. Количество объектов для каждого класса может быть не один десяток. Особенно много памяти съедает рекурсия.

Вы очевидно говорите об одном приложении для всех пользователей. Тогда речь должна идти уже не о памяти, а о возможности обслуживать соответствующее количество потоков. Больше 100, это - большая нагрузка.
DPH Я как-то кроме сервлетов ничего не использую ;) Ну, может еще что-нибудь для генерации HTML, но и без этого стараюсь обойтись :) При работе с СУБД без генерации HTML не обойтись. Конечно особенно большая проблема с предоставлением ресурсов возникает при генерации отчетов. Кстати на чем работает данный сайт, очевидно не на Java?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35324495
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
okdoky Рад, что мое мнение на счет предельно допустимого количества пользователей для надежной работы Java-приложений (~100) не сильно отличается от вашего опыта (~200). [quot ]
Гм. А как связано число пользователей с числом сессий? Я про число одновременных сессий, пользователей там на пару порядков больше при этом. Просто что-бы у меня было хотя бы 200 одновременных запросов, нужно порядка 2000 запросов в секунду. Такой пик на кластере (т.е. в сумме 4000 в секунду) - вещь редкая и там существенными становятся проблемы отнюдь не Java. Ну а 4000 запроса в секунду - это как минимум 40 000 одновременных пользователей на кластер, 20 000 на машину.

Вообще, число одновременных соединений (точнее, конкурентных тредов на процессор) у Java поменьше, чем у чистого C, но больше, чем на любых других вариантах.

[quot] мы говорили о разных задачах. Я говорил о хостинге
А при чем тут хостинг? Речь шла о задачах с большой нагрузкой на систему и сравнительно большой базой данных. Такие задачи на чужом хостинге не решаются, явно свой кластер.

При работе с СУБД без генерации HTML не обойтись.
А как это связано? То, что должен отдавать сервлет зависит от общей архитектуры системы (работает сервлет фронтом или бэком), конечного потребителя (например, если это вебсервис, то отдается XML), прочих особенностей (например, если потребитель на AJAX, то можно отдавать чистый JSON)

Конечно особенно большая проблема с предоставлением ресурсов возникает при генерации отчетов.
Э, а в чем там проблема? Взял resultset, построил из него то, что нужно. Если проблемы с производительностью - то смотришь, где. Если в БД, то запускай отчеты на отчетной базе (если допустимо) или думай про структуру, оптимизацию, денормализацию, кэширование. Если слишком много данных на страницу - делай пейджинг (как - тоже зависит от ситуации, или средствами БД или через какой-нибудь кэш).

Кстати на чем работает данный сайт, очевидно не на Java?
На MSSQL+С#, наверно. Гм, а чем интересен данный сайт? Нагрузка маленькая, данных мало, логика простая. На чем делать - не существенно. В рунете нагруженных сайтов вообще мало...
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35325723
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPHПохоже, ты путаешь J2EE с EJB. EJB в нагруженных системах использовать нельзя. А можно обосновать этот тезис. А то у нас ваяют система как раз на EJB и ничего работает

Итого почему нельзя использовать EJB в нагруженных системах и что использовать вместо него?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35326050
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
VoDAА то у нас ваяют система как раз на EJB и ничего работает
Нагруженную? Т.е. система спокойно переваривает (с разумным response time) сотни запросов в секунду (из которых заметная часть пишущая), масштабируется и стоит разумных денег? И при этом именно сделана в соответствующей идеологии? Не верю ;)

VoDAИтого почему нельзя использовать EJB в нагруженных системах и что использовать вместо него?
Ну, если коротко - то это уже давно стало общим местом :) Если конкретно, то EJB проектировалась для других задач, в концепции большие проблемы с масштабированием (кроме statless bean - но если кроме них ничего нет - то проще сразу использовать только сервлеты). CMP (или Hibernate, что едино) тормозит. Схема кэширования бинов (кроме плохой масштабируемости) - не самая удобная схема кэширования, в особенности распределенного.
Сложности в ручной оптимизации (что для нагруженных систем нужно почти всегда).

Вместо:
servlets+Spring (только IoC+JDBCTemplate+TransactionTemplate)+JDBC+Memcached+JGroups+MQ(любой, если нужен, но полегче). Ну а что стоит на фронте - это уже отдельно решается.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35326702
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DPH,

правильно ли я понимаю, что при расчете оборудования на данную систему, нагрузка ложится на следующие компоненты оборудования:

1. сервер DB (процессор+память+дисковая подсистема). если DB Express-C, то 2 процессора+4 Gb памяти)
2. Application Server (процессоры+память). Если есть информация, то каким образом можно посчитать необходимую мощность оборудования, если известно количество одновременных подключений на один сервер
3. memcached (память).
4. Веб-сервер (процессор+память)
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35326735
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
maximpr1111DPH,

правильно ли я понимаю, что при расчете оборудования на данную систему, нагрузка ложится на следующие компоненты оборудования:

1. сервер DB (процессор+память+дисковая подсистема). если DB Express-C, то 2 процессора+4 Gb памяти)
2. Application Server (процессоры+память). Если есть информация, то каким образом можно посчитать необходимую мощность оборудования, если известно количество одновременных подключений на один сервер.
3. memcached (память).
4. Веб-сервер (процессор+память)


Примерно так.
Требования к процессору для БД - зависят от профиля запросов.
Нагрузку на ApplicationServer прикинуть можно только эксперементами, там многое зависит от выбранной архитектуры, потерь на кластеризацию и т.п.. Т.е. прикинуть "из воздуха" довольно сложно. Впрочем, цена железа - наименьшая из трат в проекте...
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35326790
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maximpr1111
1. сервер DB (процессор+память+дисковая подсистема). если DB Express-C, то 2 процессора+4 Gb памяти)

если db2 express-c то пол процессора (2 ядра) и только 2 гб RAM.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35326817
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.! maximpr1111
1. сервер DB (процессор+память+дисковая подсистема). если DB Express-C, то 2 процессора+4 Gb памяти)

если db2 express-c то пол процессора (2 ядра) и только 2 гб RAM.

Вроде как на IBМ были написаны указанные выше параметры. Откуда такая информация?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35326857
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maximpr1111

Вроде как на IBМ были написаны указанные выше параметры. http://www.ibm.com/developerworks/ru/forums/dw_thread.jsp?forum=19&thread=1703&cat=2] Откуда такая информация?

http://www.ibm.com/developerworks/db2/library/techarticle/0301zikopoulos/0301zikopoulos1.html]Отсюда.
это цифры походят на устаревшую версию там были более щадящие ограничения, так что не факт, что завтра IBM снова не передумает и не урежет еще сильней.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35326864
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35326872
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35326972
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maximpr1111DPH,

правильно ли я понимаю, что при расчете оборудования на данную систему, нагрузка ложится на следующие компоненты оборудования:

1. сервер DB (процессор+память+дисковая подсистема). если DB Express-C, то 2 процессора+4 Gb памяти)
2. Application Server (процессоры+память). Если есть информация, то каким образом можно посчитать необходимую мощность оборудования, если известно количество одновременных подключений на один сервер
3. memcached (память).
4. Веб-сервер (процессор+память)
Я чет не понял - почему пункты 2 и 4 - разные? Это одно и то же, а вебсервер ради вебсервера - каков смысл? Или вы изначально хотите сделать себе больше работы и проблем с ненужным app-сервером, чтобы потом взять за это больше денег? :))
Т.е. IIS + asp.net (к примеру) все_в_одном почему то не устраивают? А почему?

Товарищи, наверное я пропустил страшную тайну, тогда вы мне расскажите - зачем для системы, которая представляет из себя всего лишь немного расширенный форум, необходим апп-сервер??? Только ли для того, чтобы добавить себе проблем как с разработкой, так и с производительностью, или есть что-то еще? :))

-- Tygra's --
Мои фотогалереи тут и тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35327022
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tygra maximpr1111DPH,

правильно ли я понимаю, что при расчете оборудования на данную систему, нагрузка ложится на следующие компоненты оборудования:

1. сервер DB (процессор+память+дисковая подсистема). если DB Express-C, то 2 процессора+4 Gb памяти)
2. Application Server (процессоры+память). Если есть информация, то каким образом можно посчитать необходимую мощность оборудования, если известно количество одновременных подключений на один сервер
3. memcached (память).
4. Веб-сервер (процессор+память)
Я чет не понял - почему пункты 2 и 4 - разные? Это одно и то же, а вебсервер ради вебсервера - каков смысл? Или вы изначально хотите сделать себе больше работы и проблем с ненужным app-сервером, чтобы потом взять за это больше денег? :))
Т.е. IIS + asp.net (к примеру) все_в_одном почему то не устраивают? А почему?

Товарищи, наверное я пропустил страшную тайну, тогда вы мне расскажите - зачем для системы, которая представляет из себя всего лишь немного расширенный форум, необходим апп-сервер??? Только ли для того, чтобы добавить себе проблем как с разработкой, так и с производительностью, или есть что-то еще? :))

-- Tygra's --
Мои фотогалереи тут и тут

В данном случае, я подразумеваю под веб сервером, машину которая отвечает за получение запросов и распределение их между Application Server-ами, которые, так как речь идет о servlet-технологии могут их обрабатывать и без посредников. Т.е веб-сервер эта машина единственной задачей которой является распеределение нагрузки. В первоначальной конфигурации ее может и не быть. Если я не прав с терминологией, то поправьте меня. Выбор не а пользу Windows, связан с тем, как правильно подметил DPH, что цены их лицезий на серверные операционки соревнуется с Oracle.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35327066
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
имхо в таких проектах - чем проще, тем лучше, что-то типа такого:

http://www.insight-it.ru/net/scalability/arkhitektura-digg/
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35327109
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!имхо в таких проектах - чем проще, тем лучше, что-то типа такого:

http://www.insight-it.ru/net/scalability/arkhitektura-digg/

А я примерно это и хочу сделать (я где-то видел картинку по этому проекту, там как раз один сервер выделен под распределение нагрузки, множество MySQL и memcached и серверов с приложением на PHP(Application Server)). Только вместо PHP, я таки использую Java (там больше готовых возможностей для разработки высоконагруженных систем). И не готов я рисковать использовать бесплатные БД. Все же с платными БД всегда есть два варианта, а с бесплатными только шардинг.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35327196
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с субд - согласен, но с жава я бы еще подумал, что за инструменты вы к нему собрались использовать ...
с пхп все просто, люди лабают код за еду, поэтому ты и не ожидаешь от них гениальности и внимательно отслеживаешь кто, чем занимается, а вот стандартный жава-девелопер жрет как весь "продажный" отдел но при этом считает, что субд это такой тормозной ящик в который можно послать всего три SQL команды и ему проще утянуть гигабайты данных по эзернету в жава и там их лопатить, т.к. в жава "больше готовых возможностей для разработки высоконагруженных систем".
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35327319
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
Ну, если двух ядер мало, то можно поставить 9.1, а не 9.5
Или, когда двух ядер перестанет хватать, купить поддержку. Или купить ее сразу, благо HADR и репликация нужны сразу, а стоит она копейки.

Насколько я помню, на сервере 2*2 все запустится, просто не будет лишние ядра использовать - что на раннем этапе не страшно.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35327330
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
maximpr1111
В данном случае, я подразумеваю под веб сервером, машину которая отвечает за получение запросов и распределение их между Application Server-ами, которые, так как речь идет о servlet-технологии могут их обрабатывать и без посредников.

А. В этом случае можно подумать о железках - round robin многие умеют делать. Если есть нормальный админ - то выйдет дешевле. Если нет - то все равно проблемы будут.

Я то думал, что ты решил разделить генерацию html и собственно бизнес-логику (так иногда делают, например, накладывая XSL на отдаваемый XML на отдельной машине). Зачастую даже производительнее получается и дешевле.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35329418
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!с субд - согласен, но с жава я бы еще подумал, что за инструменты вы к нему собрались использовать ...
...
...
но при этом считает, что субд это такой тормозной ящик в который можно послать всего три SQL команды и ему проще утянуть гигабайты данных по эзернету в жава и там их лопатить, т.к. в жава "больше готовых возможностей для разработки высоконагруженных систем" .Иногда проще данные обработать на уровне приложение / апп.сервера, чем гробить тупейшими запросами СУБД.

А тянуть "гигабайты данных по эзернету в жава и там их лопатить" это сказки. Никто вменяемый так не делает (кроме случая когда это действительно необходимо).
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35329579
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maximpr1111В данном случае, я подразумеваю под веб сервером, машину которая отвечает за получение запросов и распределение их между Application Server-ами, которые, так как речь идет о servlet-технологии могут их обрабатывать и без посредников. Т.е веб-сервер эта машина единственной задачей которой является распеределение нагрузки. В первоначальной конфигурации ее может и не быть. Если я не прав с терминологией, то поправьте меня. Выбор не а пользу Windows, связан с тем, как правильно подметил DPH, что цены их лицезий на серверные операционки соревнуется с Oracle.
Не понял, кого в первоначальной конфигурации может не быть: вебсервера или аппсервера?
И сколько стоит лицензия на Windows сервер? На чем вы будете делать и сколько это будет стоить? Сколько будет стоить СУБД?

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

По поводу Java и быстрой системы - нюню, этто буддетт оччень быстттро, по эсттоннсски :)

-- Tygra's --
Мои фотогалереи тут и тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35329597
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VoDA
А тянуть "гигабайты данных по эзернету в жава и там их лопатить" это сказки. Никто вменяемый так не делает (кроме случая когда это действительно необходимо).
делают, еще как делают :(
обычно все начинается с кеширования справочников в хибернейте со словами, хибер же лучше заджоинит ...
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35329745
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
tygraИзвините, но если идет речь о системе с количеством пользователей, измеряемым миллионами, и в то же время считать копейки - у вас ничего не получится уже до того, как чего-то начнете.
Не копейки. Для указанной системы стоимость лицензий - самый большой планируемый расход (если не делать систему на, по мере возможности, бесплатных или дешевых решениях). Windows Data Center (да даже и Server 2008 64bit) - это очень дорого.


По поводу Java и быстрой системы - нюню, этто буддетт оччень быстттро, по эсттоннсски :)

Гм, а что, есть хоть одно возражение против скорости Java? Тем более на сервере. Или есть более быстрые промышленные решения (ну, кроме реализации на голом C - да и то, не факт, что будет заметно быстрее и уж точно на порядок дороже в разработке). Как-то я вот смотрю по сторонам, вижу кучу нагруженных сервисов на Java - и не вижу особых проблем с производительностью. Хотя некоторые из них даже и спроектированы не самым удачным способом.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35329754
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
Yo.! VoDA
А тянуть "гигабайты данных по эзернету в жава и там их лопатить" это сказки. Никто вменяемый так не делает (кроме случая когда это действительно необходимо).
делают, еще как делают :(
обычно все начинается с кеширования справочников в хибернейте со словами, хибер же лучше заджоинит ...

Вменяемые - не делают, они вообще не используют ORM на нагруженных системах.
Угу. Использование Java не значит, что не нужно представлять, как работает БД.
Хотя использование БД как простого и эффективного хранилища для большей части задач имеет смысл - тем не менее это не стоит делать через hibernate.
Впрочем, если для справочников нужны join'ы - это уже что-то не правильное.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35329974
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPHВпрочем, если для справочников нужны join'ы - это уже что-то не правильное.Вы что-нибудь про нормализацию данных слышали? Третья нормальная форма? Нет? Не слышали? Заметно.

DPHГм, а что, есть хоть одно возражение против скорости Java? Тем более на сервере. Или есть более быстрые промышленные решенияОракл где-то писал (давно было - ссылку не найду), что PL/SQL в режиме интерпретации в два раза быстрее Явы. А начиная с версии 9i PL/SQL может компилироваться в натив код (через С).
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35330088
mva103
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
читал читал читал....
Моя пилюля:
Я проводил нагрузочное исследование для выяснения нагрузочной способности MSSQL и Oracle. Задача тестирования была в выяснении потолка количества обслуживаемых простых запросов от application layer(делался селект из таблицы в 4 записи). Архитектура была такая
RDBMS<------>(APACHE + PHP) * 4<----------->nginx+ round robin<--------->client * N
К сожалению не могу привести абсолютных цифр, т.к. тестировал для себя, а не для отчета. Результат - oracle в SHARED MODE победил MSSQL 2005 по кличеству обслуженных пользователей. При этом Oracle сложнее в суппорте application layer т.к. апач ЖДЕТ пока оракл таки даст ответ на запрос, что приводит к быстрому переполнению доступных юзеров у апача, а mssql при перегрузке быстро рвал сессию, т.е. возвращал пустой результат. Результат теста - business critical web стучит в оракл. Несмотря на то что лично мне MSSQL обслуживать проще.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35330124
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
Anton DemidovВы что-нибудь про нормализацию данных слышали? Третья нормальная форма?

О, умный какой. Судя по вопросу, ты про 3НФ услышал совсем недавно?
Ты подумай, как-нибудь, на досуге, зачем вообще используются нормальные формы, когда они нужны, когда нет. Подумай, какое отношение третья нормальная форма имеет к задаче загрузки справочников в application layer и оптимальности управления справочниками. Зачем вообще в корпоративных системах используются справочники, как их использование сказывается на производительности.
Ну и на все прочие вопросы, которые после пятой/десятой спроектированной системы обычно уже не возникают. И после этого уже "умные" вопросы задавай.
Ах, да, и где там внутри справочника нужны join'ы ;)


Оракл где-то писал (давно было - ссылку не найду), что PL/SQL в режиме интерпретации в два раза быстрее Явы. А начиная с версии 9i PL/SQL может компилироваться в натив код (через С).
Очень хотелось бы посмотреть на ссылку. А то Java, вообще говоря, чистому C уступает максимум на десятки процентов, а зачастую и превосходит. Может, это про Java 1.0 было? Так с тех пор много воды утекло. В общем, надо посмотреть, что именно Oracle мерял и для чего - а то если меряли для рекламы использования хранимых процедур, то PL/SQL и C мог бы превзойти, дурное дело не хитрое.
P.S. Кстати, Java уже довольно давно автоматически компилится в нативный код (если это окупится при выполнении). См. JIT.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35330126
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
mva103
Я проводил нагрузочное исследование для выяснения нагрузочной способности MSSQL и Oracle. Задача тестирования была в выяснении потолка количества обслуживаемых простых запросов от application layer(делался селект из таблицы в 4 записи). Архитектура была такая
RDBMS<------>(APACHE + PHP) * 4<----------->nginx+ round robin<--------->client * N
К сожалению не могу привести абсолютных цифр, т.к. тестировал для себя, а не для отчета

Было бы, конечно, интересно посмотреть на результаты теста (численные) - хотя бы примерно.

Но, честно говоря, зачем application layer усиленно ходить к БД с такими запросами, да еще и в таком режиме. Кэш делу не помог бы? Или данные менялись через БД, в обход application layer? И в основном сверялись версии данные в кэше с данными в БД? Т.е. какую задачу решает такое массовое обращение?

И в таком случае правильно ли было использовать схему "тред на запрос"? Если основное, что делают треды - это ждут ответа от БД? Может, использовать схему однопоточной последовательной обработки было бы лучше? Правда, конечно, кодировать это существенно сложнее и думать нужно гораздо больше (и не знаю, можно ли это вообще сделать на PHP).
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35330168
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2DPH
У вас несколько односторонний взгляд на вещи. БД - для хранения и обработки данных. Она проектируется и живёт по своим правилам, отличным от того, что вы делаете на уровне приложения, особенно java-приложения.
Я это к тому, что справочники должны храниться в базе нормализованными и "разворачиваться" при помощи "джойнов" в удобоваримый для application layer вид. А вы уже можете кешировать результаты этой выборки, а не сырой селект из таблиц. Проблемы здесь не вижу.

Ещё меня смутило ваше предложение DPHИли данные менялись через БД, в обход application layer? Звучит так, как будто это вас удивляет и возмущает. Я вас правильно понял?


P.S.
Выступления под анонимом дают вам ложное чувство безнаказанности, переходящее в хамство. А это всё же технический форум. Пожалуйста, будьте более профессиональным в своих сообщениях и адекватным в использовании "ты" и "вы".
Код: plaintext
1.
--
Per rectum ad astrum
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35330302
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH tygraИзвините, но если идет речь о системе с количеством пользователей, измеряемым миллионами, и в то же время считать копейки - у вас ничего не получится уже до того, как чего-то начнете.
Не копейки. Для указанной системы стоимость лицензий - самый большой планируемый расход (если не делать систему на, по мере возможности, бесплатных или дешевых решениях). Windows Data Center (да даже и Server 2008 64bit) - это очень дорого.
Так где же примеры расчетов то? Где цена win-решения, где другая цена? Или цифр не знаете, но просто религия не позволяет windows использовать?

mva103читал читал читал....
Моя пилюля:
Я проводил нагрузочное исследование для выяснения нагрузочной способности MSSQL и Oracle. Задача тестирования была в выяснении потолка количества обслуживаемых простых запросов от application layer(делался селект из таблицы в 4 записи). Архитектура была такая
RDBMS<------>(APACHE + PHP) * 4<----------->nginx+ round robin<--------->client * N
К сожалению не могу привести абсолютных цифр, т.к. тестировал для себя, а не для отчета. Результат - oracle в SHARED MODE победил MSSQL 2005 по кличеству обслуженных пользователей. При этом Oracle сложнее в суппорте application layer т.к. апач ЖДЕТ пока оракл таки даст ответ на запрос, что приводит к быстрому переполнению доступных юзеров у апача, а mssql при перегрузке быстро рвал сессию, т.е. возвращал пустой результат. Результат теста - business critical web стучит в оракл. Несмотря на то что лично мне MSSQL обслуживать проще.
Результаты без цифр, без конфигураций и т.д. - это типа "мамой клянусь" :))

Тем более, на сколько пользователей больше обслужил Оракл - на 1, 2, 5?

-- Tygra's --
Мои фотогалереи тут и тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35330697
mva103
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторБыло бы, конечно, интересно посмотреть на результаты теста (численные) - хотя бы примерно.
К сожалению рад бы помочь - но нету цифр, а собирать второй раз такую систему только ради цифр как то некошерно :)
автор
Но, честно говоря, зачем application layer усиленно ходить к БД с такими запросами, да еще и в таком режиме. Кэш делу не помог бы? Или данные менялись через БД, в обход application layer? И в основном сверялись версии данные в кэше с данными в БД? Т.е. какую задачу решает такое массовое обращение?
У меня были проблемы с вебприложениями - когда большой поток клиентов на один из сайтов укладывал базу и все начинало безбожно тормозить. Клиенты 99.999% обычно читали, а не писали. Т.е. база большее время работает на select'ы чем на изменение данных. Поэтому такой тест и проводил.

авторИ в таком случае правильно ли было использовать схему "тред на запрос"? Если основное, что делают треды - это ждут ответа от БД? Может, использовать схему однопоточной последовательной обработки было бы лучше? Правда, конечно, кодировать это существенно сложнее и думать нужно гораздо больше (и не знаю, можно ли это вообще сделать на PHP).
Тред апача инициирует TCP/IP соединение к субд (уже жрет кучу времени и ресурсов), посылает СУБД запрос, ждет ответа, потом отваливается. Если ответ долго не приходит - то тред висит и только по таймауту отпадает. Такая история в случае с ораклом приводила к неработоспособности всего application layer и с ней проводится борьба тюнингом лоадбалансера и апачей :).


авторРезультаты без цифр, без конфигураций и т.д. - это типа "мамой клянусь" :))
Тем более, на сколько пользователей больше обслужил Оракл - на 1, 2, 5?
Ну конфигурации были более чем достаточные, смею вас уверить :). А что касается цифр - тест проводился не для публикации, не для того чтобы потом на форумах кричать "ААААА оракл поборол мсскл, мсскл г*вно!". А для того чтобы построить наежную и живую аппликуху. У меня хватает серверов ораклиных и MSSQL (вендоры софта используют только MSSQL). Ядро мы выстроили на оракл (хотя логичней бы было конечно для преемственности использовать решение Microsoft). У обеих субд есть масса достоинств и недостатков и каждая хороша для своих целей. Для heavy load www по моему скромному мнению хорош оракл.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35330706
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DPH
Вменяемые - не делают, они вообще не используют ORM на нагруженных системах.

ну и много твоих вменяемых хотя бы в России/СНГ забубенивших нагруженную систему на жабе ? чо-то на top.mail.ru я таковых не наблюдаю.

DPH
Впрочем, если для справочников нужны join'ы - это уже что-то не правильное.
DPH
Ну и на все прочие вопросы, которые после пятой/десятой спроектированной системы обычно уже не возникают. И после этого уже "умные" вопросы задавай.
ахтунг ! ниосиливший сомучитель сейчас нас всех научит как нужно проектировать
это должно быть занимательно !
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35330784
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.! VoDA
А тянуть "гигабайты данных по эзернету в жава и там их лопатить" это сказки. Никто вменяемый так не делает (кроме случая когда это действительно необходимо).
делают, еще как делают :(
обычно все начинается с кеширования справочников в хибернейте со словами, хибер же лучше заджоинит ...ХЗ если product owner говорит "мамой клянусь справочник будет меньше 100 записей", а запросов его использующий много... то может иметь смысл доделывать именно этот джойн на клиенте.

Зачем int значение - внешний ключ разворачивать в nvarchar(1024) на сервере, если сам клиент обладает этой информацией.


преждевременная оптимизация - корень всех бед.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35330800
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPHВменяемые - не делают, они вообще не используют ORM на нагруженных системах.Большинство систем создаваемых на любом языке - не нагруженные. А за счет hibernate софто-присатели хотят уменьшить время программирования, а значит понизить себестоимость.


DPHВпрочем, если для справочников нужны join'ы - это уже что-то не правильное.А как вы собираетесь использовать справочник по ссылке через внешний ключ НО не джойнясь при этом???
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35331076
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
Anton Demidov
У вас несколько односторонний взгляд на вещи. БД - для хранения и обработки данных. Она проектируется и живёт по своим правилам, отличным от того, что вы делаете на уровне приложения, особенно java-приложения.

Все верно, конечно. Но если мы проектируем сразу трехзвенку (а такое часто случается), то стоит учитывать и возможности/ограничения БД и возможности/ограничения AppLayer'а - тогда всем будет проще. Увы, обычно в проекте или хорошо знают БД или хорошо умеют работать с Java/PHP/C# - в результате появляются странные решения.

Anton Demidov
Я это к тому, что справочники должны храниться в базе нормализованными и "разворачиваться" при помощи "джойнов" в удобоваримый для application layer вид. А вы уже можете кешировать результаты этой выборки, а не сырой селект из таблиц. Проблемы здесь не вижу.

В общем, конечно, да. Но смотри(те), для обычных звездочек (таблица с данными, куча классификаторов через искусственные, например, ключи) при таком решении мы получим:
1) Для каждого запроса нужно делать несколько join'ов по всем таблицам справочников (обычно редко изменяемых)
2) Для каждого типа запроса на AL придеться: получать очередную звезду, вытаскивать и переводить в соответствующие Java(например) объекты все полученные сущности (как факты, так и каждый из классификаторов). При этом есть некоторые проблемы - например, придумать всегда одинаковую (для простоты кодирования) схему именования алиасов для разных объектов.
В любом случае нужно будет дополнительное кодирование и сложно делать code reuse.

Есть другой вариант:
Все в БД хранится так же, но AL выбирает только нужные факты, без join на справочники.
Справочники (в уже удобном виде) живут в кэше AL (стратегии можно разные придумать - lazy loading, загрузка при старте и т.п. - зависит от размера справочника и много другого). Связывание id с конкретным объектом делает уже сервер приложений. Кстати, зачастую может выяснится, что привязывать объект к справочнику внутри и не нужно.

Нарушений нормализации - нет, но и лишних join'ов - тоже нет. Работает быстрее, кода нужно писать меньше. Это - стандартная практика.

Кстати, я первый пост про join понял в другом ключе - что необходимы join "внутри" справочника - а это уже не совсем правильная вещь.



Ещё меня смутило ваше предложение DPHИли данные менялись через БД, в обход application layer? Звучит так, как будто это вас удивляет и возмущает. Я вас правильно понял?

Ага. Так как требования к производительности разумно решать через кэширование (да и кодировать так зачастую проще). Но при этом возможность изменить БД в обход AL приводит к большим затратам на синхронизацию кэша с БД. Стандартной практикой для трехзвенок является запрет на изменение БД не через стандартные средства AL. Если делается иначе - то нужно точно понимать, почему.

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




Выступления под анонимом дают вам ложное чувство безнаказанности, переходящее в хамство. А это всё же технический форум. Пожалуйста, будьте более профессиональным в своих сообщениях и адекватным в использовании "ты" и "вы".

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

P.S. С "ты" и "вы" все довольно сложно, это очень индивидуальная особенность. Если есть конкретные пожелания по обращению, то постараюсь их выполнить.
Умолчания, увы, практически не действуют - на разных форумах, в разных ветках, для разных людей действуют разные условности обращений.


--
Per rectum ad astrum[/quot]
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35331543
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
Yo.!
ну и много твоих вменяемых хотя бы в России/СНГ забубенивших нагруженную систему на жабе ? чо-то на top.mail.ru я таковых не наблюдаю.

А как ты отличаешь написанные на JAVA от обычного LAMP? Вообще информация о архитектуре почти всегда NDA.

В РФ вообще мало сколь-нибудь нагруженных систем и меньшая часть из них на top.mail.ru.
Но значительная часть сервисов Яндекса, например, живет на Java, в том числе и сильно нагруженные.
Из не только РФ систем, с которыми знаком - есть биржевые системы (а это - уже 50+K событий в секунду), букмекерские сайты. Из крупных сайтов (хотя это уже не просто нагруженные, а очень нагруженные системы) - eBay.

По моему опыту, сайты, выросшие из мелких студенческих проектов - LAMP. Те, что сразу проектировались под высокую нагрузку - Java или C/С++.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35331568
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
VoDAБольшинство систем создаваемых на любом языке - не нагруженные. А за счет hibernate софто-присатели хотят уменьшить время программирования, а значит понизить себестоимость.

Ага. Я не в малейшей степени не отрицаю полезность hibernate - у него хоть и не безумно широкая, но очень популярная сфера применения. Но вот в нагруженных системах не стоит использовать.

DPHВпрочем, если для справочников нужны join'ы - это уже что-то не правильное.А как вы собираетесь использовать справочник по ссылке через внешний ключ НО не джойнясь при этом???[/quot]
Ты в своем предыдущем посте описал именно то, что я имел в виду - сборку на клиенте (да и то, если нужно).
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35331714
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DPH
А как ты отличаешь написанные на JAVA от обычного LAMP? Вообще информация о архитектуре почти всегда NDA.

В РФ вообще мало сколь-нибудь нагруженных систем и меньшая часть из них на top.mail.ru.

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

DPH
Но значительная часть сервисов Яндекса, например, живет на Java, в том числе и сильно нагруженные.

Яндекс поиск это Perl и C++ остальные сервисы имхо там не шибко популярны в народе.

ЗЫ. кеширование справочников не самое страшное, пораженный ООП мозг подавляющего большинства (согласен, не всех) java-девелоперов не пытается оперировать множествами, повсюду работа с одним объектом. просто на фоне пхп-кодера от java-человека обычно ожидаешь мягко говоря большего...
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35331924
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
Ну, не все так печально.
Просто основной поток java разработки идет не на рынок РФ. А на западе большой нагруженный сайт, который сразу таковым проектируется - с большой вероятностью делается на Java.

Вообще, тут нужно отделять сверхнагруженные системы (это где-то от единиц тысяч изменений данных в секунду - большие почтовики, большие соц.сети). Они редко планируются таковыми, вырастают из LAMP и их архитектура, в общем, очень похожа (что получится в качестве языка (PHP обычно - так как вырастают из наколенного софта), memcached тысячами штук, сложная работа с файловыми системами, самописные БД (или MySQL в сотнях штук) и т.п.).
Таких систем мало, это все штучные вещи.

Есть гораздо более распространенный вид систем, отягощенных нагрузкой.
Это где-то от сотен запросов на чтение в секунду, сотни пишущих транзакций в секунду в пиках. Тут уже, с одной стороны, точно есть сложности с БД, необходима хорошая масштабируемость, цена на лицензии на "взрослый" софт очень существенна. Таких делается много, в том числе и на Java или C# - так как это вполне "заказные" вещи и нагрузка планируется заранее.

И вот на рынке аутсорсинга найти Java архитекторов, понимающих, как делать подобные системы, отягощенные нагрузкой - можно. Разработчиков, в общем, тоже не сложно. Найти PHPшников, умеющих делать хорошо и нагружено, в общем, не легче и уже не дешевле.

Кстати, нагруженные сервисы в Яндексе есть и на Java.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35331950
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
Yo.!ЗЫ. кеширование справочников не самое страшное, пораженный ООП мозг подавляющего большинства (согласен, не всех) java-девелоперов не пытается оперировать множествами, повсюду работа с одним объектом. просто на фоне пхп-кодера от java-человека обычно ожидаешь мягко говоря большего...
Справочники кэшировать как раз полезно :) И работа с одним объектом иногда (иногда) вполне оправдана.
А единственное, что я жду от любого разработчика - это здравый смысл и огонь в глазах. Остальному и научить можно. Другое дело, что даже таковых приходится искать долго и стоят они не дешево.

Вообще, основной плюс среднего джависта - это написание более читабельного кода и привычка с опаской относится к спагетти. Такие бывают и среди PHPшников, но реже.
К тому же основной поток аутсорса по java дает довольно сомнительные привычки. Впрочем, с другими языками не лучше.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35332157
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Из своего достаточно серьезного опыта общения PHP-программистами, пытаюсь представить себе PHP-программиста рядом со словом "шардинг" и "кеширование" и честно мне страшно, хотя наверное бывает иначе, но как сказала одна моя знакомая: "Когда человек программируя на PHP достигает некоторого уровня он уходит в Java или C#, т.к. там платят больше". Именно по этой причине сложно найти хорошего PHP-программиста, обычно они уже бывшие.

Кстати, еще один вопрос (по лицезированию): правильно ли я понимаю, что веб-системы можно строить на пользовательских лицензиях, и использовать одно соединение с базой на несколько веб-соединений или есть какая-то "засада"?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35332171
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DPH Anton DemidovВы что-нибудь про нормализацию данных слышали? Третья нормальная форма?

О, умный какой. Судя по вопросу, ты про 3НФ услышал совсем недавно?
Ты подумай, как-нибудь, на досуге, зачем вообще используются нормальные формы, когда они нужны, когда нет. Подумай, какое отношение третья нормальная форма имеет к задаче загрузки справочников в application layer и оптимальности управления справочниками. Зачем вообще в корпоративных системах используются справочники, как их использование сказывается на производительности.
Ну и на все прочие вопросы, которые после пятой/десятой спроектированной системы обычно уже не возникают. И после этого уже "умные" вопросы задавай.
Ах, да, и где там внутри справочника нужны join'ы ;)


Кстати, при разработке баз данных для высоконагруженных систем обычно применяется денормализация и не используются встроенные в СУБД механизмы поддержки целостности данных. Когда я занимался нагрузочным тестированием для одного очень известного банка именно таким образом проводилась оптимизация системы под нагрузку.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35332211
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPHТы в своем предыдущем посте описал именно то, что я имел в виду - сборку на клиенте (да и то, если нужно).Обратная ситуация: есть БД обо всех жителях России (это пример).
Тогда справочник фамилий может иметь порядки 10 - 100 млн. записей. Тащить это на Апп. сервер дорого и неэффективно, к тому же есть и другие справочники. Потому скорее всего нужно обрабатывать на сервере.

Потому нужно понимать что делаешь и зачем.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35332393
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maximpr1111Кстати, при разработке баз данных для высоконагруженных систем обычно применяется денормализация и не используются встроенные в СУБД механизмы поддержки целостности данных. Я бы осторожнее использовал термин "обычно". Отказ от foreign key в высоконагруженной системе - это одно (добровольное согласие проверять целостность связей вручную с возможным геморроем по востановлению). Денормализация для улучшения производительности высоконагруженной системы - это совсем другое. Это же получается перенос части нагрузки с ЦПУ на дисковую систему. Странно, очень странно.
maximpr1111Когда я занимался нагрузочным тестированием для одного очень известного банка именно таким образом проводилась оптимизация системы под нагрузку. Какая была СУБД?
DPHСтандартной практикой для трехзвенок является запрет на изменение БД не через стандартные средства AL. Если делается иначе - то нужно точно понимать, почему. Запрет на изменения справочников в БД - согласен. Изменения БД в общем - нонсенс (пакетная обработка как пример).
По остальным вопросам мы, похоже, достигли консенсуса.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35332493
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
VoDAОбратная ситуация: есть БД обо всех жителях России (это пример).
Тогда справочник фамилий может иметь порядки 10 - 100 млн. записей. Тащить это на Апп. сервер дорого и неэффективно, к тому же есть и другие справочники. Потому скорее всего нужно обрабатывать на сервере.
Потому нужно понимать что делаешь и зачем.
Угу, понимать точно нужно ;) Универсальных решений нет.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35332505
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
Anton DemidovДенормализация для улучшения производительности высоконагруженной системы - это совсем другое. Это же получается перенос части нагрузки с ЦПУ на дисковую систему. Странно, очень странно.
Ну, всяческие закэшированные в БД промежуточные результаты больших выборок - это, в общем, денормализация и снижает нагрузку на дисковую систему как раз. Других видов денормализации что-то не вспомню.

Anton Demidov Запрет на изменения справочников в БД - согласен. Изменения БД в общем - нонсенс (пакетная обработка как пример).
Зависит от стратегии кэширования, стратегии хранения и т.п. Иногда, конечно, приходится допускать и прямое изменение БД, но в среднем - страшно. Например, если я храню предвычисленные остатки, то пакетная вставка данных по операциям в БД мне очень дорого обойдется.
Когда такое нужно - приходится создавать очень специальные способы для пакетной вставки, готовить эти пакеты хитрым образом. Т.е., по сути, создание на сервере приложений специальной команды пакетной вставки :)

Длительные размышления о хранении данных как сервисе - опущены ;)


По остальным вопросам мы, похоже, достигли консенсуса.
Ага.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35332811
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anton Demidov maximpr1111Кстати, при разработке баз данных для высоконагруженных систем обычно применяется денормализация и не используются встроенные в СУБД механизмы поддержки целостности данных. Я бы осторожнее использовал термин "обычно". Отказ от foreign key в высоконагруженной системе - это одно (добровольное согласие проверять целостность связей вручную с возможным геморроем по востановлению). Денормализация для улучшения производительности высоконагруженной системы - это совсем другое. Это же получается перенос части нагрузки с ЦПУ на дисковую систему. Странно, очень странно.


Под денормализацией подразумевается, что в ряде случаев проще пойти на хранение избыточных данных в БД (справочник вместе с данными) чтобы ускорить выборку данных и уменьшить количество запросов к БД.Например, в базе есть справочник людей и некие записи о них в другой таблице. Можно перенести информацию о человеке напрямую в таблицу с записями, что позволит ускорить выборку данных и избежать join-ов для извлечения информации о человеке. Если данных о пользователе не много, то увеличение затрат дискового пространства небольшее, а увеличение проиводительности выборки данных существенное. Но это противоречит правилам нормализации.

Вообщем, это достаточно творческий процесс, и при принятии решений учитывается очень много факторов. Просто я хотел сказать, что когда начинается проектирование баз под высоконагруженные системы многие устоявшиеся представления о правилах проектирования переворачиваются с ног на голову. При чем оптимизация идет под конкретную СУБД. Там был Oracle.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35338806
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что бы моё молчание не расценили как согласие отвечу.

DPH . Пакетная обработка на application сервере - только для маленьких объёмов. Проблемы производительности заставят вас перенести обработку непосредствено не сервер. Если у вас не было таких проблем - значит у вас не было больших объёмов (больших относительно аппаратных возможностей серверов). Например, я сейчас работаю над системой, которая обработала 4.8Тб в апреле. Оракл 10.2, Линукс 64бит, Интел.

maximpr1111 .
Выигрыш от такого типа денормализации можно получить, но он потеряется с ростом размера таблицы. А таблицы склонны расти со временем ... И ещё меня смутили ваши слова чтобы ускорить выборку данных и уменьшить количество запросов к БД - звучит так, как будто вы отдельным запросом делаете выборку из справочника. А что, сразу одним селектом нельзя вытащить на апп сервер ваши данные?
Код: plaintext
1.
--
Per rectum ad astrum
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35340296
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторя сейчас работаю над системой, которая обработала 4.8Тб в апрелеПосчитал и получилось ~ 8 Мб/с при 8 часовом рабочем. Негусто... Свитч на 100 Мбит/с за 10 баксов и то быстрее данные обрабатывает :) При этом размер его внутренней БД невелик, даже самодельной БД достаточно :)
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35341484
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
этот свич данные не хранит и не обрабатывает историю
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35341520
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dan BlackПосчитал и получилось ~ 8 Мб/с при 8 часовом рабочем. Негусто... Свитч на 100 Мбит/с за 10 баксов и то быстрее данные обрабатывает :) При этом размер его внутренней БД невелик, даже самодельной БД достаточно :)
Немного нестандартный ход, но тем не менее он показывает осознание вами проблемы с производительностью у Явы.
Ява - не универсальный инструмент. Для массовой обработки больших объёмов данных он не подходит.

Позвольте небольшое отступление в оффтоп.
Яву продвигают Sun и IBM - т.е. производители железа. С чего они получают доход: с продажи компилятора Явы или супер-пупер числомолотилки? Вот и подумайте, насколько они заинтересованы в оптимальности скомпилированного кода.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35341590
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton DemidovНемного нестандартный ход, но тем не менее он показывает осознание вами проблемы с производительностью у Явы.
Ява - не универсальный инструмент. Для массовой обработки больших объёмов данных он не подходит.
Позвольте небольшое отступление в оффтоп.
Яву продвигают Sun и IBM - т.е. производители железа. С чего они получают доход: с продажи компилятора Явы или супер-пупер числомолотилки? Вот и подумайте, насколько они заинтересованы в оптимальности скомпилированного кода.
Просто из Вашего поста неясно, что за данные и в чём заключается их обработка, поэтому я написал первое, что пришло в голову :)
Опять же всё вышесказанное очень зависит от типов данных и способов их обработки.
(ОФФ: пример, простая утилита, написанная на яве парсит гигабайтный файл за 20-30 секунд на моём домашнем не особо мощном компьютере. Парсер, написанный на С, работает в 1,5 - 2 раза быстрее. Программа на яве кушает памяти в 1,5 больше программы на С. Разница небольшая, учитывая сколько вкусностей несёт вместе с собой Java)
Понятно, что ява не является универсальным инструментом для всего и вся. Но выбор инструмента для конкретной задачи всегда является компромиссом между возможными решениями. А критерии, на основе которых происходит выбор, обычно зависят от возможностей выбирающего и ограничений, накладываемых требованиями. И если после сложения плюсов и минусов будет выбрана ява для обработки данных, то значит будет использоваться ява, а если будет выбран С++, то будет использоваться С++. И все будут довольны, так как требования выполняются.
Про Sun и IBM ничего сказать не могу, так как не интересовался их политикой. Но, думаю, у них, конечно, есть свой интерес в этом деле.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35342082
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаю и удивляюсь - чего только люди не придумают, чтобы усложнить жизнь себе и системе :)

-- Tygra's --
Мои фотогалереи тут и тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35342119
Sgt.Pepper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dan Blackпоэтому я написал первое, что пришло в голову :)
Виктор Степанович, Вы?..
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35342120
maximpr1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dan Black Anton DemidovНемного нестандартный ход, но тем не менее он показывает осознание вами проблемы с производительностью у Явы.
Ява - не универсальный инструмент. Для массовой обработки больших объёмов данных он не подходит.
Позвольте небольшое отступление в оффтоп.
Яву продвигают Sun и IBM - т.е. производители железа. С чего они получают доход: с продажи компилятора Явы или супер-пупер числомолотилки? Вот и подумайте, насколько они заинтересованы в оптимальности скомпилированного кода.
Просто из Вашего поста неясно, что за данные и в чём заключается их обработка, поэтому я написал первое, что пришло в голову :)
Опять же всё вышесказанное очень зависит от типов данных и способов их обработки.
(ОФФ: пример, простая утилита, написанная на яве парсит гигабайтный файл за 20-30 секунд на моём домашнем не особо мощном компьютере. Парсер, написанный на С, работает в 1,5 - 2 раза быстрее. Программа на яве кушает памяти в 1,5 больше программы на С. Разница небольшая, учитывая сколько вкусностей несёт вместе с собой Java)
Понятно, что ява не является универсальным инструментом для всего и вся. Но выбор инструмента для конкретной задачи всегда является компромиссом между возможными решениями. А критерии, на основе которых происходит выбор, обычно зависят от возможностей выбирающего и ограничений, накладываемых требованиями. И если после сложения плюсов и минусов будет выбрана ява для обработки данных, то значит будет использоваться ява, а если будет выбран С++, то будет использоваться С++. И все будут довольны, так как требования выполняются.
Про Sun и IBM ничего сказать не могу, так как не интересовался их политикой. Но, думаю, у них, конечно, есть свой интерес в этом деле.

Вмешаюсь в данный спор, и напомню, что первоначальной задачей о которой шла речь является веб-приложение. Так что при выборе инструмента речь скорее идет о выборе между Java, PHP, C#(ASP.Net). C++ конечно мощный инструмент и приложение написанное на нем будет самым оптимальным и производительным, но какое количество человеко-часов надо затратить для написания на нем веб-приложения, учитывая, что начинать придется с написания http-сервера.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35342121
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraЧитаю и удивляюсь - чего только люди не придумают, чтобы усложнить жизнь себе и системе В большинстве случаев люди хотят упростить жизнь себе в краткосрочной перспективе, не задумываясь о будущем ;-)
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35342135
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maximpr1111Вмешаюсь в данный спор, и напомню, что первоначальной задачей о которой шла речь является веб-приложение. Так что при выборе инструмента речь скорее идет о выборе между Java, PHP, C#(ASP.Net). C++ конечно мощный инструмент и приложение написанное на нем будет самым оптимальным и производительным, но какое количество человеко-часов надо затратить для написания на нем веб-приложения, учитывая, что начинать придется с написания http-сервера.Вообще, топик о выборе СУБД ;-) но чем ближе 10 страница, тем сложнее придерживаться темы :)
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35344506
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maximpr1111Вмешаюсь в данный спор, и напомню, что первоначальной задачей о которой шла речь является веб-приложение. Так что при выборе инструмента речь скорее идет о выборе между Java, PHP, C#(ASP.Net). C++ конечно мощный инструмент и приложение написанное на нем будет самым оптимальным и производительным, но какое количество человеко-часов надо затратить для написания на нем веб-приложения, учитывая, что начинать придется с написания http-сервера.
Я забыл написать, что я пишу и обработку данных и интерфейсный слой на PL/SQL (modplsql + Apache AKA Oracle HTTP Server). БД выступает в роли апп сервера. У меня DWH - данных много, пользователей мало.

Если пользователей много и хочется разгрузить БД от непрофильной нагрузки, то ставится апп сервер от Оракла, который, естественно, понимает, что с этим делать. Пример - сайт поддержки Оракла https://metalink.oracle.com/metalink/plsql
Обратите внимание на plsql в URL-e - это и есть PL/SQL cartridge.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35345106
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov[quot maximpr1111] Пример - сайт поддержки Оракла https://metalink.oracle.com/metalink/plsql
Обратите внимание на plsql в URL-e - это и есть PL/SQL cartridge.

Это только у меня окно с логином загружается по 30 секунд?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35345321
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, не только - у них канал в какой-то заднице проходит :))

-- Tygra's --
Мои фотогалереи тут и тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35345849
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
Anton Demidov Пакетная обработка на application сервере - только для маленьких объёмов. Проблемы производительности заставят вас перенести обработку непосредствено не сервер. Если у вас не было таких проблем - значит у вас не было больших объёмов (больших относительно аппаратных возможностей серверов). Например, я сейчас работаю над системой, которая обработала 4.8Тб в апреле. Оракл 10.2, Линукс 64бит, Интел.

Сложно сказать что-то конкретное, не зная, что скрывается под словом "обработала".
Например, для моих задач "обработка" - это просто пишущая транзакций (ну и куча бизнес-логики вокруг). Для характерных объемов, 4.8TB в месяц - это где-то 2000 раздельных транзакций в секунду. Основные тормоза будут при записи в БД, решаются или хорошим планированием размещения или шардингом (в зависимости от задачи).
Основная беда - что при обычной неравномерности загрузки 2000 в среднем значит до 100 000 в секунду в пике. Сделать кластер (машин из 4х), который держит 100K запросов в секунду можно, а вот с БД уже будут проблемы.

Это если делать OLTP и по одной транзакции на операцию (причем, для моих задач, еще и serializable).

Если же DWH, то вообще никаких проблем не вижу, это вообще не нагрузка для Java. Ну, разве что под обработкой подразумевается построение 3D схем. Точно также не вижу проблем на стороне ApplicationServer готовить пакеты для загрузки в БД.


P.S. Для трейдинговых систем (на Java) нормальным является нагрузка в 50K запросов в секунду на сервер - и ничего, живут вполне спокойно. Основные беды, по общению с разработчиками, не в скорости Java, а в пропускной способности сети, работе с сокетами в ОС и т.п.
P.P.S. У меня сравнимый объем (единицы TB в месяц) генерится логов. И их обработкой занимается вообще shell+awk (в т.ч) - и никаких проблем не возникает.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35346156
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
Anton Demidov
Я забыл написать, что я пишу и обработку данных и интерфейсный слой на PL/SQL (modplsql + Apache AKA Oracle HTTP Server). БД выступает в роли апп сервера. У меня DWH - данных много, пользователей мало.

Если пользователей много и хочется разгрузить БД от непрофильной нагрузки, то ставится апп сервер от Оракла, который, естественно, понимает, что с этим делать. Пример - сайт поддержки Оракла https://metalink.oracle.com/metalink/plsql
Обратите внимание на plsql в URL-e - это и есть PL/SQL cartridge.

Гм. Если я правильно помню, сервер приложений от Оракла - это, в девичестве, Orion. Штука для отладки удобная, но в production под нагрузкой лучше не выставлять, тормозит и при нагрузках подглюкивает.

Кстати, а сколько запросов в секунду (простых get) держит интерфейсный слой на PL/SQL? В расчете на ядро?

И, все-таки, что такое "обработала"? И почему обработка в Оракле будет быстрее, чем на сервере приложений (какие причины?)

P.S.
Metalink, насколько я помню, вообще отличается изрядной задумчивостью - это уже не раз обсуждалось. В чем причина - не знаю (и даже не буду строить предположений). Кстати, а metalink разве не на APEX сделан?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35346650
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPHКстати, а сколько запросов в секунду (простых get) держит интерфейсный слой на PL/SQL? В расчете на ядро? Я не тестировал производительность за ненадобностью - у меня же не OLTP.

DPHИ, все-таки, что такое "обработала"? И почему обработка в Оракле будет быстрее, чем на сервере приложений (какие причины?)Немного расскажу, что же моя система делает. Признаю, что это оффтоп, посыпаю голову пеплом и пр. Но раз уж спросили ...
Это File Management + Workflow + ETL System. Около 200 банков со всего мира шлют нам информацию в 7 основных классах - Authorization, Payment, Posting, Cardholder, etc. Моя задача сопоставить файл с его владельцем, разархивировать/раскриптовать, идентифицировать начинку, собрать статистику соответствующую этому типу, сделать 10% сэмпл с преобразованием в стандартный формат, собрать статистику по нему, заархивировать получившиеся файлы и раскидать их по дискам. Естественно, куча отчётов как по управлению файлами, так и по анализу статистики.
Проблемы в том, что на 200 клиентов приходится 100 различных форматов данных. Файлы могут быть в ASCII или EBCDIC, с символом(-ами) перевода строки и без. Есть уникумы, что шлют EBCDIC файлы с "0x0Ah" кодом. Да, файлы приходят обработанные zip/gzip/rar/jar/pgp/tar во всевозможных комбинациях. И приходят они как в электронном виде, так и на физических носителях.
Это было так, вступление. Получив входной файл в готовом виде, я создаю External Table на него и начинаю гонять SQL запросы для сбора статистики (900 статистик для Auths, 800 - Posts, 300 - Cards. Они группируются по возможности, но всё равно получается 140 запросов для Auths к примеру). Помимо простейших типа Min/Max, собирается статистика, требующая двух проходов - это Mode, Count Unique, Percentiles etc. Есть ещё "хитрые" статистики, типа "частоты разницы между двумя датами". Интерфейс программы принимает любые Oracle Expressions включая вызовы пользовательских функций для определения статистики.
Почему это работает быстрее без явы и апп сервера?
Установка PARALLEL 4 для внешней таблицы сокращает время скана таблицы в 4 раза (точнее 3,8)

Используются внутренние функции Оракла для сбора статистики - работает быстро, parallel-enabled, etc - не надо "изобретать велосипед" на Яве.

Отсутствуют промежуточные слои и связанные с ними расходы.

Некоторые файлы очень большие - 250Гб

DPHMetalink, насколько я помню, вообще отличается изрядной задумчивостью - это уже не раз обсуждалось. В чем причина - не знаю (и даже не буду строить предположений). Кстати, а metalink разве не на APEX сделан? У меня одинаковая скорость работы как Metalink-a, так и MSDN (к примеру). APEX появился значительно позже Metalink-а.

P.S.
Сама база у меня всего 400Гб. Сервер: 2x(XEON 4 Cores), 32Gb RAM, SAN для БД, NAS для файлов. Есть ещё 3 серверочка послабже для "зипования" файлов - они управляются с сервера БД.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35347447
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
[offtop on]
Угу, внушает. Но, честно говоря, я вообще не понимаю, зачем тут БД?
Единственное, зачем я вообще вижу пользу от использования Oracle - возможность указывать алгоритм анализа статистики "снаружи" в текстовом виде. Правда, подозреваю, что относительно общего объема проекта затраты на разработку DSL (или реализацию своего class-loader для алгоритмов) потеряются.

Ну, может быть Oracle дает какие-то преимущества при оптимизации последовательных чтений (например, эффективно кэширует на уровне блоков, эффективнее быстрых файловых систем), но сомневаюсь, что это действительно существенно.
А параллельность на Java обеспечивается легко... Да и стоимость десятка лишних машинок с Java будет меньше лицензии на один сервер с Oracle ;)

Задача похожа на обработку больших логов, ну так у меня, с использованием банального gzip+awk для поиска числа уникальных по сложному критерию (и некоторых статистик дополнительно), без малейшей оптимизации, получается что-то около 20 mb в секунду (под виртуальной машиной при этом). И, подозреваю, ограничивается больше диском, чем процессором.
[offtop off]

Ну, MSDN - это тоже не показатель, тормозит неимоверно. Антиреклама .NET ;)
Впрочем, sun.com особой шустростью тоже не отличается, хотя и побыстрее :)
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35348217
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну осталось явно изобразить выводы о том, что СУБД обрабатывает данные (таблицы) быстрее, чем что-либо другое, использующее эти же данные из этой же СУБД
Эврика!


Прогресс у джавистов? Таки не всегда нужно все джавой обрабатывать? Может напомнить, что 2008 год на дворе? Вдруг это тайна? :)

-- Tygra's --
Мои фотогалереи тут и тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35349048
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov
Почему это работает быстрее без явы и апп сервера?
Установка PARALLEL 4 для внешней таблицы сокращает время скана таблицы в 4 раза (точнее 3,8)

Используются внутренние функции Оракла для сбора статистики - работает быстро, parallel-enabled, etc - не надо "изобретать велосипед" на Яве.

Отсутствуют промежуточные слои и связанные с ними расходы.

Некоторые файлы очень большие - 250Гб
Привет!

А есть ли связанность между входными файлами или каждый обрабатывается независимо. От этого и зависит архитектура.

Если зависимость есть и "жесткая" (т.е. следующий файл можно обработать только после полной обработки предыдущего), то это крутить можно только на одном сервере - логика переносится на него и делается как описал автор выше. Масштабирование уткнется в ограничения этого одного сервера.

Если связанности нет или она "слабая" , то можно крутить все на раздельных серверах. Данные обрабатываются на каждой ноде независимо. Файл деархивируются, подкладывается в локальную СУБД и на ней лопатится. В итоге получается массово-параллельная система. Масштабируется тупо линейно.


А истина скорее всего где-то посередине
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35349134
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraНу осталось явно изобразить выводы о том, что СУБД обрабатывает данные (таблицы) быстрее, чем что-либо другое, использующее эти же данные из этой же СУБД
Эврика!


Прогресс у джавистов? Таки не всегда нужно все джавой обрабатывать? Может напомнить, что 2008 год на дворе? Вдруг это тайна? :)Ура товарисчи!!! На дворе 2008 год.

Осталось узнать, что Java уже давно в стандартном комплекте имеет СУБД. И может легко грызть данные и через SQL и через Java-процедуры запущенные в адресном пространстве СУБД.

А вдруг это тоже тайна?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35349210
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нифигасе, к Джаве в комплект теперь Оракл дают? В нагрузку? Вот прогресс то дошел :))

-- Tygra's --
Мои фотогалереи тут и тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35349430
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraНифигасе, к Джаве в комплект теперь Оракл дают? В нагрузку? Вот прогресс то дошел :)) э... а чё пошел регресс и в качестве СУБД только Oracle великий и ужасный работать может?

я что-то пропустил ???
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35349493
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вряд ли MS SQL к джаве кладут :))

-- Tygra's --
Мои фотогалереи тут и тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35351599
The_ShadoW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Регресс явно пошел, но видимо пока не настолько сильно. Количество СУБД резко упало, но не до одной, а до двух. Майкрософту тоже на регресс пофиг :)
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35352052
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О как! Я тут DB2 вовсю использую, а она уже регрессировала?! А мужики-то не знают...
Уж всяко в тройку входит, причем ИМХО по совокупности не на 3-м месте :) Это не говоря о семействе WebSphere...
Так что IBM-у тоже на этот регресс как-то пофиг. Если в России мало DB2 - не значит, что его мало в мире. Кстати, родные дрова есть под Java, .Net, PHP и прочие Perl'ы. Java кладут в комплект - на ней в т.ч. SP и UDF пишут.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35352502
The_ShadoW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тсссс! Не пугайте человека, а то про следующую не успевшую еще пока регрессировать СУБД мы так и не узнаем
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35352621
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPHНу, может быть Oracle дает какие-то преимущества при оптимизации последовательных чтений (например, эффективно кэширует на уровне блоков, эффективнее быстрых файловых систем), но сомневаюсь, что это действительно существенно. А параллельность на Java обеспечивается легко... Зря сомневаетесь - у Оракла очень развитые алгоритмы параллельной обработки, которые у меня нет ни малейшего желания заново изобретать. Особенно интересно становится жить, когда размер рабочих данных превышает возможности ОЗУ.

tygraНу осталось явно изобразить выводы о том, что СУБД обрабатывает данные (таблицы) быстрее, чем что-либо другое, использующее эти же данные из этой же СУБДДля Оракла это именно так. DB2 и MSSQL не имеют до такой степени развитый внутренний язык, потому и нет разницы или даже медленнее.

VoDA Если связанности нет или она "слабая" , то можно крутить все на раздельных серверах. Именно так. Я этот вариант держу "про запас" на случай катастрофической нехватки ресурсов. Впрочем, учитывая стоимость лицензии на Oracle Enterprize Edition, может быть дешевле купить более быстрый сервер. Для меня лицензия уже была в наличии - мигрировали со старого Sun Fire V880.

FavnЕсли в России мало DB2 - не значит, что его мало в мире.
Про проценты популярности здесь (англ). DB2 много в мире, но это в основном DB2 AS/400 (iSeries). DB2 LUW только начала набирать популярность, но в процентном соотношении её всё ещё очень мало.

FavnJava кладут в комплект - на ней в т.ч. SP и UDF пишут.Почему IBM поддержмвает Яву я писал здесь. Учитывая убогость родного SQL-PL и несовестимость синтаксиса для разных платформ (AS/400, LUW, MainFrame), выбора особо то и нет.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35352890
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
Anton DemidovПочему это работает быстрее без явы и апп сервера?
Установка PARALLEL 4 для внешней таблицы сокращает время скана таблицы в 4 раза (точнее 3,8)


Не понял, а как мы можем сканировать данные быстрее, чем отдает дисковая система/сеть?
Если я правильно понял, что такое PARALLEL в Oracle, то время обработки файла (суммарное по процессорной мощности) от PARALLEL все равно не изменится, а так как файлов у тебя много, то на пропускную способность системы это не повлияет . Впрочем, реализовать такую вещь на Java не долго. Может, есть и уже реализованное (никогда не смотрел в эту сторону).


Используются внутренние функции Оракла для сбора статистики - работает быстро, parallel-enabled, etc - не надо "изобретать велосипед" на Яве.


Как я уже написал, смысла в параллельности тут не много. Да и объем кода для реализации стандартных функций Оракла не очень большой. Да, кстати, время экономится только разработки, не исполнения - оно от "велосипедности" не зависит.


Отсутствуют промежуточные слои и связанные с ними расходы.


Похоже, что если это делать на Java, то можно много что сэкономить - например, приведение к стандартному виду и первый проход статистики делать в одном проходе (т.е. файловый поток идет на вход последовательности обработчиков, в результате имеем преобразованный файл и все первые статистики). Одно это может ускорить работу где-то в два раза.

Так что, есть у меня подозрение, что система на Java (с какой-нибудь ZFS и под Соляркой) будет работать и побыстрее. Другое дело, что ее разработка может обойтись несколько дороже, но тут уже нужно считать по конкретному ТЗ и прикидывать стоимость лицензий ;)


Для Оракла это именно так. DB2 и MSSQL не имеют до такой степени развитый внутренний язык, потому и нет разницы или даже медленнее.

Ну, у DB2 свой PL/SQL-подобный язык появился только для проектов миграции с Оракла/MSSQL, до этого обходились обычным С. Ну и с 8ой, кажется, версии добавили JAVA, REXX и прочие радости. И это, вообще-то, именно внутренние языки. Так что выразительность у DB2 будет, пожалуй, и существенно выше, чем у Oracle.
MSSQL в качестве встроенного использует С#, там тоже все хорошо с языком. А уж качество компиляторов для DB2/MSSQL, подозреваю, просто несравнимо c Oracle.

Но решение с application layer должно быть побыстрее совсем по другим причинам ;)

P.S. Антифродовая система?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35354022
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anton DemidovDB2 и MSSQL не имеют до такой степени развитый внутренний язык, потому и нет разницы или даже медленнее.Всегда считал, что внутренним языком СУБД является SQL. А он в DB2 уж никак не "менее развитый". SQL/PL вполне достаточен для бизнес-логики на уровне БД, не понимаю, чего именно там жизненно не хватает. Разве что рекурсия ограничена - так рекурсивные данные лучше молотить в SQL. Врядли кто будет спорить, что обработка данных в SQL куда эффективнее процедурных извращений (хотя бы с точки зрения оптимизатора). И в конце концов, DB2 тесно интегрирована с Java-машиной (как и с .Net под Win), так что реализовать можно любые схемы работы.
Anton DemidovDB2 много в мире, но это в основном DB2 AS/400 (iSeries). DB2 LUW только начала набирать популярность, но в процентном соотношении её всё ещё очень мало.
Учитывая убогость родного SQL-PL и несовестимость синтаксиса для разных платформ (AS/400, LUW, MainFrame), выбора особо то и нет. Она набирает популярность уже не первый десяток лет :) Разница между DB2 AS/400 и LUV в синтаксисе минимальна - учитывая незначительные ограничения, можно спокойно писать совместимые запросы, т.к. SQL практически идентичен, клиент общий для всех. ИМХО основная причина различных линеек - принципиальная разница в механизмах ОС. Еще раз - не понимаю, в чем именно заключается убогость DB2 SQL-PL с точки зрения СУБД, т.к. ее SQL - один из лучших.

Anton DemidovЯву продвигают Sun и IBM - т.е. производители железа. С чего они получают доход: с продажи компилятора Явы или супер-пупер числомолотилки? Вот и подумайте, насколько они заинтересованы в оптимальности скомпилированного кода.Гениально! Просто раскрыт всемирный заговор. Правда, тогда придется признать, что:
1. На заклание положено все семейство IBM WebSphere, именно на Java в основном базирующееся. На минуточку, оно приносит (вместе с DB2) IBM доход сравнимый с железками.
2. В заговор входит и Oracle - своим Application Server, как раз на J2EE работающим. Интересно, какое железо он производит? Или ему откаты платят?
3. Основной смысл заговора - раскрутка MS .Net как основного конкурента. Видимо, MS все это и проплатил
4. Одновременная поддержка Perl, PHP и т.д. осуществляется как "операция прикрытия".
Вобщем, всегда любил конспирологические измышления за полноту и непротиворечивость
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35354245
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov
VoDA Если связанности нет или она "слабая" , то можно крутить все на раздельных серверах. Именно так. Я этот вариант держу "про запас" на случай катастрофической нехватки ресурсов. Впрочем, учитывая стоимость лицензии на Oracle Enterprize Edition, может быть дешевле купить более быстрый сервер. Для меня лицензия уже была в наличии - мигрировали со старого Sun Fire V880.
Ну вот мы и дошли до сути ))

Стоимость разработки системы состоит из затрат на железо + лицензии + много чего еще в том числе и какие есть специалисты. И переучивать специалистов никто не будет ибо дорого.
Для компании где я работаю НАМНОГО дешевле окажется написать на Java и раскидывать задачи на большое число машин. Скорее всего в вашей компании много DBA & DB-developer-ов, потому дешевле оказывается докупить еще лицензий на Oracle.

Итого:
* есть профи по Oracle / другой СУБД - для бизнеса дешевле сделать на ее основе + докупать серверное железо и лицензии на Oracle.
* Есть посредственности по Java - для бизнеса дешевле сделать на Java + докупить слабые компы и организовать "кластер". Лицензии в этом случае ничего не стоят.

А все эти разговоры Oracle круче Java или наоборот - ИМХО ни о чем. Реализовать можно и на том и на том. А поддерживать то нам с вами
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35354280
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отсутствуют промежуточные слои и связанные с ними расходы.


Прикол как раз в том, что промежуточного слоя может и не быть. Либо Oracle-слой либо Java-слой.
и в том и в другом случае слой один, только он занимается обработкой и анализом.

DPHПохоже, что если это делать на Java, то можно много что сэкономить - например, приведение к стандартному виду и первый проход статистики делать в одном проходе (т.е. файловый поток идет на вход последовательности обработчиков, в результате имеем преобразованный файл и все первые статистики). Одно это может ускорить работу где-то в два раза.

Так что, есть у меня подозрение, что система на Java (с какой-нибудь ZFS и под Соляркой) будет работать и побыстрее. Другое дело, что ее разработка может обойтись несколько дороже, но тут уже нужно считать по конкретному ТЗ и прикидывать стоимость лицензий ;)Это уже варианты улучшения и оптимизации. На первом месте обычно скорость создания и работоспособность ПО.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35354328
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FavnО как! Я тут DB2 вовсю использую, а она уже регрессировала?! А мужики-то не знают...
Уж всяко в тройку входит, причем ИМХО по совокупности не на 3-м месте :) Это не говоря о семействе WebSphere...
Так что IBM-у тоже на этот регресс как-то пофиг. Если в России мало DB2 - не значит, что его мало в мире. Кстати, родные дрова есть под Java, .Net, PHP и прочие Perl'ы. Java кладут в комплект - на ней в т.ч. SP и UDF пишут.
Фишка в том, что не Джаву к СУБД кладут, а наоборот - есть секретная JavaСУБД, которая круче DB2, Оракл и MSSQL (может даже вместе взятых). Так что все мы остались на перроне, а джава-поезд ушел

Но название той СУБД нужно спрашивать у VoDA , это он проговорился о ней :)
Ко мне то у вас какие вопросы? ;)

-- Tygra's --
Мои фотогалереи тут и тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35355193
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDA, Favn и DPH.

У вас "шапочнозакидочное" отношение к сложным задачам. Я посмотрел на вашу статистику постов - никто из вас не показывал большой активности в форума Оракла. Я подозреваю, что PL/SQL вы не знаете на профессиональном уровне. Так как же вы можете рассуждать о его плюсах и минусах?

DPHЕсли я правильно понял, что такое PARALLEL в Oracle, то время обработки файла (суммарное по процессорной мощности) от PARALLEL все равно не изменится От вашего непонимания результаты моих тестов не изменятся - я же ясно написал, что в итоге стало быстрее в 3.8 раза.

DPHДа и объем кода для реализации стандартных функций Оракла не очень большой И с кем я тут спорю?! Да Вы круты! Предложите свои услуги разработчикам MySQL - а то у них что-то всё запарки с производительностью - никак не догонят большую тройку лидеров.
Код: plaintext
1.
--
Per rectum ad astrum
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35355332
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anton DemidovVoDA, Favn и DPH.У вас "шапочнозакидочное" отношение к сложным задачам. Я посмотрел на вашу статистику постов - никто из вас не показывал большой активности в форума Оракла. Я подозреваю, что PL/SQL вы не знаете на профессиональном уровне. Так как же вы можете рассуждать о его плюсах и минусах?Не надо отвечать всем сразу.
1. Я ни разу не высказывал здесь свое отношение к сложным задачам. Тем не менее считаю, что шапкозакидательство - именно решать сложные задачи силами только СУБД, тем более "в сфере Web-приложений" (это на случай, если если кто забыл, о чем эта ветка :) ).
2. Я не показывал никакой активности в форуме Оракла, так как почти с ним не работал. Я не знаю PL/SQL, и мне совсем за это не стыдно. Я вообще недавно на форуме, но давно работаю с СУБД как проектировщик/разработчик, больше всего с DB2 LUV начиная с 7-й версии. Я писал о том, что главное в РСУБД - именно SQL, ну м.б. XQuery/XPath, т.е. декларативные языки. А PL (с любыми его плюсами и минусами) имеет весьма вспомогательное значение, тем более для Web. Кстати, Оракл со мной согласен - иначе зачем бы им внешний Application Server на J2EE? :)
3. У Вас нет ни одного поста в форуме Java. "Я подозреваю, что... Так как же вы можете..?" :)
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35355421
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPHP.S. Антифродовая система?Да
FavnНе надо отвечать всем сразуЯ не люблю флудить сообщениями. Мне так удобнее.

FavnТем не менее считаю, что шапкозакидательство - именно решать сложные задачи силами только СУБД, тем более "в сфере Web-приложений" (это на случай, если если кто забыл, о чем эта ветка :) )Чем больше страниц в обсуждении, тем сложнее придерживаться темы. А я всего лишь хотел упомянуть Oracle PL/SQL как один из инструментов. А хорошее знание матчасти поможет наиболее оптимально распределить нагрузку между разными компонентами. Кстати, у меня не "только СУБД" - есть ещё туча шелл скриптов и несколько программ на С
Favn Favnне понимаю, в чем именно заключается убогость DB2 SQL-PL с точки зрения СУБД, т.к. ее SQL - один из лучших.Я не знаю PL/SQL, и мне совсем за это не стыдно Я пока не пересел с Жигулей на Хонду и не знал, что ВАЗ настолько убог. Всё познаётся в сравнении. Просто запомните моё мнение - если в будущем придётся писать под Оракл на PL/SQL, может оказаться, что я был не так уж и не прав.

FavnА PL (с любыми его плюсами и минусами) имеет весьма вспомогательное значение, тем более для Web.Для начала о значении PL для веба http://www.sql.ru/forum/actualtopics.aspx?search=htp - посмотите пример кода.
Далее то, чего пока нет (или мало) в DB2 - Оракл поставляет почти 200 пакетов. Это некий аналог import * в Яве - используем библиотеки. Работа с TCP/IP, mail, files, очереди и прочее.

FavnКстати, Оракл со мной согласен - иначе зачем бы им внешний Application Server на J2EE? А ещё есть OC4J . Чем больше нагрузка, тем больше требуется усилий и технологий по её обслуживанию. Вырос из бесплатного OC4J - покупай Application Server. Пара TomCat - WebSphere из той же оперы.

FavnУ Вас нет ни одного поста в форуме Java. "Я подозреваю, что... Так как же вы можете..?" :) Я не знаю Яву настолько хорошо, чтобы давать советы другим в том форуме.
По работе я занимаюсь ДБА поддержкой программеров и SQL application tuning. У нас используются Oracle 10g, DB2/400 (5R4), DB2 for zOS 7.1, DB2 for LUW 9.1. На Яве много пишут.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35355484
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
Anton Demidov Я подозреваю, что PL/SQL вы не знаете на профессиональном уровне. Так как же вы можете рассуждать о его плюсах и минусах?

Конечно, не знаю. Но, тем не менее, примерно представляя сам язык и понимая, как он обрабатывается и сравнивая его с Java вижу, что java код должен выполняться быстрее. Просто из-за ресурсов, выложенных на ускорение работы именно на Java.

Anton Demidov
DPHЕсли я правильно понял, что такое PARALLEL в Oracle, то время обработки файла (суммарное по процессорной мощности) от PARALLEL все равно не изменится От вашего непонимания результаты моих тестов не изменятся - я же ясно написал, что в итоге стало быстрее в 3.8 раза.

Время выполнения запроса стало меньше - запросто. Только при этом, вообще говоря, должно было уменьшиться и число одновременно выполняемых запросов (при эффективно загруженной дисковой системе, разумеется). Чудес не бывает, если файл нужно прочитать целиком - то он все равно будет прочитан. Если каждую запись нужно обработать, то какой-нибудь процессор ее все равно обработает.
Если у нас сотни файлов, то от использования PARALLEL общее время обработки не изменится (если, конечно, эффективно используется многопроцессорность)

И с кем я тут спорю?! Да Вы круты! Предложите свои услуги разработчикам MySQL - а то у них что-то всё запарки с производительностью - никак не догонят большую тройку лидеров.

Гм. А зачем нужно реализовывать реляционное представление аналитических функций (кстати, подозреваю, далеко не всех, десятка хватит)? Это действительно сложно. А вот итерационные алгоритмы (а у нас все равно table scan) сделать достаточно легко. Да и найти готовые библиотеки не сложно.


--
Per rectum ad astrum[/quot]
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35355487
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
Anton DemidovDPH. У вас "шапочнозакидочное" отношение к сложным задачам.


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

Просто моя текущая система (одна из), так сложилось, в качестве БД использует Oracle - и я постоянно слышу от DBA (с ссылками на документацию и Кейта), что бизнес-логику эффективнее реализовать внутри БД. Правда, пояснить, почему так лучше, DBA так и не смог.

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

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

P.S. Последнюю задачу с большим объемом логики внутри БД (MRP в полном объеме с всякими довескам) я делал довольно давно (на MS SQL) и убедился, что БД - плохое место для подобных задач. С тех пор я предпочитаю обработку делать на уровне сервера приложений - и результаты меня удовлетворяют - впрочем, для каждого проекта архитектура делается отдельно и я вполне верю, что иногда проще все делать в БД. У меня просто другие проекты.

Oracle в проекте использую недавно и, честно говоря, сильно опечален этим фактом - с DB2 работать было на порядок проще (что, конечно, говорит скорее о качестве документации, нежели о самом сервере - но найти человека, который может ответить на простой вопрос по Oracle на порядок сложнее, чем найти самому ответ в документации по DB2).
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35356593
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2DPH

что-то не пойму, это же настолько очевидно. апп-сервер это внешний от субд процесс, при запросе вы тащите копию данных через протокол (небойсь еще и TCP/IP) - т.е. самый тормозной и самый не оптимальный путь какой можно придумать для юзания жавы. pl/sql же исполняется в том же адресном пространстве, что и субд и имеет гораздо меньше переключений контекста.

ЗЫ. документация по DB2 - ужасна, помнится искал может ли процедура на С отслеживать изменения в схеме и вообще в каком адресном пространстве выполняется. не нашел даже намеков на концепции. хуже документация имхо только у FB.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35356715
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPHПросто моя текущая система (одна из), так сложилось, в качестве БД использует Oracle - и я постоянно слышу от DBA (с ссылками на документацию и Кейта), что бизнес-логику эффективнее реализовать внутри БД. Правда, пояснить, почему так лучше, DBA так и не смог.
DBA значит не знал этого - просто слышал :)

авторP.S. Последнюю задачу с большим объемом логики внутри БД (MRP в полном объеме с всякими довескам) я делал довольно давно (на MS SQL) и убедился, что БД - плохое место для подобных задач. С тех пор я предпочитаю обработку делать на уровне сервера приложений - и результаты меня удовлетворяют - впрочем, для каждого проекта архитектура делается отдельно и я вполне верю, что иногда проще все делать в БД. У меня просто другие проекты.
Просто вы не умеете готовить бизнес-логику внутри БД :)
Проще делать не внутри БД только то, что там сделать невозможно. Все остальное проще внутри. Уж поверьте - большой опыт и в обычных системах, и в веб. 90% работ с данными делается только в СУБД, и правлю я тоже все в СУБД, это к тому же проще.


-- Tygra's --
Мои фотогалереи тут и тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35356951
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anton DemidovА я всего лишь хотел упомянуть Oracle PL/SQL как один из инструментов. А хорошее знание матчасти поможет наиболее оптимально распределить нагрузку между разными компонентами.А получилось, что это - наилучший инструмент :) Лучше всего нагрузка распределяется, если каждый сервер выполняет свои задачи. Заодно куда выше гибкость, расширяемость и взломоустойчивость. Хотя, если кроме генерации HTML Ораклу у вас заняться ну совсем нечем...
Anton Demidov Я пока не пересел с Жигулей на Хонду и не знал, что ВАЗ настолько убог. Всё познаётся в сравнении. Просто запомните моё мнение - если в будущем придётся писать под Оракл на PL/SQL, может оказаться, что я был не так уж и не прав. А вот это зря - DB2 LUW - ну никак не ВАЗ по отн. к Oracle. Достаточно на tpc.org заглянуть. Кто там Хонда, а кто, скажем, Subaru, еще не известно :)
К счастью, я сам решаю, на чем будет писаться наш софт, и PL/SQL как app-сервер я использовать не буду, т.к. не считаю правильным мешать мух с котлетами. Хотя, от сумы, от тюрьмы и от заказчика с остранностями... :)
Anton DemidovДля начала о значении PL для веба - посмотите пример кода.Зачем мне смотреть примеры, генерирующие HTML из PL/SQL, если мне не нравиться сама схема превращения СУБД в процедурный HTML-сервер? Я сам могу привести пример непроцедурной генерации XML из DB2-запроса и скармливания его XSLT внутри той же DB2 для получения хоть HTML, хоть PDF. Считаю, что это как эффективнее, так и концептуальнее. СУБД должен обрабатывать реляционные и XML (при наличии native storage) данные.
Anton DemidovДалее то, чего пока нет (или мало) в DB2 - почти 200 пакетов. Это некий аналог import * в Яве - используем библиотеки. Работа с TCP/IP, mail, files, очереди и прочее.Этого нет и, наверно, не будет в DB2, т.к. это ей не нужно. Зачем мне проприентарный аналог Явы, если в DB2 с ядром сервера работает сама Ява? А С++ приложение может работать вообще внутри самого ядра. Вcе, что мне нужно для внешней отн. БД работы на том же сервере, пишется на Java или на C++. У кого больше библиотек - у Java с C++ или у PL/SQL? Чем еще меряться будем? :)
Anton DemidovЧем больше нагрузка, тем больше требуется усилий и технологий по её обслуживанию. Вырос из бесплатного OC4J - покупай Application Server. Пара TomCat - WebSphere из той же оперы.Вот и я о том же - мы с Ораклом и IBM считаем, что почти все можно делать из PL/SQL, но далеко не все нужно. :)
Кстати, для IBM не TomCat - WebSphere, а WebSphere AppServ Community - WebSphere AppServ.

Anton DemidovПо работе я занимаюсь ДБА поддержкой программеров и SQL application tuning. У нас используются Oracle 10g, DB2/400 (5R4), DB2 for zOS 7.1, DB2 for LUW 9.1. На Яве много пишут.Я, скорее, проектировщик систем (с web и без) и "играющий тренер" в их разработке. У нас DB2 LUW, C++ разнообразный, Java, Flash, FireBird по мелочи.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357001
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FavnЭтого нет и, наверно, не будет в DB2, т.к. это ей не нужно. Зачем мне проприентарный аналог Явы, если в DB2 с ядром сервера работает сама Ява? А С++ приложение может работать вообще внутри самого ядра.


не понял, с каких пор процедуры на C++ и Java начали работать внутри ядра db2 ?? для C только пару лет назад компилятор в поставку начали класть. и некий db2 magazine утверждал обратное (в чудо-документации мне ничего на эту тему найти не удалось).
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357013
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton DemidovVoDA, Favn и DPH.

У вас "шапочнозакидочное" отношение к сложным задачам. Я посмотрел на вашу статистику постов - никто из вас не показывал большой активности в форума Оракла. Я подозреваю, что PL/SQL вы не знаете на профессиональном уровне. Так как же вы можете рассуждать о его плюсах и минусах?У вас "шапочнозакидочное" отношение к сложным задачам. Я посмотрел на вашу статистику постов - никто из вас не показывал большой активности в форума Java. Я подозреваю, что Java вы не знаете на профессиональном уровне. Так как же вы можете рассуждать о его плюсах и минусах?

В общем фраза ни о чем. Сойдемся на этом :))

Anton Demidov Я не знаю Яву настолько хорошо, чтобы давать советы другим в том форуме.
По работе я занимаюсь ДБА поддержкой программеров и SQL application tuning. У нас используются Oracle 10g, DB2/400 (5R4), DB2 for zOS 7.1, DB2 for LUW 9.1. На Яве много пишут.
А теперь давайте перейдем к техническим преимуществам использования Oracle / Java для анализа.

Плюсами Oracle являются:
1. наличие большого количества документации по PL/SQL.
2. большое количество DBA / script писателей.
3. именитость платформы на рынке хранения и обработки данных.
4. обкатанность платформы на больших проектах / системах.

Минусы Oracle:
1. Стоимость лицензий.
2. Как следствие 1 покупаются более мощьные машины, чтобы получить ту же мощьность, но на меньшем количестве процессоров.
3. Штатно поддерживает только определенные платформы (RHEL / SLES / Solaris / Win / etc).
4. Труднее научить людей мыслить в реляционном подходе.


Плюсы Java:
1. наличие большого количества документации по языку.
2. большое количество Java developers.
3. нулевая стоимость лицензий.
4. возможность запуска на бОльшем числе платформ (Debian как дополнительный пример).
5. именитость платформы только на рынке обработки данных (для данного случая).
6. Проще раскидывается но множество компьютеров.

Минусы Java:
1. больше программистов Java используют процедурный, а не реляционный подход к обработке данных (бегают циклами), что может приводить к сильному падению производительности.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357032
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!что-то не пойму, это же настолько очевидно. апп-сервер это внешний от субд процесс, при запросе вы тащите копию данных через протокол (небойсь еще и TCP/IP) - т.е. самый тормозной и самый не оптимальный путь какой можно придумать для юзания жавы. pl/sql же исполняется в том же адресном пространстве, что и субд и имеет гораздо меньше переключений контекста.Выше уже обсуждали. Можно работать используя внутреннюю СУБД. тогда и переключений контекста не делается и "адресное" пространство общее. И уж точно безо всякого TCP/IP

К тому же AS можно поставить десяток вместо 1 мега-Oracle. Производительность зависит от радиуса кривизны рук!
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357059
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraПросто вы не умеете готовить бизнес-логику внутри БД :)
Проще делать не внутри БД только то, что там сделать невозможно. Все остальное проще внутри. Уж поверьте - большой опыт и в обычных системах, и в веб. 90% работ с данными делается только в СУБД, и правлю я тоже все в СУБД, это к тому же проще.Простите, а что вы будете делать в web если количество пользователей подойдет к 1 000 000 пользователей. для больших систем почему то чаще выбирают реализацию с АппСервером. Хотя если верить вам, то стоит всю логику перенести в СУБД (пусть и по http тоже она отвечает) и вот оно сщасттЪе
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357073
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!что-то не пойму, это же настолько очевидно. апп-сервер это внешний от субд процесс, при запросе вы тащите копию данных через протокол (небойсь еще и TCP/IP) - т.е. самый тормозной и самый не оптимальный путь какой можно придумать для юзания жавы. pl/sql же исполняется в том же адресном пространстве, что и субд и имеет гораздо меньше переключений контекста.М.б. очевидно для Оракла и совсем не очевидно для DB2. Для DB2 Java, как и C++, может исполняться: фактически внутри сервера; под его управлением, но на выделенной Java-машине; снаружи (апп. сервер) на том же физ. сервере с локальным коннектом (фактически, передача данных через ОП); где угодно через любой сетевой протокол. А насчет PL/SQL - адресное постранство, в котором выполняется интерпретируемый язык - это сильно! :) Думаю, что его интерпретатор - это все-таки группа отдельных процессов/тредов, т.е. для процедур от Java внутри сервера конструктивно он не сильно отличается.
Кстати, следует отличать бизнес-логику (по определению, доп. ограничения, накладываемые на данные и связи между ними) и внешнюю отн. логики БД обработку данных. Бизнес-логика при хорошем SQL не требует особых процедурных наворотов и логично живет внутри БД, и уж точно не требует mail, http и т.д. Внешнюю обработку считаю логичным делать внешним апп. сервером, RDBMS'у и так есть чем заняться.

Yo.!
ЗЫ. документация по DB2 - ужасна, помнится искал может ли процедура на С отслеживать изменения в схеме и вообще в каком адресном пространстве выполняется. не нашел даже намеков на концепции. хуже документация имхо только у FB.Не поверите, но про адресное пространство процедуры на C надо было искать "CREATE PROCEDURE (External) statement", поиск по "create procedure", 4-я строка сверху :)
вот тут , см. FENCED, THREADSAFE, EXTERNAL ACTION и т.д.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357080
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VoDA
Минусы Java:
1. больше программистов Java используют процедурный, а не реляционный подход к обработке данных (бегают циклами), что может приводить к сильному падению производительности.
минусов гораздо больше:

2. оторвоность данных от логики приводит к невозможности полноценно сопровождать код. в оракле при изменении структуры данных, процедуры которых коснулись изменения пометятся инвалидными и будут защищены от запуска. внешняя жава же запустит поломанный код, не подозреваю об изменения в субд и вывалится с экспшеном лишь когда наткнется на ошибочный SQL. последствия не предсказуемы.
3. очень медленно разработка, то что делается в pl/sql одной конструкцией в жава десятки строк, плюс очень многословный язык, разработчик вынужден строчить мегобайты кода.
4. медленно - если это внешний апп сервер, то лишние расходы на память и транспортировку данных, если это в ядре субд (только оракл такое имеет) - много подводных камней и слабая обкатоность решений.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357120
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Favn

1. вы имеете ввиду субд на жава ? их возможности сегодня сильно не дотягивают до оракла 80х, особенно в области тяжелых обработки
2. я против того чтоб оракл замещал веб сервер и генерил хтмл, уровень представления имхо должен быть за пределами оракла, речь идет о бизнес логики.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357141
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот видите на сколько ужасна дока по дб2, вы работая с этой субд не смогли из документации понять даже архитектуры. не расстраивайтесь, когда я задался этим вопросом я тоже потратил несколько дней прочесывая около дб2-шные ресурсы, я нашел в db2 magazine, сейчас покапаюсь в своем архиве, параметры которые вы указали это как раз танцы смягчить оторванность и через чур низкоуровневость С процедур.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357144
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
блин предпоследнее сообщение было к VoDa, а последнее Favn
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357163
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!не понял, с каких пор процедуры на C++ и Java начали работать внутри ядра db2 ?? для C только пару лет назад компилятор в поставку начали класть. и некий db2 magazine утверждал обратное (в чудо-документации мне ничего на эту тему найти не удалось).Для C как минимум с тех пор, как я стал с DB2 работать (v. 7 лет так с 10 назад), для Java - когда ее native поддержку включили в DB2. В прошлом посте промахнулся, см. вот тут :
"If a procedure is registered as FENCED, the database manager protects its internal resources (for example, data buffers) from access by the procedure. All procedures have the option of running as FENCED or NOT FENCED. Only FENCED can be specified for a procedure with LANGUAGE OLE or NOT THREADSAFE."
Процедуры, объявленные как not fenced, для C работают в адресном пространстве сервера, для Java - на используемой им JVM; fenced процедуры - за забором, для Java - на отдельной JVM.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357223
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Favn
"If a procedure is registered as FENCED, the database manager protects its internal resources (for example, data buffers) from access by the procedure. All procedures have the option of running as FENCED or NOT FENCED. Only FENCED can be specified for a procedure with LANGUAGE OLE or NOT THREADSAFE."
Процедуры, объявленные как not fenced, для C работают в адресном пространстве сервера, для Java - на используемой им JVM; fenced процедуры - за забором, для Java - на отдельной JVM.

опять кривая ссылка, опять минус доки дб2 сложно навигать. про фенцед там же четко пишут:
A NOT FENCED stored procedure runs in the same address space as the database manager (the DB2 Agent\'s address space ). это отдельный процесс который запускается для каждой конекции, ядро в другом процессе, мы это как то с gardenman перетерали.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357229
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!вот видите на сколько ужасна дока по дб2, вы работая с этой субд не смогли из документации понять даже архитектуры. не расстраивайтесь, когда я задался этим вопросом я тоже потратил несколько дней прочесывая около дб2-шные ресурсы, я нашел в db2 magazine, сейчас покапаюсь в своем архиве, параметры которые вы указали это как раз танцы смягчить оторванность и через чур низкоуровневость С процедур.Так же ужасны и суровы преподы курсов IBM, на кот. я ходил лет так несколько назад. Это они пороли мне полную чушь, и тоже не читали тот DB2 Magazine, наверно :) Как "оторванная" C-процедура может попортить data buffers сервера (см. выше)?
"Оторванность и низкоуровнивость" (в чем они заключаются?) непричем - эти параметры как и все остальные указывают оптимизатору возможные режимы использования SP или UDF. Кстати,
Yo.!для C только пару лет назад компилятор в поставку начали класть.С каких это пор? Зачем в многоплатформенной поставке СУБД C-компилер? Можно использовать любую среду разработки под нужную платформу. Есть в поставке, правда, add-on к VisualStudio для работы с БД, но к SP и UDF он отношения не имеет, скорее к работе с самой БД из студии. А под Java есть DataStudio на Eclipse, в которой в т.ч. можно писать/отлаживать Java и SQL/PL SP и UDF.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357331
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FavnТак же ужасны и суровы преподы курсов IBM, на кот. я ходил лет так несколько назад. Это они пороли мне полную чушь, и тоже не читали тот DB2 Magazine, наверно :) Как "оторванная" C-процедура может попортить data buffers сервера (см. выше)?

ну давай вместе по косвенным признакам гадать.

DB2 Agent
Description

Monitors database agents and their related applications. An agent is a process or thread that carries out the requests made by a client application. Each connected application is served by exactly one coordinator agent and possibly by a set of subagents. Subagents are used for parallel SQL processing in partitioned databases and on System Modification Program (SMP) machines.

For each database transaction (unit of work) that occurs when the client is connected to a database, an agent requests permission from the database manager to process the transaction.

http://publib.boulder.ibm.com/tividd/td/ITMD/SC23-4727-00/en_US/HTML/db2ref30.htm#HDRRM-AGENT

тхредовая архитектура появилось лишь в прошлом году в 9.5 и только у UDB, я еще в ней сильно не копался.

Favn
"Оторванность и низкоуровнивость" (в чем они заключаются?) непричем - эти параметры как и все остальные указывают оптимизатору возможные режимы использования SP или UDF.

в том что низкоуровневый С и C++ должен самостоятельно следить за памятью и программеру ничего не стоит сделать логическую ошибку которая приведет к memory leak. PL/SQL и Java освобождает программера от этой трудоемкой задачи.

Favn А под Java есть DataStudio на Eclipse, в которой в т.ч. можно писать/отлаживать Java и SQL/PL SP и UDF.
а можно ссылочку на fenced java процедуры ?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357369
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!A NOT FENCED stored procedure runs in the same address space as the database manager (the DB2 Agent\'s address space ). это отдельный процесс который запускается для каждой конекции, ядро в другом процессе, мы это как то с gardenman перетерали.
Процесс для каждого коннекта?! Вообще-то, там сейчас все на thread-ах. Сейчас посмотрел на один из наших серверов под Win - 167 коннектов и 8 процессов, считая db2systray :)
А в пространстве какого процесса SP, по определению делающая внешние отн. БД действия, должна выполняться? Disk i/o, что ли? Ядро - оно из разных процессов состоит. Для fenced процедур запускается отдельный процесс db2fmp. А вот not fenced UDF на C, насколько я помню, как раз внутри собственно ядра работает.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357416
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на тхредах работает лишь 9.5 UDB, который только только появился, т.е. в продакшене вообще их единицы. по 9.5 я не готов разговаривать, может там в связи с тхредами все изменилось, но до 9.5 запускались отдельные процессы на каждый конект, вы с этим не согласны ?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357447
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDA tygraПросто вы не умеете готовить бизнес-логику внутри БД :)
Проще делать не внутри БД только то, что там сделать невозможно. Все остальное проще внутри. Уж поверьте - большой опыт и в обычных системах, и в веб. 90% работ с данными делается только в СУБД, и правлю я тоже все в СУБД, это к тому же проще.Простите, а что вы будете делать в web если количество пользователей подойдет к 1 000 000 пользователей. для больших систем почему то чаще выбирают реализацию с АппСервером. Хотя если верить вам, то стоит всю логику перенести в СУБД (пусть и по http тоже она отвечает) и вот оно сщасттЪе
Йа процитирую не мой, но ответ:
Yo.!2. я против того чтоб оракл замещал веб сервер и генерил хтмл, уровень представления имхо должен быть за пределами оракла, речь идет о бизнес логики.

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

Тадыть гораздо больше гибкости и возможности.
Кстати, про перенести в СУБД (пусть и по http тоже она отвечает) - это ваши фантазии, я такого никогда не говорил и не скажу :)) Хотя тут многие говорят, только наоборот - отдадим апп-серверу и отображение, и обработку данных, а СУБД пусть будет в роли большого dbf - и будет вам щастте :))

Для большого увеличения нагрузки нужно менять архитектуру - разносить обработку разных тяжелых данных на разные СУБД, делать кластер из СУБД и т.д. С веб-серверами тут гораздо проще - их можно добавлять пока не надоест.
Но уж никак тут не поможет апп-сервер сам по себе - добавит больше проблем по сравнению с вышеописанным подходом. Хотя может кто и не жил без проблем, он и не заметит :))

В общем, я не вижу проблем с тем, чтобы отдать только СУБД обработку данных, а веб-апп-серверу - только отображение этих самых данных. Надо отойти от стереотипов джавы - вся обработка только на джаве, субд на джаве (ужос то какой!!!)....

-- Tygra's --
Мои фотогалереи тут и тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357460
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPHПросто моя текущая система (одна из), так сложилось, в качестве БД использует Oracle - и я постоянно слышу от DBA (с ссылками на документацию и Кейта), что бизнес-логику эффективнее реализовать внутри БД. Правда, пояснить, почему так лучше, DBA так и не смог.
Потестируем? Только в новой ветке, а то здесь уже тесно стало.

Предлагаю создать пару таблиц по миллиону записей и сделать с ними что-нибудь (на ваш вкус) из Явы. Я, в свою очередь, напишу аналог на PL/SQL. У вас же Оракл есть - запустите пару раз и результаты тайминга сюда в форум потом на обсуждение.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357492
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!2. оторвоность данных от логики приводит к невозможности полноценно сопровождать код. в оракле при изменении структуры данных, процедуры которых коснулись изменения пометятся инвалидными и будут защищены от запуска. внешняя жава же запустит поломанный код, не подозреваю об изменения в субд и вывалится с экспшеном лишь когда наткнется на ошибочный SQL. последствия не предсказуемы.И да, и нет.

Это если изменения в БД ты делаешь через прямые DDL самой СУБД. Если же у тебя вся схема уложена в Java, то изменение Java-сущьностей заставят тебя изменить процедуры с ними связанные. Хотя соглашусь, что постоянные модификации схемы усложнят разработку.

Yo.!3. очень медленно разработка, то что делается в pl/sql одной конструкцией в жава десятки строк, плюс очень многословный язык, разработчик вынужден строчить мегобайты кода.в общем все равно. вопрос что стоит дороже одна строка на PL/SQL + разработчик + лицензии + etc ИЛИ 10 строк на Java + разработчик + etc (лицензионных плат здесь нет, и цена разработчика может быть меньше).

Yo.!4. медленно - если это внешний апп сервер, то лишние расходы на память и транспортировку данных, если это в ядре субд (только оракл такое имеет) - много подводных камней и слабая обкатоность решений.Во первых не только Oracle. Во вторых можно проводить обработку на апп сервере ВООБЩЕ без СУБД! это вопрос архитектуры.

Да, обработка на апп сервере может требовать больше памяти, НО при нынешней цене разработки ПО стоимость памяти и дополнительных серверов (даже 10-ка) для Java это копейки. А параллелиться система на Java будет намного дешевле - докупил комп, вот еще одна рабочая нода.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357505
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDAМинусы Oracle:
....
4. Труднее научить людей мыслить в реляционном подходе.

Минусы Java:
1. больше программистов Java используют процедурный, а не реляционный подход к обработке данных (бегают циклами), что может приводить к сильному падению производительности.Я считаю ваш пример очень показательным. Он отражает суть проблемы, обсуждаемой в данный момент в этой ветке.
Работая с реляционными данными, программисты на Яве не знают и, следовательно, не могут эффективно использовать SQL для обработки данных. Отсюда и попытки реализовать встроенную в БД логику на стороне клиента. Отсюда и упомянутое tygra отношение к БД как к набору DBF файлов.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357514
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!вы имеете ввиду субд на жава ? их возможности сегодня сильно не дотягивают до оракла 80х, особенно в области тяжелых обработкиКонечно они не дотягивают. Тут главное, что легко можно натыкать еще нод и параллельно обрабатывать данные на множестве систем. Тогда получается или один мега-Oracle или много маломощьных Java машинок. Но Java-app будут масштабироваться линейно в отличии от одной Oracle.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357534
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDA Yo.!вы имеете ввиду субд на жава ? их возможности сегодня сильно не дотягивают до оракла 80х, особенно в области тяжелых обработкиКонечно они не дотягивают. Тут главное, что легко можно натыкать еще нод и параллельно обрабатывать данные на множестве систем. Тогда получается или один мега-Oracle или много маломощьных Java машинок. Но Java-app будут масштабироваться линейно в отличии от одной Oracle.А как они будут синхронизировать свои БД? Или это не важно!?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357535
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov DPHПросто моя текущая система (одна из), так сложилось, в качестве БД использует Oracle - и я постоянно слышу от DBA (с ссылками на документацию и Кейта), что бизнес-логику эффективнее реализовать внутри БД. Правда, пояснить, почему так лучше, DBA так и не смог.
Потестируем? Только в новой ветке, а то здесь уже тесно стало.

Предлагаю создать пару таблиц по миллиону записей и сделать с ними что-нибудь (на ваш вкус) из Явы. Я, в свою очередь, напишу аналог на PL/SQL. У вас же Оракл есть - запустите пару раз и результаты тайминга сюда в форум потом на обсуждение.

Прикоединяюсь + создал новую ветку
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357555
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov VoDA Yo.!вы имеете ввиду субд на жава ? их возможности сегодня сильно не дотягивают до оракла 80х, особенно в области тяжелых обработкиКонечно они не дотягивают. Тут главное, что легко можно натыкать еще нод и параллельно обрабатывать данные на множестве систем. Тогда получается или один мега-Oracle или много маломощьных Java машинок. Но Java-app будут масштабироваться линейно в отличии от одной Oracle.А как они будут синхронизировать свои БД? Или это не важно!?
приведу цитату: Anton Demidov VoDA Если связанности нет или она "слабая" , то можно крутить все на раздельных серверах. Именно так. Я этот вариант держу "про запас" на случай катастрофической нехватки ресурсов. Впрочем, учитывая стоимость лицензии на Oracle Enterprize Edition, может быть дешевле купить более быстрый сервер. Для меня лицензия уже была в наличии - мигрировали со старого Sun Fire V880.
Из нее я сделал вывод что зависимости нет или она "слабая" . То есть либо синхронизации в принципе нет, либо она есть но не играет существенной роли в решении задачи

Пример: после обработки 1Gb данных нужно записать 1kb в общую БД. в данном случае существенная часть нагрузки именно обработка, но не сохранение результатов.

PS могу не угадать, ибо проект не мой ;)
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357562
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VoDA
Это если изменения в БД ты делаешь через прямые DDL самой СУБД. Если же у тебя вся схема уложена в Java, то изменение Java-сущьностей заставят тебя изменить процедуры с ними связанные. Хотя соглашусь, что постоянные модификации схемы усложнят разработку.

у вас жава-девелоперы карежут структуру данных продакшен систем !? а DBA вообще нет!??? т.е. ораклом и db2 рулят девелоперы !?!

VoDA
в общем все равно. вопрос что стоит дороже одна строка на PL/SQL + разработчик + лицензии + etc ИЛИ 10 строк на Java + разработчик + etc (лицензионных плат здесь нет, и цена разработчика может быть меньше).

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

VoDA
Во первых не только Oracle. Во вторых можно проводить обработку на апп сервере ВООБЩЕ без СУБД! это вопрос архитектуры.

утопия, вы представляете какие ресурсы ораклом было вложено в разработку ядра субд только в оптимизатор (алгоритмы расчета коста, методы доступа, алгоритмы джоинов, мультиблочное чтение). это примерно то же, что в принципе высадить людей на марс можно и на МИГе, он тоже высоко поднимается.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357592
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDA Anton Demidov VoDA Если связанности нет или она "слабая" , то можно крутить все на раздельных серверах. Именно так. Я этот вариант держу "про запас" на случай катастрофической нехватки ресурсов.
Из нее я сделал вывод что зависимости нет или она "слабая" . То есть либо синхронизации в принципе нет, либо она есть но не играет существенной роли в решении задачи

Пример: после обработки 1Gb данных нужно записать 1kb в общую БД. в данном случае существенная часть нагрузки именно обработка, но не сохранение результатов.

PS могу не угадать, ибо проект не мой ;) Не угадал - я имел в виду кластер (Oracle RAC). У меня пишется несколько тысяч строк как результат обработки файла.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357807
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!на тхредах работает лишь 9.5 UDB, который только только появился, т.е. в продакшене вообще их единицы. по 9.5 я не готов разговаривать, может там в связи с тхредами все изменилось, но до 9.5 запускались отдельные процессы на каждый конект, вы с этим не согласны ?Под Linux, кажется, до 9.5 так и было - точно не помню. Под Windows и AIX - уже давно трединг-модель.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357837
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FavnПод Linux, кажется, до 9.5 так и было - точно не помню. Под Windows и AIX - уже давно трединг-модель.

не было, до 9.5 все было в точности как у оракла, треды только под виндой и вот только в 9.5
Prior to Version 9.5, IBM® provided a multithreaded architecture on Windows® operating systems only. Version 9.5 provides the benefits of a multithreaded architecture on other operating systems.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357876
SOAWAR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot tygra]Но могу и пояснить: вне зависимости от нагрузки, логика должна находиться на сервере СУБД и работать с данными должна СУБД.[quot tygra]

Мы предпочитаем следующую архитектуру
(СУБД) - (Сервер приложений и веб-сервер (Объектная модель предметной области, Бизнес-логика, Представления (ORM) (Кэш))- (webклиент)
При выборе хороших решений при реализации архитектуры имеем следующие плюсы:
1. Выбор любой реляционной СУБД как хранилища сменой провайдера ORM. Изменение в одной строчке – и используется другая СУБД.
2. Понятный с точки предметной области код благодаря работе с объектной моделью: вы работаете не на уровне SQL, а на уровне классов. По объектной модели создается автоматом структура БД, с которой ORM самостоятельно общается с СУБД на SQL. Код бизнес-логики в терминах объектной модели предметной области. Интеллисенс в среде разработки.
4. Иные прелести наличия и работы с объектной моделью, например возможности построения в приложении универсальных фильтров по сущностям с использованием рефлексии.
5. Масштабируемость: стало больше пользователей - добавь еще серверов приложений. Стали запросы потяжелее - укрепляй СУБД. Если надо можно вынести и распределить кэш.
6. Доступность - все через веб-клиент, поэтому никаких инсталляций клиентов. Зашел на сайт и работай себе. LiveCD и вперед!
Нас это все устраивает и с точки зрения "красоты" кода и с точки зрения производительности. Естественно все с умом, ибо с любой архитектурой можно наломать дров так, что все преимущества станут недостатками.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357907
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!2. оторвоность данных от логики приводит к невозможности полноценно сопровождать код. в оракле при изменении структуры данных, процедуры которых коснулись изменения пометятся инвалидными и будут защищены от запуска. внешняя жава же запустит поломанный код, не подозреваю об изменения в субд и вывалится с экспшеном лишь когда наткнется на ошибочный SQL. последствия не предсказуемы.
3. очень медленно разработка, то что делается в pl/sql одной конструкцией в жава десятки строк, плюс очень многословный язык, разработчик вынужден строчить мегобайты кода.
4. медленно - если это внешний апп сервер, то лишние расходы на память и транспортировку данных, если это в ядре субд (только оракл такое имеет) - много подводных камней и слабая обкатоность решений.
2. Это верно для любого dynamic SQL - запрос заранее не известен, в PL/SQL с произвольным запросом (из строки) будут те же косяки.
В стандарте Java есть SQLJ, т.е. embedded (static) SQL - текст запроса пишется в коде программы и прогоняется прекомпилером. При этом DB2 для него генерит pakage, сам запрос и его уже готовый план хранятся на сервере, в программе - только его вызов, синтаксис проверяется при разработке. Любые изменения схемы отслеживаются - программа с невалидным pakage просто свалится с ошибкой, по результатам runstat и reorg pakage можно перекомпилить вообще не трогая программу. То же верно и для C-шного embedded SQL, который я активно использую.
3. Программа пишется хорошо и бысто на любом хорошо знакомом языке, и медленно - на остальных :) Java отлично стандартизован и читабелен.
4. DB2 такое умеет тоже, причем давно, с 8-ки кажется. На мой взгляд, весьма достойная замена PL/SQL, если уж именно для бизнес-логики (!) чего-то в SQL-PL не хватает. Хотя я такое (именно для ограничений на данные-связи) слабо себе представляю.

Yo.!а можно ссылочку на fenced java процедуры ?Да там же типа "create procedure... language java... (not) fenced..."

Yo.!не было, до 9.5 все было в точности как у оракла, треды только под виндой и вот только в 9.5Тады извиняюсь, с AIX очень давно не работал. А у Оракла под *nix'ами тоже тредов нету?
Кстати, в догонку к давнему разговору об Express-C, "старой" 9.1 и фикспаков на нее - на днях очередной (5-й) вышел, вроде еще долгую параллельную поддержку обещают.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35357993
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOAWAR2. Понятный с точки предметной области код благодаря работе с объектной моделью: вы работаете не на уровне SQL, а на уровне классов. По объектной модели создается автоматом структура БД, с которой ORM самостоятельно общается с СУБД на SQL. Код бизнес-логики в терминах объектной модели предметной области. Интеллисенс в среде разработки.
4. Иные прелести наличия и работы с объектной моделью, например возможности построения в приложении универсальных фильтров по сущностям с использованием рефлексии.
5. Масштабируемость: стало больше пользователей - добавь еще серверов приложений. Стали запросы потяжелее - укрепляй СУБД. Если надо, можно вынести и распределить кэш.
2. Опять СУБД используется как dbf
3. Не разглашается, как коммерческая тайна
4. А вы изучите SQL и будете поражены возможностями "построения в приложении универсальных фильтров по сущностям"
5. Это всё в теории. Практически ни одна СУБД не вынесет издевательства плохим SQL, как её не "укрепляй". Предложение "вынести и распределить кэш" - это вообще что? Если про "вынести" я могу подумать про Oracle TimesTen, то распределение ... вы собрались сами писать реализацию ЭТОГО?

Про №3 была шутка - вы пропустили этот номер у себя
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35358143
SOAWAR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov
2. Опять СУБД используется как dbf

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

Anton Demidov
3. Не разглашается, как коммерческая тайна

))) 3 вошло в 2. Про бизнес-логику. И я это считаю на самом деле очень важным, потому что именно она самая динамичная, а значит должна быть предельно понятной.

Anton Demidov
4. А вы изучите SQL и будете поражены возможностями "построения в приложении универсальных фильтров по сущностям"

Под универсальностью я подразумевал то, что фильтр сам узнает о том, что может быть предметом фильтрации. Скормите фильтру целевую сущность, а он сам уже во время выполнения увидит какие свойства должны доступны для фильтрации. Замечу, что свойства в свою очередь могут быть сущностями, у которых опять есть свойства, и т.д. Мы довели это до того, что кидаем контрол фильтра на форму, указываем целевую сущность и он работает без единой дополнительной строчки кода. Сам предоставляет пользователю определить критерии исходя из типа свойства. Кстати, там есть и приведение типов - приведение потомка к базовому классу. Без объектной модели, или схемы данных где это все описано это невозможно. Мы предпочитаем, чтобы это было именно в объектной модели, поскольку хотим использовать возможности среды разработки на полную.
Там где вы предлагаете городить скульные конструкции на 2 страницы на каждый случай жизни, мы помещаем свой универсальный фильтр с указанием целевой сущности.
Поэтому очень быстро создаем формы, они лаконичны, в них минимальный и чистый код. И главное - пользователь визуально и структурированно в пять кликов создает критерии фильтрации, скульный эквивалент которых вы будете писать утомительно долго и скорее всего с ошибками. За нас это делает ORM. А мы предпочитаем основное время строить логичную объектную модель предметной области. Она самое главное - все остальное - мишура.

Anton Demidov
5. Это всё в теории. Практически ни одна СУБД не вынесет издевательства плохим SQL, как её не "укрепляй".

С чего вы решили что ORM генерирует плохой sql? Хотя, конечно, кто знает что вы смотрели и сравнивали... То, чем мы пользуемся генерирует очень даже хороший sql. Думаю, что он гораздо лучше, чем написало бы большинство sql-специалистов на этих форумах. Мы, правда, немного оптимизировали внутренности для производительности под себя по-мелочам, но это не считается.

Anton Demidov
Предложение "вынести и распределить кэш" - это вообще что?

Ну например написать свой сервис кэша с использованием WCF. Как пример на который можно было бы ориентироваться - memcached. Мы пока отложили его написание, поскольку у наших ординарных в общем-то серверов с нашими приложениями и средней нагрузкой еще большой запас прочности. Нету надобности пока. Но специалистам это не так сложно.

Anton Demidov
Если про "вынести" я могу подумать про Oracle TimesTen, то распределение ... вы собрались сами писать реализацию ЭТОГО?

прочитайте про кэш, тот который слабосвязный и распределенный

А вообще я полемику закончил, свое мнение высказал. Спасибо за комментарий, отвечать не надо.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35358173
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Favn
2. Это верно для любого dynamic SQL - запрос заранее не известен, в PL/SQL с произвольным запросом (из строки) будут те же косяки.

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

Favn
При этом DB2 для него генерит pakage, сам запрос и его уже готовый план хранятся на сервере, в программе - только его вызов, синтаксис проверяется при разработке. Любые изменения схемы отслеживаются - программа с невалидным pakage просто свалится с ошибкой, по результатам runstat и reorg pakage можно перекомпилить вообще не трогая программу. То же верно и для C-шного embedded SQL, который я активно использую.

так это же откат в 80-е, эмбедет sql компилирует план запроса в процедуру намертво, т.е. план со временем не меняется. в 90х в оракле появился cost based оптимизатор, когда план строится исходя из статистики и меняется по мере распухания бд в зависимости от актуальной статистики.

c fenced, повторяю, агент это отдельный процесс с отдельным адресным пространством:

The DB2 architecture provides a firewall so that applications run in a different address space from DB2. The firewall protects the database and the database manager from applications, stored procedures, and user-defined functions (UDFs). A firewall maintains the integrity of the data in the databases, because it disables application programming errors from overwriting internal buffers or files of the database manager. The firewall also improves reliability, because application errors cannot crash the database manager.

https://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.admin.perf.doc/doc/c0008930.html

поэтому дб2 и побарабану, что там вне его запускается jvm, C или кабол. в оракле же пользовательские процессы обращаются напрямую в один кусок памяти SGA через shared memory (в Linux).

Favn
Тады извиняюсь, с AIX очень давно не работал. А у Оракла под *nix'ами тоже тредов нету?

как написано на металинке, когда они портировали на NT поняли что процессы в винде не работоспосбны и пришлось переколбашивать под треды. но остальные платформы на процессах.

Favn
Кстати, в догонку к давнему разговору об Express-C, "старой" 9.1 и фикспаков на нее - на днях очередной (5-й) вышел, вроде еще долгую параллельную поддержку обещают.
можно линк ? вы уверены что это официально под express-c ?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35358181
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.! FavnПри этом DB2 для него генерит pakage, сам запрос и его уже готовый план хранятся на сервере, в программе - только его вызов, синтаксис проверяется при разработке. Любые изменения схемы отслеживаются - программа с невалидным pakage просто свалится с ошибкой, по результатам runstat и reorg pakage можно перекомпилить вообще не трогая программу. То же верно и для C-шного embedded SQL, который я активно использую.
так это же откат в 80-е, эмбедет sql компилирует план запроса в процедуру намертво, т.е. план со временем не меняется. Не совсем так. План из Package используется для валидации объектов (добавили индекс или новую колонку в таблицу - всё, invalid). Именно как план он используется как отправная точка для cost-based optimizer-a. У них и bind-peeking есть. Так меня учили на курсах SQL Tuning for DB2 iSeries (5R3 в то время). На DB2 LUW должно быть что-то подобное, хотя с IBM станется - у нас часто правая рука не в ответе за левую (это я ворчу на некоторую несовместимость трёх версий DB2)
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35358187
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidovу нас часто правая рука не в ответе за левуюу них часто правая рука не в ответе за левую.

Чур меня, чур.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35358189
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anton Demidov[Не совсем так. План из Package используется для валидации объектов (добавили индекс или новую колонку в таблицу - всё, invalid). Именно как план он используется как отправная точка для cost-based optimizer-a. У них и bind-peeking есть.
я к тому что если при создании процедуры у меня было 2 записи и зафиксировался план, а через два дня у меня в табличка заполнилась до 2М записей, разве кто-то пересмотрит план ?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35358219
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.! Anton Demidov[Не совсем так. План из Package используется для валидации объектов (добавили индекс или новую колонку в таблицу - всё, invalid). Именно как план он используется как отправная точка для cost-based optimizer-a. У них и bind-peeking есть.
я к тому что если при создании процедуры у меня было 2 записи и зафиксировался план, а через два дня у меня в табличка заполнилась до 2М записей, разве кто-то пересмотрит план ? Да, оптимизатор DB2/400 пересматривает план как при получении новых статистик, так и при изменении связанных переменных (он их постоянно смотрит). Про поведение DB2 LUW не знаю.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35358616
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov SOAWAR2. Понятный с точки предметной области код благодаря работе с объектной моделью: вы работаете не на уровне SQL, а на уровне классов. По объектной модели создается автоматом структура БД, с которой ORM самостоятельно общается с СУБД на SQL. Код бизнес-логики в терминах объектной модели предметной области. Интеллисенс в среде разработки.
4. Иные прелести наличия и работы с объектной моделью, например возможности построения в приложении универсальных фильтров по сущностям с использованием рефлексии.
5. Масштабируемость: стало больше пользователей - добавь еще серверов приложений. Стали запросы потяжелее - укрепляй СУБД. Если надо, можно вынести и распределить кэш.
2. Опять СУБД используется как dbf
3. Не разглашается, как коммерческая тайна
4. А вы изучите SQL и будете поражены возможностями "построения в приложении универсальных фильтров по сущностям"
5. Это всё в теории. Практически ни одна СУБД не вынесет издевательства плохим SQL, как её не "укрепляй". Предложение "вынести и распределить кэш" - это вообще что? Если про "вынести" я могу подумать про Oracle TimesTen, то распределение ... вы собрались сами писать реализацию ЭТОГО?

Про №3 была шутка - вы пропустили этот номер у себя
Говорить с "объектниками" гиблое дело - объектный подход это единственное, что они знают, и рассказы про логику в СУБД и т.д. это для них все-равно, что рассказы про ядро термоядерных реакторов на Марсе :) Если человек никогде не пил пепси-колу, то рассказать ему ее вкус невозможно :)

-- Tygra's --
Мои фотогалереи тут и тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35358874
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anton Demidov Да, оптимизатор DB2/400 пересматривает план как при получении новых статистик, так и при изменении связанных переменных (он их постоянно смотрит). Про поведение DB2 LUW не знаю.
нифига, ембедет на то и ембедет.

Embedded SQL application performance is impacted by these factors because the package is created once when a database might have a certain set of characteristics. These characteristics are factored into the creation of the package run time access plans which define how the database manager will most efficiently execute SQL statements. Over time a database schema and data might change rendering the run time access plans sub-optimal. This can lead to degradation in application performance.

For this reason it is important to periodically refresh the information that is used to ensure that the package run-time access plans are well-maintained.

http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.apdv.embed.doc/doc/c0021166.htm

и в AS/400 те же яйца, имхо потому им и пришлось SQL-PL воротить, что на фоне Oracle/MSSQL такое уже совсем выглядит как технологии 80х.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35358923
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraНо могу и пояснить: вне зависимости от нагрузки, логика должна находиться на сервере СУБД и работать с данными должна СУБД. Показывать же эти данные на вебе должен веб-сервер, неважно, отдельно будет апп-сервер, вместе с веб-сервером или как еще. Но данные апп-веб-сервер менять не должен, только передавать туда и сюда и хранить кэши, в обработку и изменение данных он не должен лезть, не его собачье дело, это дело сугубо СУБД.странно... а у вас СУБД проводит AAA? у нас авторизаций вынесена на АппСервер и делается независимо от СУБД. Пользователей, их роли доступы и т.п. По расчетам архитекторов одно это должно упростить работу системы на 1 000 000 пользователей.

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

tygraТадыть гораздо больше гибкости и возможности.
Кстати, про перенести в СУБД (пусть и по http тоже она отвечает) - это ваши фантазии, я такого никогда не говорил и не скажу :)) Хотя тут многие говорят, только наоборот - отдадим апп-серверу и отображение, и обработку данных, а СУБД пусть будет в роли большого dbf - и будет вам щастте :))Ок, отлично СУБД занимается только обработкой данных.
Про счассте если СУБД в роли большого dbf - это тоже фантазии, причем ваши ;) СУБД найдется чем заняться кроме шелухи которая может быть вынесена на приложение.

tygraДля большого увеличения нагрузки нужно менять архитектуру - разносить обработку разных тяжелых данных на разные СУБД, делать кластер из СУБД и т.д. С веб-серверами тут гораздо проще - их можно добавлять пока не надоест.
Но уж никак тут не поможет апп-сервер сам по себе - добавит больше проблем по сравнению с вышеописанным подходом. Хотя может кто и не жил без проблем, он и не заметит :))Это ИМХО намного сложнее чем натыкать дополнительных АппСерверов с тем же приложением.

tygraВ общем, я не вижу проблем с тем, чтобы отдать только СУБД обработку данных, а веб-апп-серверу - только отображение этих самых данных. Надо отойти от стереотипов джавы - вся обработка только на джаве, субд на джаве (ужос то какой!!!)....
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35358962
mq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mq
Гость
Yo.!нифига, ембедет на то и ембедет.

Embedded SQL application performance is impacted by these factors because the package is created once when a database might have a certain set of characteristics. These characteristics are factored into the creation of the package run time access plans which define how the database manager will most efficiently execute SQL statements. Over time a database schema and data might change rendering the run time access plans sub-optimal. This can lead to degradation in application performance.

For this reason it is important to periodically refresh the information that is used to ensure that the package run-time access plans are well-maintained.

http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.apdv.embed.doc/doc/c0021166.htm

Жмите дальше на линк...

Performance of embedded SQL applications

The RUNSTATS command is used to collect current statistics on tables and indexes, especially if significant update activity has occurred or new indexes have been created since the last time the RUNSTATS command was executed. This provides the optimizer with the most accurate information with which to determine the best access plan.

Performance of Embedded SQL applications can be improved in several ways:

Run the RUNSTATS command to update database statistics.
Rebind application packages to the database to regenerate the run time access plans (based on the updated statistics) that the database will use to physically retrieve the data on disk.
Using the REOPT bind option in your static and dynamic programs.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35358974
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!субд она по любому нужна. я не представляю, что это должна быть за обработка где логика забьет современные процессоры быстрей чем уткнется и/о.ага, я понял в чем затуп. вы немного не ту задачу решать пытаетесь.



Повторю еще раз: есть входящий поток данных в виде архивированных файлов
Да, файлы приходят обработанные zip/gzip/rar/jar/pgp/tar во всевозможных комбинациях. И приходят они как в электронном виде, так и на физических носителях.Внутри архива файлы содержащие данные в различных форматах
Проблемы в том, что на 200 клиентов приходится 100 различных форматов данных. Файлы могут быть в ASCII или EBCDIC, с символом(-ами) перевода строки и без. Есть уникумы, что шлют EBCDIC файлы с "0x0Ah" кодом.По самим данным и нужно собирать статистику.

Вариант решения: сервер Oracle раскидывает данные на другие компы, где они деарзивируются. Затем парсит их и заливает в свою БД . После чего по этой БД гоняются SQL запросы + PL/SQL алгоритмы. После обработки 1000 строк сохраняются в общую БД / посылаются заказчику.


Мое решение: сервера Java разбирают каждый по файлу на себя. Локально его деархивируют, парсят и загоняют в ЛОКАЛЬНУЮ СУБД . По этой БД гоняются SQL запросы + Java алгоритмы. После обработки 1000 строк сохраняются в общую БД / посылаются заказчику.


Затык и/о конечно будет, но на каждой ноде независимо. Поэтому с ростом количества нод общее и/о системы будет расти линейно!!! И пропускная способность системы будет масштабироваться практически линейно.
Также цена лицензий на систему под Oracle будет заметно больше нулевой цены лицензий на Java.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35358996
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOAWAR5. Масштабируемость: стало больше пользователей - добавь еще серверов приложений. Стали запросы потяжелее - укрепляй СУБД. Если надо можно вынести и распределить кэш.
Anton Demidov5. Это всё в теории. Практически ни одна СУБД не вынесет издевательства плохим SQL, как её не "укрепляй". Предложение "вынести и распределить кэш" - это вообще что? Если про "вынести" я могу подумать про Oracle TimesTen, то распределение ... вы собрались сами писать реализацию ЭТОГО?Тут Антон прав. Если стали тяжелыми запросы - нужно менять сами запросы или логику системы.
На правильных запросах укрепления СУБД практически не нужно, а на кривых - укрепление СУБД уже не помогает. Провал производительности просто ПЦ какой.

Потому вывод: тяжелые запросы нужно тюнить и переводить в простые (даже сменой логики системы). Но лучше иметь спеца по СУБД который сразу в процессе написания приложения будет чинить кривость архитектуры (которая и вызывает кривые запросы)
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35359020
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mq
Жмите дальше на линк...

ну было бы совсем грустно если бы обновить планы нельзя было бы даже руками. к середине 90х прошлого столетия большинство субд уже умело самостоятельно отслеживать статистику и заботится об актуальности планов ...
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35359077
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDAстранно... а у вас СУБД проводит AAA? у нас авторизаций вынесена на АппСервер и делается независимо от СУБД. Пользователей, их роли доступы и т.п. По расчетам архитекторов одно это должно упростить работу системы на 1 000 000 пользователей.
Права правам рознь. О каким миллионах каких пользователей и какой системы идет речь?
Да и потом, где и как бы не проверялись права, в любом случае визуально в интерфейсе это делает не СУБД :))

автордальше огромные кэши на Апп серверах тоже способствуют разгрузке СУБД от дополнительных запросов. Зачем делать запрос если он же запрашивался минуту назад и есть актуальный результат?
Дык я против этого ничего не имею :) Только в кэше информацию нельзя менять средствами апп-сервера. И она должна быть ... ну скажем так: относительно редко изменяемой, чтобы всегда быть актуальной

авторОк, отлично СУБД занимается только обработкой данных.
Про счассте если СУБД в роли большого dbf - это тоже фантазии, причем ваши ;) СУБД найдется чем заняться кроме шелухи которая может быть вынесена на приложение.
Чем же таким? Да и не важно - яговорил о том, что обработкой данных занимается только СУБД. А чем там еще - это неважно.

автор tygraДля большого увеличения нагрузки нужно менять архитектуру - разносить обработку разных тяжелых данных на разные СУБД, делать кластер из СУБД и т.д. С веб-серверами тут гораздо проще - их можно добавлять пока не надоест.
Но уж никак тут не поможет апп-сервер сам по себе - добавит больше проблем по сравнению с вышеописанным подходом. Хотя может кто и не жил без проблем, он и не заметит :))Это ИМХО намного сложнее чем натыкать дополнительных АппСерверов с тем же приложением.
Чем сложнее? И что сложнее? Я как раз и говорил, что легко натыкать апп-серверов (только они не должны заниматься обработкой данных - это оставим СУБД :))

-- Tygra's --
Мои фотогалереи тут и тут
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35359087
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VoDA
Повторю еще раз: есть входящий поток данных в виде архивированных файлов
Да, файлы приходят обработанные zip/gzip/rar/jar/pgp/tar во всевозможных комбинациях. И приходят они как в электронном виде, так и на физических носителях.Внутри архива файлы содержащие данные в различных форматах
Проблемы в том, что на 200 клиентов приходится 100 различных форматов данных. Файлы могут быть в ASCII или EBCDIC, с символом(-ами) перевода строки и без. Есть уникумы, что шлют EBCDIC файлы с "0x0Ah" кодом.По самим данным и нужно собирать статистику.

Вариант решения: сервер Oracle раскидывает данные на другие компы, где они деарзивируются. Затем парсит их и заливает в свою БД . После чего по этой БД гоняются SQL запросы + PL/SQL алгоритмы. После обработки 1000 строк сохраняются в общую БД / посылаются заказчику.


Мое решение: сервера Java разбирают каждый по файлу на себя. Локально его деархивируют, парсят и загоняют в ЛОКАЛЬНУЮ СУБД . По этой БД гоняются SQL запросы + Java алгоритмы. После обработки 1000 строк сохраняются в общую БД / посылаются заказчику.


Затык и/о конечно будет, но на каждой ноде независимо. Поэтому с ростом количества нод общее и/о системы будет расти линейно!!! И пропускная способность системы будет масштабироваться практически линейно.
Также цена лицензий на систему под Oracle будет заметно больше нулевой цены лицензий на Java.


как только файлики станут больше чем RAM сервера ваш дерби начнет часами бестолково юлозить HDD. прсото потому, что он отстает от оракла на 20 лет. одна сессия дерби попросту не способна эфективно использовать все 4 ядра самого простого из процессоров, не умеет мультиблочного чтения с HDD и прочих элементарных вещей. в результате один сервер с ораклом за счет 20 летней форы и эффективного использования ресурсов сервера обработает несколько файлов просто быстрей, а вам добавление же добавления кол-ва компов не поможет быстрей юлозить HDD.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35359089
mq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mq
Гость
Yo.! mq
Жмите дальше на линк...

ну было бы совсем грустно если бы обновить планы нельзя было бы даже руками. к середине 90х прошлого столетия большинство субд уже умело самостоятельно отслеживать статистику и заботится об актуальности планов ...
я к тому что, как улучшить Performance of embedded SQL applications...
ну и кто мешает "самостоятельно отслеживать статистику" и "заботится об актуальности планов" в данном случаи, если в этом есть необходимость?...
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35359115
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
к стате про оракловые лицензии, тут достаточно взять 5 пользовательских лицензий Oracle SE1 которые потянут аж на $750.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35359156
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mq
ну и кто мешает "самостоятельно отслеживать статистику" и "заботится об актуальности планов" в данном случаи, если в этом есть необходимость?...
у дба есть более полезные задачи чем руками следить за селективностью тысяч таблиц на десятках серверах.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35359186
mq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mq
Гость
Yo.! mq
ну и кто мешает "самостоятельно отслеживать статистику" и "заботится об актуальности планов" в данном случаи, если в этом есть необходимость?...
у дба есть более полезные задачи чем руками следить за селективностью тысяч таблиц на десятках серверах.
ну слушайте,все-таки уже далеко не 90-е :)
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35359401
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!динамический sql появляется в очень редких случаях, когда статическим совсем громоздко выходит.
так это же откат в 80-е, эмбедет sql компилирует план запроса в процедуру намертво, т.е. план со временем не меняется. в 90х в оракле появился cost based оптимизатор, когда план строится исходя из статистики и меняется по мере распухания бд в зависимости от актуальной статистики.Статический sql отличается от динамического именно тем, что запросы (или их часть) известны на стадии компиляции программы. Это как раз позволяет исключить ситуацию, когда Yo.!оторванность данных от логики приводит к невозможности полноценно сопровождать кодТ.е. если static используется в PL/SQL - это великое благо, а если в Java/C - откат в 80-е? Что, SQL/PL процедура перекомпилячивается при каждом вызове, или все-таки только по мере необходимости (изменения статистики)? "У нас - доблестные разедчики, а у них - гнусные шпионы"!
На самом деле, при компиляции Static SQL:
1. Проверяется на валидность не только синтаксис запросов, но и их соответствие текущей схеме БД.
2. Запросы удаляются из программы и переносятся на сервер (заносятся в package) вместе с версией этой компиляции, в программе остается только сис. вызов вида "запрос №5, данные вот эти".
3. По пакаджу строится план запроса на базе текущей схемы и статистики, кот. может быть впоследствии пересмотрен, в т.ч. автоматически.
Это позволяет:
1. Выявлять ошибки до запуска программы.
2. Отслеживать все взаимосвязи программы со схемой и выявлять несоответствие имеющимся программам еще при ее измении. Так же можно отслеживать версионность и запрещать лезть в БД старой версии программы.
3. Изменять план доступа к компилированному запросу не в произвольное время, а в необходимое, напр. при сборе статистики в периоды сниженной нагрузки.
4. Не имеет отношения к серв. приложениям, и все же БД может быть макимально защищена от клиента, которому можно дать только права на запуск данной программы. Причем самих запросов в ее теле не будет, т.е. даже при взломе в дебугере там делать нечего - красть пароль бессмысленно, изменять запросы на другие не получится.

Yo.!c fenced, повторяю, агент это отдельный процесс с отдельным адресным пространством
поэтому дб2 и побарабану, что там вне его запускается jvm, C или кабол. в оракле же пользовательские процессы обращаются напрямую в один кусок памяти SGA через shared memory (в Linux).И я повторяю то же самое (fence - огораживать, ограждать, загораживать) :) Не огороженные - not fenced. Для C они работают, уговорили, в одном из процессов ядра, для Java - на той же JVM, кот. использует сервер. И в Оракле, думаю, они обращаются к буферам памяти, как и в DB2, а никак не к i/o процессам, например.

Yo.!как написано на металинке, когда они портировали на NT поняли что процессы в винде не работоспосбны и пришлось переколбашивать под треды. но остальные платформы на процессах.О как - пришлось-таки бедненьким. А я-то всегда считал, что тред-архитектура прогрессивнее многопроцессной - как минимум за счет отсутствия переключений контекста :)

Yo.!можно линк ? вы уверены что это официально под express-c ?Я уверен, что официально для Express-C фикспаков нет вообще - она unsupported. Но от Express она отличается только файлом лицензии, и фиксы от Express на нее прекрасно встают. И это не хак - Express-C продолжает работать под собственной лицензией (что подтверждает IBM License Manager), Express-ом она от этого не становится, и я не видел в тексте лицензий прямого запрета эти фикпаки накатывать.

Yo.!
если при создании процедуры у меня было 2 записи и зафиксировался план, а через два дня у меня в табличка заполнилась до 2М записей, разве кто-то пересмотрит план
нифига, ембедет на то и ембедет.
it is important to periodically refresh the information that is used to ensure that the package run-time access plans are well-maintained.
ну было бы совсем грустно если бы обновить планы нельзя было бы даже руками. к середине 90х прошлого столетия большинство субд уже умело самостоятельно отслеживать статистику и заботится об актуальности планов ...У DB2 другая идеология - Оракл , как я понимаю - это интерпретатор, а DB2 - компилятор. Это касается даже динамичеких запросов, для которых опционально тоже (с 8-й версии) можно строить пакаджи, и это ускоряет работу - мощный оптимизатор DB2 на страших уровнях оптимизации может полностью переформулировать запрос, что занимет заметное время. Стали бы в IBM ср. недавно вводить такую функциональность, если она не результативна? Пакаджи позволяют работать оптимизатору (в т.ч. автоматически при включенной автонастройке) в нужные админу периоды, а не когда заблагорассудится или когда запрос уже поступит на выполнение (потенциально - в период высокой нагрузки). А так, при известном времени частичного простоя сервера, можно спокойно собирать статистику, реорганизовывать таблицы и обновлять планы доступа именно в "свободное" время, или после массированного изменения схемы/данных. При этом обычный динамический SQL может работать по умолчанию на более низких уровнях оптимизации, не таких затратных по времени в on-line.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35359521
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Favnоторванность данных от логики приводит к невозможности полноценно сопровождать кодТ.е. если static используется в PL/SQL - это великое благо, а если в Java/C - откат в 80-е? [/quot]
именно, вы поняли совершенно верно
при компиляции pl/sql со статик sql план по моему даже не создается, он создается лишь во время вызова процедуры и тогда он попадает в кеш планов, где он будет пересмотрен при итзменениях в статистике. оракл не отличает откуда попал этот план в кеш, из pl/sql или от клиента. это координально отличается от зашитого плана в пакет db2 который как глосит документация без RUNSTATS пересмотрен не будет.

Favn
3. По пакаджу строится план запроса на базе текущей схемы и статистики, кот. может быть впоследствии пересмотрен, в т.ч. автоматически.

документация и помнится garderman утверждают обратное:

Over time a database schema and data might change rendering the run time access plans sub-optimal. This can lead to degradation in application performance.

FavnИ я повторяю то же самое (fence - огораживать, ограждать, загораживать) :) Не огороженные - not fenced. Для C они работают, уговорили, в одном из процессов ядра, для Java - на той же JVM, кот. использует сервер. И в Оракле, думаю, они обращаются к буферам памяти, как и в DB2, а никак не к i/o процессам, например.

почитайте, что такое shared memory в linux, не нужно ничего придумывать ;)

FavnО как - пришлось-таки бедненьким. А я-то всегда считал, что тред-архитектура прогрессивнее многопроцессной - как минимум за счет отсутствия переключений контекста :)
в теории, на практике *nix процессы по прежнему быстрей, а в линухе они еще и откровенно не доделаны.

Favn
Я уверен, что официально для Express-C фикспаков нет вообще - она unsupported. Но от Express она отличается только файлом лицензии, и фиксы от Express на нее прекрасно встают. И это не хак - Express-C продолжает работать под собственной лицензией (что подтверждает IBM License Manager), Express-ом она от этого не становится, и я не видел в тексте лицензий прямого запрета эти фикпаки накатывать.

а помоему типичный хак. урл все таки можно, фикс там точно на express ?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35359987
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!именно, вы поняли совершенно верно
при компиляции pl/sql со статик sql план по моему даже не создается, он создается лишь во время вызова процедуры и тогда он попадает в кеш планов, где он будет пересмотрен при итзменениях в статистике. оракл не отличает откуда попал этот план в кеш, из pl/sql или от клиента. это координально отличается от зашитого плана в пакет db2 который как глосит документация без RUNSTATS пересмотрен не будет.Без runstat, т.е. до очередного обновления статистики, планы не пересматривает никто, ибо незачем :) Runstat в DB2 при автоуправлении, на минуточку, выполняется автоматически в фоновом режиме, серверу можно просто рекомендовать делать это в нужное время с нужной периодичностью. Кстати, в DB2 кеш планов для динамического SQL используется как в Оракле. А вот поведением планов static SQL можно управлять :

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 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.

Т.к. special registers в т.ч. отображают и сбор статистики, можно сделать план пакаджа неизменным до следующего rebind (ручного или периодического по шедулеру), создать его при 1-м вызове программы или сделать динамическим, точно как в Оракл. И где тут 80-е? :)

Yo.!Over time a database schema and data might change rendering the run time access plans sub-optimal. This can lead to degradation in application performance.Сие есть просто рекомендация не забывать о runstat, если он не в автомате или если автомат настроен его делать редко, и пересоздавать пакаджи после runstat, если необходимо (они не с reop always). Кстати, обновить ВСЕ пакаджи можно всего одним словом - db2rbind. То же можно делать (хоть все, хоть часть, выбрав их и их зависимости из системных таблиц) из SQL процедурой или из C через API.

Yo.!процессы обращаются напрямую в один кусок памяти SGA через shared memory (в Linux)
почитайте, что такое shared memory в linux, не нужно ничего придумывать ;) Я в курсе, что такое shared memory, но не знаю, что именно входит в Oracle System Global Area. :) В любом случае, даже если DB2 not fenced добавляют лишние копирование небольшого куска памяти - результата выборки (что врядли, т.к. иначе они не могли бы портить data buffers, опасность чего есть согласно документации), это не сильно повлиет на производительность.

Favnв теории, на практике *nix процессы по прежнему быстрей, а в линухе они еще и откровенно не доделаны.Думаю, раз IBM ими воспользовалась, с ее-то опытом поддержки Linux на всем, что движется - они таки наконец доделаны :) Кстати, одним из плюсов 9.5. отн. 9.1 IBM называет лучшую производительность и использование памяти именно под Linux и именно за счет тредов.

Favnа помоему типичный хак. урл все таки можно, фикс там точно на express ?
вот тут 32bit под Win, например, файл v9fp5_win_exp.exe, именно под Express 9, 30/05/2008.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35360750
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть смутные воспоминания, что перестройка package блокирует что-то - т.е. её нельзя сделать пока кто-то этот пкет использует. Я прав?

Есть ещё у меня ИМХО по поводу оптимизатора DB2 - он до такой степени мудрый, что очень тормозной и его лишний раз стараются не дёргать. У Оракла более быстрая реализация оптимизатора и он может себе позволить дёргать его по любому поводу. Они его обкатывают с версии 7.0, а в DB2 он относительно недавно.

Кстати, до сих пор в DB2/400 нет полной реализации оптимизатора по стоимости. Я помню он сваливался в rule-based , если ему всетречался оператор UNION. Они, конечно, исправляются, но я считаю, что это является очень показательным индикатором ещё некоторой сырости их кода. Потому и медленный ещё.
Код: plaintext
1.
--
Per rectum ad astrum
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35361771
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Favn
Т.к. special registers в т.ч. отображают и сбор статистики, можно сделать план пакаджа неизменным до следующего rebind (ручного или периодического по шедулеру), создать его при 1-м вызове программы или сделать динамическим, точно как в Оракл. И где тут 80-е? :)
значит runstat ранстат только собирает статистику, а чтоб пересмотрелся план я должен сам запускать ребинд. у меня тысячи процедур, десятки тысяч запросов с какой переодичностью я должен настроить шедулер, чтоб иметь актуальные планы ? что произойдет с потреблением CPU на сервере который пересматривает десятки тысяч планов ? при ребинде процедура доступна пользователю ?

Favn
Я в курсе, что такое shared memory, но не знаю, что именно входит в Oracle System Global Area. :) В любом случае, даже если DB2 not fenced добавляют лишние копирование небольшого куска памяти - результата выборки (что врядли, т.к. иначе они не могли бы портить data buffers, опасность чего есть согласно документации), это не сильно повлиет на производительность.


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

These risky stored procedures are those created as not fenced. For a not-fenced stored procedure, nothing separates the stored procedure from the database control structures that the database agent uses. If a DBA wants to ensure that the stored procedure operations will not accidentally or maliciously damage the database control structures, the not fenced option is omitted. Because of the risk of damaging your database, use not fenced stored procedures only when you need the maximum possible performance benefits. In addition, make absolutely sure that the procedure is well coded and has been thoroughly tested before allowing it to run as a not-fenced stored procedure. If a fatal error occurs while running a not-fenced stored procedure, the database manager determines whether the error occurred in the application or database manager code and performs the appropriate recovery.

...

During the execution of a procedure, every time control flows from the procedural logic to an SQL statement, there is a ″context switch″ between the DLL and the DB2 engine. As of DB2 Version 8.1, SQL procedures run in ″unfenced mode″. That is they run in the same addressing space as the DB2 engine. Therefore the context switch we refer to here is not a full context switch at the operating system level, but rather a change of layer within DB2. Reducing the number of context switches in procedures that are invoked very often, such as procedures in an OLTP application, or that process large numbers of rows, such as procedures that perform data cleansing, can have a noticeable impact on their performance.

ftp://ftp.software.ibm.com/ps/products/db2/info/vr95/pdf/en_US/db2d3e951.pdf

у меня так и остается стойкое ощущение инородности этих процедур, и до боли напоминает оракл до появления PL/SQL, у него тоже процедуры были на С, Cobol и т.п. аналоги not fenced их точно также приходилось бэкапить отдельно, там тоже была борьба с опасным кодом, котрый валил весь сервер и прочие прелести. со стороны выглядит что SQL-PL и был введен для решения этих проблем.
к стате на счет java - если у нас для процедуры запускаются отдельные процессы, не получится ли что для каждой сессии стартует своя jvm ?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35361987
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anton DemidovУ меня есть смутные воспоминания, что перестройка package блокирует что-то - т.е. её нельзя сделать пока кто-то этот пкет использует. Я прав?
Перестройка блокирует записи системных таблиц, в которых сам пакдж и его связи описаны.

...performance of REBIND is significantly better than that of BIND...
REBIND does not automatically commit the transaction following a successful rebind. The user must explicitly commit the transaction.
If REBIND is executed on a package that is in use by another user, the rebind will not occur until the other user's logical unit of work ends, because an exclusive lock is held on the package's record in the SYSCAT.PACKAGES system catalog table during the rebind.
When REBIND is executed, the database manager recreates the package from the SQL statements stored in the SYSCAT.STATEMENTS system catalog table.

Обычная блокировка, REBIND выполняется внутри тразакции, можно откатить. Если пакадж используется, rebind подождет завершения транзакций, выполнится, следующие после его commit пойдут с обновленным pakage. Я на лету запускал, проблем не видел.

Anton DemidovЕсть ещё у меня ИМХО по поводу оптимизатора DB2 - он до такой степени мудрый, что очень тормозной и его лишний раз стараются не дёргать. У Оракла более быстрая реализация оптимизатора и он может себе позволить дёргать его по любому поводу. Они его обкатывают с версии 7.0, а в DB2 он относительно недавно.
Кстати, до сих пор в DB2/400 нет полной реализации оптимизатора по стоимости. Относительно недавно - это сколько? Точных данных у меня нет, но в 7-ке LUW cost-based точно был, такой же настраиваемый, лет 8-10 назад. И как это можно не дергать оптимизатор, выполняя SQL? :)
По скорости - оптимизатор такой мудрый, что настраиваемый :) По умоланию используется 5-й левел из 10, вполне быстрый. 10-й пытается полностью переписать исходный SQL, что дольше, поэтому удобно, например, использовать например 5-й для dinamic и 10-й для static SQL.
По поводу DB2/400 не скажу ничего - работал только с LUW.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35362087
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!значит runstat ранстат только собирает статистику, а чтоб пересмотрелся план я должен сам запускать ребинд. у меня тысячи процедур, десятки тысяч запросов с какой переодичностью я должен настроить шедулер, чтоб иметь актуальные планы ? что произойдет с потреблением CPU на сервере который пересматривает десятки тысяч планов ? при ребинде процедура доступна пользователю?Тысячи процедур, выполняющих внешние отн. БД дейсвтия?! Вроде уже договорились, что для остальных Java не нужна, SQL-PL для бизнес-логики (не логики приложений) волне достаточно.
С потреблением CPU произойдет то же, что и в Оракле, и в DB2 при динамической оптимизации, смысл действия тот же. Но статическую можно выполнить во время низкой загрузки, можно написать reopt ones - оптимизатор сработает при первом выполнении SP в ее транзакции, а можно - reopt always (в т.ч. при очередном rebind) и о rebind забыть совсем, как в dinamic SQL.
По поводу пользователей - уже написал, это простое обновление ситемной таблицы, выполняется внутри обычной транзакции.

Yo.!если бы not fenced могла бы лазить в область ядра и его буфера, это была бы чудовищная дыра в безопасности, выходит, что юзерский код на С мог бы портачить в области других баз данных запущенных на сервере.
nothing separates the stored procedure from the database control structures that the database agent uses
у меня так и остается стойкое ощущение инородности этих процедур, и до боли напоминает оракл до появления PL/SQL, у него тоже процедуры были на С, Cobol и т.п. аналоги not fenced их точно также приходилось бэкапить отдельно, там тоже была борьба с опасным кодом, котрый валил весь сервер и прочие прелести. со стороны выглядит что SQL-PL и был введен для решения этих проблем.Как следует из этого текста, к самой БД и тем более к другим БД not fenced никакого отношения не имеет. "database agent" - модуль работы с коннектами к БД, на целостность самой БД не влияет никак, а для SP на Java и он не доступен. Срашно его загубить (или прибить JVM сервера в случае Java, что куда сложнее) - используй fenced, в чем проблема? Нужна макс. производительность - пиши/отлаживай тщательнее. Мне DB2 нравиться как раз за богатство выбора способов работы с ней.
PL-SQL, как я понимаю, был введен для простой реализации как раз бизнес-логики , а не логики приложений. Его функциональности для этого вполне достаточно. А "стойкое ощущение инородности" по отн. к DB2 естественно для сторонника Oracle :)
Отдельный бэкап - да, но опять-таки, мы говорим о внешних отн. БД действиях, на целостность БД они не влияют. А к процедуре бэкапа можно прикрутить внешние действия.

Yo.!к стате на счет java - если у нас для процедуры запускаются отдельные процессы, не получится ли что для каждой сессии стартует своя jvm?Not fenced Java работают на JVM, c кот. работает сервер, и напортачить в самом сервере у них шансов никаких (он все-таки не на яве работает :) ). Под fenced Java запукается отдельная JVM, по-моему одна на всех, могу ошибаться, но уж точно не по JVM на процедуру. :)
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35363218
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FavnNot fenced Java работают на JVM, c кот. работает сервер, и напортачить в самом сервере у них шансов никаких (он все-таки не на яве работает :) ). Под fenced Java запукается отдельная JVM, по-моему одна на всех, могу ошибаться, но уж точно не по JVM на процедуру. :)
и снова вы что-то путаете :
NOT FENCED Java routines are currently not supported. A Java routine defined as NOT FENCED will be invoked as if it had been defined as FENCED THREADSAFE.

Favn Вроде уже договорились, что для остальных Java не нужна, SQL-PL для бизнес-логики (не логики приложений) волне достаточно.

ну раз договорились

Favn
С потреблением CPU произойдет то же, что и в Оракле, и в DB2 при динамической оптимизации, смысл действия тот же. Но статическую можно выполнить во время низкой загрузки, можно написать reopt ones - оптимизатор сработает при первом выполнении SP в ее транзакции, а можно - reopt always (в т.ч. при очередном rebind) и о rebind забыть совсем, как в dinamic SQL.

с точки зрения ребинда различий, как я выснил, внешних процедур и SQL-PL нет. но на оракл, совсем не похоже, в где при изменении данных от которых зависит план (читай статистики), такой план выкидывается из кеша и соответсвенно будет обновлен. в дб2 reopt alweys (на OLTP убьет производительность) и ребинд по шедулеру ВСЕХ запросов - звучат не очень заманчиво.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35364456
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.! FavnNot fenced Java работают на JVM, c кот. работает сервер, и напортачить в самом сервере у них шансов никаких (он все-таки не на яве работает :) ). Под fenced Java запукается отдельная JVM, по-моему одна на всех, могу ошибаться, но уж точно не по JVM на процедуру. :)
и снова вы что-то путаете :
NOT FENCED Java routines are currently not supported. A Java routine defined as NOT FENCED will be invoked as if it had been defined as FENCED THREADSAFE.Да нет, "снова" что-то напутали Вы. В переводе сие означает, что NOT FENCED и FENCED THREADSAFE для LANGUAGE JAVA просто синонимы. Там же несколькими строками выше:
Multiple invocations of FENCED THREADSAFE routines share resources, and therefore incur less system overhead than FENCED NOT THREADSAFE routines, which each run in their own dedicated process.
Т.е. если принять NOT FENCED как FENCED THREADSAFE, что то же самое, а FENCED как FENCED NOT THREADSAFE, получится ровно то , о чем писал я, не вдаваясь в такие подробности - первые выполняются на общей JVM, вторые - нет.
Favnну раз договорились Я не прав? Можно придумать жизненный пример, для которого для бизнес-логики SQL + SQL-PL недостаточно?
Yo.!с точки зрения ребинда различий, как я выснил, внешних процедур и SQL-PL нет. но на оракл, совсем не похоже, в где при изменении данных от которых зависит план (читай статистики), такой план выкидывается из кеша и соответсвенно будет обновлен. в дб2 reopt alweys (на OLTP убьет производительность) и ребинд по шедулеру ВСЕХ запросов - звучат не очень заманчиво.Почему это reopt alweys на OLTP убьет производительность? Не следует считать оптимизатор DB2 тупее Оракловского. Зачем пересчитывать план от вызова к вызову, если статистика не менялась? А если изменилась - план пересчитает любая СУБД.
Наоборот, при OLTP reopt none/ones позволяет переместить нагрузку по пересчету планов на время простоя или первой активности, а не грузить сервер в час пик.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35364524
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FavnДа нет, "снова" что-то напутали Вы. В переводе сие означает, что NOT FENCED и FENCED THREADSAFE для LANGUAGE JAVA просто синонимы. Там же несколькими строками выше:
Multiple invocations of FENCED THREADSAFE routines share resources, and therefore incur less system overhead than FENCED NOT THREADSAFE routines, which each run in their own dedicated process.
Т.е. если принять NOT FENCED как FENCED THREADSAFE, что то же самое, а FENCED как FENCED NOT THREADSAFE, получится ровно то , о чем писал я, не вдаваясь в такие подробности - первые выполняются на общей JVM, вторые - нет.

давайте я вам переведу, что там написано на самом деле. NOT FENCED не супортиться в принципе, т.е. jvm запустить в адресном пространстве даже агента не возможно. NOT FENCED интерпритируется как FENCED THREADSAFE и запускается как отгороженный от агента и естественно ядра db2 процесс.

Favn
Почему это reopt alweys на OLTP убьет производительность? Не следует считать оптимизатор DB2 тупее Оракловского. Зачем пересчитывать план от вызова к вызову, если статистика не менялась? А если изменилась - план пересчитает любая СУБД.

можно поитересоватся как вы перевели эту фразу "will always be compiled and reoptimized using the values of the host variables" ?


Наоборот, при OLTP reopt none/ones позволяет переместить нагрузку по пересчету планов на время простоя или первой активности, а не грузить сервер в час пик.[/quot]
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35364867
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!давайте я вам переведу, что там написано на самом деле. NOT FENCED не супортиться в принципе, т.е. jvm запустить в адресном пространстве даже агента не возможно. NOT FENCED интерпритируется как FENCED THREADSAFE и запускается как отгороженный от агента и естественно ядра db2 процесс.Большое человеческое спасибо за перевод! :) И я писал то же самое, в каждом посте разделяя SP на Java и на C:
"Для C они работают, уговорили, в одном из процессов ядра, для Java - на той же JVM, кот. использует сервер."
"Not fenced Java работают на JVM, c кот. работает сервер, и напортачить в самом сервере у них шансов никаких (он все-таки не на яве работает :) )."
И как вообще Java может работать в том же процессе, что и ядро? Естественно, что байт-код Java отгорожен от исполняемого кода сервера, как иначе? Но - все Java FENCED THREADSAFE выполняются на одной JVM, накладных расходов на ее запуск нет.

Yo.!можно поитересоватся как вы перевели эту фразу "will always be compiled and reoptimized using the values of the host variables" ?В данном контексте - план может быть персчитан при каждом вызове в зависимости в т.ч. от входных параметров, т.е. при каждом вызове проверяется такая необходимость. А может и не быть пересчитан, что естественно - как для любого dynamic запроса. А Оракл не может по необходимости пересчитывать план в зависимости от параметров? Не следует по куску фразы из раздела не связанного с собственно оптимизацией судить о работе сложной системы.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35365390
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FavnБольшое человеческое спасибо за перевод! :) И я писал то же самое, в каждом посте разделяя SP на Java и на C

ну ... например тут вы утверждаете, что Java работает в ядре:
Favn Yo.!не понял, с каких пор процедуры на C++ и Java начали работать внутри ядра db2 ?? для C только пару лет назад компилятор в поставку начали класть. и некий db2 magazine утверждал обратное (в чудо-документации мне ничего на эту тему найти не удалось).Для C как минимум с тех пор, как я стал с DB2 работать (v. 7 лет так с 10 назад), для Java - когда ее native поддержку включили в DB2.

по оптимизатору
FavnВ данном контексте - план может быть персчитан при каждом вызове в зависимости в т.ч. от входных параметров, т.е. при каждом вызове проверяется такая необходимость. А может и не быть пересчитан, что естественно - как для любого dynamic запроса.

url можно ? а то как я не полезу за подробностями, выясняется ровно обратное ;)
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35397404
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Yo!
А теперь попробуйте сосредоточиться Вы, а то после "разжувывания" получилась полная каша. Отделяю мух от котлет.

Yo.!я бы хотел посмотрел как бы вы процедуры собраные компилятором AIX собрали бы GCC под виндойИз приведенного мной текста (см. ниже) видно, что до 11g , то есть до недавнего времени, в Оракл при native compilation было то же самое. 7-8 лет - большой срок, давайте смотреть на текущие версии.

Yo.!not fenced исполняются в адресном пространстве агента, а не ядра субд db2.
not fenced процедура db2 из процесса агента, судя по документации общается с ядром через некий APIПолный бред. Исполняются , а не получают данные там же. Про "некий API" там не слова. Более того:
Memory allocation in DB2
"Database global memory is used across all applications that connect to the database:
- Buffer pools (using the ALTER BUFFERPOOL DDL statement)
- Database heap (including log buffers)
- Utility heap
- Package cache..."
Database manager shared memory
Не стоит считать, что о shared memory знают только в Оракл.
Кстати, о якобы не кешируемом embedded SQL
Package cache
"This parameter is allocated out of the database shared memory, and is used for caching of sections for static and dynamic SQL and XQuery statements on a database." Т.е. static, dinamic и даже XML кешируются одинаково.

Yo.!а вот в DB2 этот дедовские способ написания по прежнему используется в большинстве проэктовВаши любимые слова - "а ссылку можно?" Как можно говорить о проектах DB2, не зная ни одного?
Я на своем опыте могу сказать, что бизнес-логика имплементируется по возможности в триггеры и UDF, которые в DB2 просто подставляются inline в запросы и оптимизируются в рамках единого текста, который, кстати, может быть переписан оптимизатором. А в Оракл, оказывается, они компилячаться при создании A trigger is fully compiled when the CREATE TRIGGER statement executes. И какой подход является прошлым веком? :)
Опять-таки, SQL PL есть уже давно и если нужна поцедурность (которой чем меньше, тем лучше), то для бизнес-логики его более чем достаточно.

Yo.!когда-то наверно c начала 80х и у оракла и у db2 были примерно одинаковые технологии написания бизнес логики, в оракле они звались PRO*C и PRO*COBOL, в конце 80х, начала 90х эту технологию в оракле (и остальных субд) вытеснил язык (интерпритатор) 4го поколения PL/SQL, а вот в DB2 этот дедовские способ написания по прежнему используется в большинстве проэктов, т.к. аналог SQL/PL появился всего 7-8 лет назад и по прежнему сильно уступает PL/SQL. PL/SQL это интерпритатор, к которому в последних версиях прикрутили возможность компилировать в нативный байт-код. Да, и до 11g это делалось внешним, покпаемом за отдельные деньги C-компилятором.
PL/SQL Enhancements in Oracle Database 11g
"This scheme worked perfectly well from a technical viewpoint but suffered from some serious usability drawbacks: some customers’ religion simply forbids the installation of a C compiler on a production machine (and you can’t argue with that); other customers were reluctant to pay to license a C compiler (and for some reason mistrusted gcc); and other customers found the DBA setup tasks (installing the C compiler, checking the spnc_commands file on the plsql directory under Oracle Home, and setting the Plsql_Native_Library_Dir and Plsql_Native_Library_Subdir_Count parameters) too daunting."
Начало 80-х, говорите?

Yo.!процедура PL/SQL в отличии от not fenced процедуры DB2 исполняется в адресном пространстве юзерского процесса, лезет в shared memory SGA и выполняет защищенный код. т.е. от того, что теперь можно скомпилить в нативный байт код, он не стал больше походить на низкоуровневые процедуры С у db2, нативный байт код PL/SQL по прежнему защищен и в отличии от not fenced процедур db2, ошибки в них при всем желании не могут завалить весь сервер.
Конечно, "исполняется в адресном пространстве юзерского процесса" в корне отличается от "исполняются в адресном пространстве агента" (цитаты) В DB2 он так же "лезет в shared memory" за данными и "завалить весь сервер" у него шансов никаких - только агента, связанного с эти коннектом (см. схему Database manager shared memory выше). Как и в Оракл, судя по Вашим словам.

Кстати, о старых технологиях. В том же документе очень умилило нововведение
"PERFORMANCE LANGUAGE FEATURE: THE PL/SQL FUNCTION RESULT CACHE"
Круто! Аналог давно существующий в DB2 Package cache наконец-то и в Оракл! Правда, чтобы его использовать, опять нужны хинты (ну куда в Оракл без них!)
"function f(p1 in Typ_1, p2 in Typ_2,...) return Typ_R
result_cache relies_on(Tab_1, Tab_2, Tab_3,...)..."
Сам он понять какие таблицы использует функция, видимо, не способен.

2All, not 2 Yo!
Прошу понять правильно - я ни коим образом не охаиваю Оракл, в котором не разбираюсь (как и Yo! в DB2). Я показываю Yo!, как можно использовать его же полемические приемы.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35397763
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОК, продолжим тут
Favn
Из приведенного мной текста (см. ниже) видно, что до 11g , то есть до недавнего времени, в Оракл при native compilation было то же самое. 7-8 лет - большой срок, давайте смотреть на текущие версии.
ппц. написав C процедуру для db2 под виндой ее НЕ ВОЗМОЖНО перенести в продакшен на AIX, нужно тащить компилятор с винды на AIX и там компилировать. и только в последних версиях С компилятор начали поставлять вместе с db2.
PL/SQL это интерпритатор и компилирует в байткод который исполняет и контролирует виртуальная машина, я могу разрабатывать под виндой и без гемороя деплоить на zOS. я доступно объясняю ? ничего за собой таскать не нужно. теперь сосредоточесь - в последних версиях появилась дополнительная фича натив компилирования. если это так сложно для понимания, забудьте, считайте нет такой фичи и небыло. считайте весь PL/SQL компилируется в платформонезависимый байткод, а то мы никуда не продвинемся.

Favn
Полный бред. Исполняются , а не получают данные там же. Про "некий API" там не слова.

браво, после нескольких недель вам все же удалось разъясняющий документ, а мы все гадали. ;)
про API вычитал тут

A coordinator agent works on behalf of an application, and communicates to other agents, using private memory, interprocess communication (IPC), or remote communication protocols , as needed.

(к стате о чудной документации, я например, решил что IPC используется для общения агента с other agents т.е. субагентами)

Favn
Конечно, "исполняется в адресном пространстве юзерского процесса" в корне отличается от "исполняются в адресном пространстве агента" (цитаты) В DB2 он так же "лезет в shared memory" за данными и "завалить весь сервер" у него шансов никаких - только агента, связанного с эти коннектом (см. схему Database manager shared memory выше). Как и в Оракл, судя по Вашим словам.


чтож давайте подведем итог:
оракловый аналог not fenced процедур - PRO*COBOL, PRO*C и прочие технологии из 80х, уступили дорогу языкам сторед процедур, таким как T-SQL, PL/SQL (и только в db2 SQL/PL и не вытеснил C). почему из 80х вроде уже 2 раза объяснял.

оракловый аналог fenced процедур - наверно тупо внешнее приложение обращающее к субд через OCI. тут сразу вопрос это именно fenced используют remote communication protocols ?

остается молоденький SQL/PL против матерого PL/SQL.

Favn
Круто! Аналог давно существующий в DB2 Package cache наконец-то и в Оракл!
гы действительно созвучно!

ЗЫ. Россия вперед !
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35398498
ппм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
agent использует remote communication protocol для связи с другими агентами в случае DPF, и в статье это указано.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35399188
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!ппц. написав C процедуру для db2 под виндой ее НЕ ВОЗМОЖНО перенести в продакшен на AIX, нужно тащить компилятор с винды на AIX и там компилировать. и только в последних версиях С компилятор начали поставлять вместе с db2. Вот именно, ппц. Насколько знаю я, C-компилер никогда не входил в поставку. Где Вы прочитали, что C компилятор поставляется вместе с DB2? Можно ссылку?
Но ппц не в этом, а вот в чем :)
Не надо сваливать в единый винегрет SP на C и Java и SP на SQL PL. Более того, не надо смешивать бизнес-логику и SP. В DB2 есть 2 SQL-PL:
1. Для триггеров и SQL UDF (подмножество SQL-PL). Отдельно он не компилируется, в отличие от Оракл, его тест - это синтаксически проверенная inline подстановка. Компилируется он вместе с использующим его запросом, как единый текст, соответственно лучше оптимизируется. К C и Java все это не имеет и никогда не имело никакого отношения.
2. Для SP. Он был и в 7-й версии, SP можно было писать. Но тогда он автоматически генерировался в C-ник и компилячился на сервере внешним платформозависимым C-компилером, который достаточно было просто поставить на сервер. Управлял этим пооцессом сервер, сборка шла автоматически. То есть точно так же , как в Оракле 9-10 для нативной компиляции. С 8-й версии появился интерпретоатор.

Yo.!PL/SQL это интерпритатор и компилирует в байткод который исполняет и контролирует виртуальная машинаДа что вы? Какая неожиданность :) Цитирую повторно:
"PL/SQL is compiled in the ordinary way into machine code called M-Code. However, the target machine is virtual: the so-called PVM — for PL/SQL virtual machine. (In this way, it’s just like Java with its JVM.)... the number of context switches between PL/SQL’s execution environment and SQL’s execution environment"
Т.е PVM работает аналогично JVM, являсь для собственно "SQL’s execution environment" внешним процессом - выглядит как аналог JAVA FENCED THREADSAFE в DB2 :). Конечно, при высокой нагрузке это приводит к проблемам с производительностью.

Yo.!я могу разрабатывать под виндой и без гемороя деплоить на zOS. я доступно объясняю ? теперь сосредоточесь - в последних версиях появилась дополнительная фича натив компилирования. если это так сложно для понимания, забудьте, считайте нет такой фичи и небыло. считайте весь PL/SQL компилируется в платформонезависимый байткод, а то мы никуда не продвинемся.Теперь попробуйте сосредоточиться сами, объясню 2-й раз, для понимания не сложно. Или хотя бы попробуйте сменить тон в разговоре.
Считать можно что угодно, факты таковы.
1. inline SQL PL для собственно бизнес логики был всегда. Он ограничен из-за требований inline подстановки, по той же причине он максимально быстрый и оптимизируемый.
2. SQL PL для SP появился первоначально в виде native компиляции (до 8.2), сейчас он интерпретатор (точнее, псевдокомпилятор, как в Оракл). Замечу для галочки, что хотя он и беднее, он исполняется в ядре (EDU, engine dispatchable unit) , а не в отдельном процессе (PVM) . Разница в производительности понятна? :)
3. До 8.2 при переходе на новую платформу достаточно было автоматической перекомпиляции. 8 лет назад это стало не нужно. забудьте, считайте, что этого небыло :)
4. В Оракл PL/SQL появился как псевдокомпилятор. В связи с высокой на него нагрузкой в Оракл-разработках появились видимо проблемы с производительностью PVM, поэтому в 9-ке появилась native опция, до боли похожая на старую DB2 (тот же внешний C-компилятор). В 11-ке native компилятор сделали встоенным, что показывает таки его необходимость с точки зрения Оракл.

Yo.!браво, после нескольких недель вам все же удалось разъясняющий документ...
(к стате о чудной документации, я например, решил что IPC используется для общения агента с other agents т.е. субагентами)Просто я наконец этим озаботился. В "сложнейшей" документации оказалось достаточно набрать в поиске "shared memory" и прочитать страниц так 5.

Yo.!чтож давайте подведем итог:
оракловый аналог not fenced процедур - PRO*COBOL, PRO*C и прочие технологии из 80х, уступили дорогу языкам сторед процедур, таким как T-SQL, PL/SQL (и только в db2 SQL/PL и не вытеснил C).Опять мухи вместе с котлетами!
1. PRO*COBOL, PRO*C и "прочие технологии из 80х" - аналог embedded SQL, а совсем не not fenced. Или PRO*C-программы работали внутри серверного агента? :) Кстати, эти "технологии из 80х" зачем-то включили в новый Java в виде SQLJ. Отсталые люди, и ведь не из IBM...
2. Зачем SQL/PL вытеснять C? У них совершенно разные задачи! SQL-PL - для манипуляций с данными, C и Java - для внешних отн. БД действий, связанных с данными, посылка почты, например. Есть предложение вернуться из далекого прошлого - SP для бизнес-логики на C никто не пишет уже много лет, да и раньше, учитывая inline SQL-PL и богатый SQL, для внутренних задач БД они были практически не нужны.

Yo.!оракловый аналог fenced процедур - наверно тупо внешнее приложение обращающее к субд через OCI. тут сразу вопрос это именно fenced используют remote communication protocols ?Не надо предположений - аналогов-то нет. Fenced C работают под управлении отдельных процессов db2fmp ( на той же схеме , слева от Firewall). Общаются без communication protocols, локально. Как, кстати, и любое приложение с локальным коннектом.

Yo.!остается молоденький SQL/PL против матерого PL/SQL.Да. Сравнительно молодой, быстрый, работающий inline или в ядре, заточенный под максимальную производительность SQL-PL против PL/SQL, ну просто матерого. :)

Yo.!ЗЫ. Россия вперед !Увы!
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35400337
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FavnВот именно, ппц. Насколько знаю я, C-компилер никогда не входил в поставку. Где Вы прочитали, что C компилятор поставляется вместе с DB2? Можно ссылку?
тысячи извинений , действительно гемор с тасканием компилера (для не sql pl процедур) по прежнему актуален. меня ввел в заблуждение sql/pl, которому с 8.2 (2004 год) не нужен внешний компилер, я решил, что компилер класть начали.

Favn
1. Для триггеров и SQL UDF (подмножество SQL-PL). Отдельно он не компилируется, в отличие от Оракл, его тест - это синтаксически проверенная inline подстановка. Компилируется он вместе с использующим его запросом, как единый текст, соответственно лучше оптимизируется. К C и Java все это не имеет и никогда не имело никакого отношения.

неправда.
UDFs can be developed in high-level languages, such as C or Java. Starting with DB2 UDB 7.2, UDFs can also be developed in DB2 SQL. The primary advantage of the SQL-based UDFs is that, unlike their high-level language counterparts, they can contain regular SQL statements to read the tables. As of DB2 UDB 7.2, UDFs in the high-level languages cannot read tables.
http://www.ibm.com/developerworks/db2/library/techarticle/0203venigalla/0203venigalla.html
т.е. до 2002 года компиляция UDF на низкоуровневом языке и инсталяция внешнего компилера был вообще единственным вариантом. (повторюсь в оракле подобная бредятена отмерла в конце 80х, на 20 лет раньше).

Favn
2. Для SP. Он был и в 7-й версии, SP можно было писать. Но тогда он автоматически генерировался в C-ник и компилячился на сервере внешним платформозависимым C-компилером, который достаточно было просто поставить на сервер. Управлял этим пооцессом сервер, сборка шла автоматически. То есть точно так же , как в Оракле 9-10 для нативной компиляции. С 8-й версии появился интерпретоатор.
ничего похожего на нативную компиляцию pl/sql - в оракле с конца 80х никто не требует таскать за собой компилятор, с 80х UDF на pl/sql с одной платформы одним движением переносится на другую платформу. в db2 же надобность таскать за собой компилятор для sql/pl буквально пару лет назад (с версии 8.2 от 2004 года). нативная компиляция pl/sql - для маньков пытающихся выжать из процедурного кода еще 2-3% скорости.

Favn
Т.е PVM работает аналогично JVM, являсь для собственно "SQL’s execution environment" внешним процессом - выглядит как аналог JAVA FENCED THREADSAFE в DB2 :). Конечно, при высокой нагрузке это приводит к проблемам с производительностью.
fenced java в db2 запускается в своем процессе и по "remote communication protocol" общается с посредником agent который в свою очередь общяется уже с shared memory структурами db2. это нифига не похоже на java stored procedures, pl/sql и PRO*C/PRO*COBOL которые исполняются в "user process" оракла и минуя посредников работают с shared memory SGA:

oracle docsOverview of User Processes
When a user runs an application program (such as a Pro*C program) or an Oracle tool (such as Enterprise Manager or SQL*Plus), Oracle creates a user process to run the user's application.
вот тут и картинка есть ;)
http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/process.htm#i7241

Favn
Считать можно что угодно, факты таковы.
1. inline SQL PL для собственно бизнес логики был всегда.
снова неправда, sql/pl на фоне T-SQL и PL/SQL только, только появился (в районе 2000 года)
Procedural SQL constructs such as scalar variables, IF statements and WHILE loops were introduced in DB2 with the release of DB2 Version 7. These 7 constructs expanded into the set of SQL statements that makes up the SQL 7 Procedural Langauge (SQL PL) that we refer to today.
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/ad/c0011916.htm

Favn
2. SQL PL для SP появился первоначально в виде native компиляции (до 8.2), сейчас он интерпретатор (точнее, псевдокомпилятор, как в Оракл).
снова не совсем правда, интерпритатор он лишь в небольшой части - в db2 LUW, db2 for iSeries и zOS по прежнему натив компиляция.

Favn
3. До 8.2 при переходе на новую платформу достаточно было автоматической перекомпиляции. 8 лет назад это стало не нужно. забудьте, считайте, что этого небыло :)
неправда. 8.2 это 2004 год, т.е. еще и 4 года не прошло.

Favn
Не надо предположений - аналогов-то нет. Fenced C работают под управлении отдельных процессов db2fmp (на той же схеме, слева от Firewall). Общаются без communication protocols, локально. Как, кстати, и любое приложение с локальным коннектом.
неправда снова.
In general, a routine running as FENCED will not perform as fast as a similar one running as NOT FENCED. This is because NOT FENCED routines can take advantage of inter-process communications (IPCs) within the database engine.
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0510law/#trust
повторюсь fenced процедуры дб2 ничем не отличаются от обычного приложение дергающего оракловый "communication protocol", зовущийся OCI .
not fenced процедуры C или sql pl, которые общаются с ядром через IPC - это аналог именно dedicated сервера оракл, где user process работает с SGA через IPC. причем, кроме fenced java, у db2 нет аналога еще одной древней фиче oracle - shared server архитектуре, где на несколько пользовательских процессов терминами IBM один agent.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35400368
mq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mq
Гость
Yo.!у db2 нет аналога еще одной древней фиче oracle - shared server архитектуре, где на несколько пользовательских процессов терминами IBM один agent.
Вы про это?
Enhance performance using connection concentrator in DB2
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35400413
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mq Yo.!у db2 нет аналога еще одной древней фиче oracle - shared server архитектуре, где на несколько пользовательских процессов терминами IBM один agent.
Вы про это?
Enhance performance using connection concentrator in DB2
близко, но ...
Agent private memory is allocated for an agent when that agent is created. The agent private memory contains memory allocations that will be used only by this specific agent, such as the sort heap and the application heap.

при shared server оракла еще cильно перераспределяется память, приватная память "агента" уходит в shared memory SGA. причем сервер может работать в двух режимах одновременно, т.е. часть конекций имеют выделеного агента со всей приватной структурой памяти, часть "комуналку" в SGA (параметр конекции определяет).
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35400584
mq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mq
Гость
Yo.! mq Yo.!у db2 нет аналога еще одной древней фиче oracle - shared server архитектуре, где на несколько пользовательских процессов терминами IBM один agent.
Вы про это?
Enhance performance using connection concentrator in DB2
близко, но ...
Agent private memory is allocated for an agent when that agent is created. The agent private memory contains memory allocations that will be used only by this specific agent, such as the sort heap and the application heap.

при shared server оракла еще cильно перераспределяется память, приватная память "агента" уходит в shared memory SGA. причем сервер может работать в двух режимах одновременно, т.е. часть конекций имеют выделеного агента со всей приватной структурой памяти, часть "комуналку" в SGA (параметр конекции определяет).

И? Что это дает?

При thread-based модели (DB2 9.5) издержики на "игры" с памятью ничтожны..
Database agents
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35401472
ппм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если верить Richard Stevens, то Shared Memory это как раз и есть вид inter-process communication.
Просто некоторые этого не знают
И посредством shared memory с агентами работают не только fenced процедуры, но и вообще все клиентские программы, выполнившие connect к локально каталогизированной инстанции.
Скока бреда написано, на всё и не ответить.
Во прёт
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35402105
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ппмЕсли верить Richard Stevens, то Shared Memory это как раз и есть вид inter-process communication.

надо же какой просвещенный муж ну собственно с этим еще ни кто не спорил ...
ппм
И посредством shared memory с агентами работают не только fenced процедуры, но и вообще все клиентские программы, выполнившие connect к локально каталогизированной инстанции.

fenced процедура не может прямо обратится через IPC к структурам ядра, он вынужден координировать свою работу через некий протокол читать кусками сначала в DB2_FMP_COMM_HEAPSZ буфер (ок, используя IPC), т.е. все то же самое, что и обычное внешнее приложение в оракловом OCI.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35402191
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!гемор с тасканием компилера (для не sql pl процедур) по прежнему актуален. меня ввел в заблуждение sql/pl, которому с 8.2 (2004 год) не нужен внешний компилер, я решил, что компилер класть начали.Компилятор нужен только для C-процедур (Java входит в поставку). Есть предложение вернуться в настоящее и сравнивать текущие версии продуктов.

Yo.!неправда. т.е. до 2002 года компиляция UDF на низкоуровневом языке и инсталяция внешнего компилера был вообще единственным вариантом. (повторюсь в оракле подобная бредятена отмерла в конце 80х, на 20 лет раньше).Сейчас - правда. ОК, ошибся насчет истории UDF. Я - не специалист по истории, готов обсуждать нынешнюю DB2 LUW, с которой работаю, и только. С 8-й не работал, с 7-й работал давно, причем SP тогда не использовал, в чем-то могу ошибаться, копаться в старой доке не намерен.

Yo.!
ничего похожего на нативную компиляцию pl/sql - в оракле с конца 80х никто не требует таскать за собой компилятор, с 80х UDF на pl/sql с одной платформы одним движением переносится на другую платформу. в db2 же надобность таскать за собой компилятор для sql/pl буквально пару лет назад (с версии 8.2 от 2004 года). нативная компиляция pl/sql - для маньков пытающихся выжать из процедурного кода еще 2-3% скорости.Опять повторю:
""Oracle9i Database introduced native compilation. It did require some DBA setup...
...This scheme worked perfectly well from a technical viewpoint but suffered from some serious usability drawbacks: some customers’ religion simply forbids the installation of a C compiler on a production machine (and you can’t argue with that)." - из нововведений в 11g. То есть, в 9-10 внешний компилятор был нужен. Кажется, 11g вышел чуть позже 80-х :)
Сейчас SP на C в DB2 LUW - нужен для работы с SQL для точно таких же маньяков. Еще раз - не являясь историком, готов обсуждать только текущие версии, с 9-й.

Yo.!fenced java в db2 запускается в своем процессе и по "remote communication protocol" общается с посредником agent который в свою очередь общяется уже с shared memory структурами db2. это нифига не похоже на java stored procedures, pl/sql и PRO*C/PRO*COBOL которые исполняются в "user process" оракла и минуя посредников работают с shared memory SGA:
When a user runs an application program (such as a Pro*C program) or an Oracle tool (such as Enterprise Manager or SQL*Plus), Oracle creates a user process to run the user's application .И сколько можно про "remote communication protocol"? Они используются для удаленных instance. Повторяю, с локальными DB2 работает локально, без посредников.
Чем именно локальная работа JVM в DB2 отличается от локальной работы PVM в Оракл?
Чем работа SP unfenced C в пространстве "user agent" отличается от SP PRO*C в "user process"?

Yo.!снова не совсем правда, интерпритатор он лишь в небольшой части - в db2 LUW, db2 for iSeries и zOS по прежнему натив компиляция.Опять повторю - работаю только с LUW, могу судить только о ней. Кстати, и с Оракл имеет смысл сравнивать именно ее, т.к. именно LUW - зона их конкуренции.

Yo.!неправда. 8.2 это 2004 год, т.е. еще и 4 года не прошло.Да, с датами ошибся, т.к. с 8-й не работал. Смысл от этого не изменился.

Yo.!In general, a routine running as FENCED will not perform as fast as a similar one running as NOT FENCED. This is because NOT FENCED routines can take advantage of inter-process communications (IPCs) within the database engine.
повторюсь fenced процедуры дб2 ничем не отличаются от обычного приложение дергающего оракловый "communication protocol", зовущийся OCI .
not fenced процедуры C или sql pl, которые общаются с ядром через IPC - это аналог именно dedicated сервера оракл, где user process работает с SGA через IPC. причем, кроме fenced java, у db2 нет аналога еще одной древней фиче oracle - shared server архитектуре, где на несколько пользовательских процессов терминами IBM один agent.Явная путаница. Какая связь между IPC (Inter-Process Communication) и "remote communication protocol"? Между прочим, столь часто упоминаемая Вами "shared memory" - просто один из видов IPCs . Или Вы отказываете DB2 в праве использовать локальные IPCs? Если да, то на каком основании?
Кстати, в DB2 9.5 именно что "на несколько пользовательских процессов терминами IBM один agent".

Yo.!fenced процедура не может прямо обратится через IPC к структурам ядра, он вынужден координировать свою работу через некий протокол читать кусками сначала в DB2_FMP_COMM_HEAPSZ буфер (ок, используя IPC), т.е. все то же самое, что и обычное внешнее приложение в оракловом OCI.Уточню - fenced C. С этим никто не спорил, на то они и fenced. От обычного приложения отличаются работой под выделенными менеджерами - db2fmp. Если они fenced treadsafe, то могут не выгружаться из памяти по завершении и совместно использоваться разными коннектами, работая под одним db2fmp.

PS. Для меня не решенным остался принципиальный вопрос - в Оракле компилируемые (согласно документации) в момент создания триггеры и UDF на PL/SQL тоже под PVM живут, или под ней только SP?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35402458
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Favn
все, задолбался одно и то же разными словами ...

Favn
PS. Для меня не решенным остался принципиальный вопрос - в Оракле компилируемые (согласно документации) в момент создания триггеры и UDF на PL/SQL тоже под PVM живут, или под ней только SP?
все просто: если в коде есть процедурный код (читай PL/SQL) - будет переключение контекста на PL/SQL виртуальную машину, если есть декларативный SQL - будет переключение контекста на SQL машину.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35407694
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FavnPS. Для меня не решенным остался принципиальный вопрос - в Оракле компилируемые (согласно документации) в момент создания триггеры и UDF на PL/SQL тоже под PVM живут, или под ней только SP?Оракл не делает различий между триггерами, UDF и SP - это всё один тип (подразумевая, что это написано на PL/SQL).
Любой PL/SQL код выполняется PL/SQL виртуальной машиной.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35411484
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В плане производительности - достаточно печально. Понятно, зачем нужна native-компиляция в DLL.

В качестве итога - получается, что "бедность" SQL-PL в DB2 является скорее достоинством, особенно "совсем бедный" в триггерах и SQL UDF, оптимизирующийся и выполняющийся inline внутри запроса. Да и SP на SQL не требуют переключения контекста. А все задачи, требующие "богатого" языка, могут быть решены за счет вызова SP и UDF на внешних языках, тем более что Java-среда практически входит в поставку (бесплатно скачивается, на базе Eclipse). А взаимосвязи таких процедур с объектами БД, отслеживание изменений и разные варианты оптимизации поддерживаются концепцией pakage'ей.
Относительный минус (и возможный плюс в производительности) - SP в DB2, в т.ч. и на SQL-PL, могут требовать дополнительного администрирования для реоптимизации, решаемого несложными скриптами. А могут и не требовать при reop always :)
PL/SQL же, фактически, по модели работы ближе к внешней Java-машине, хотя, скорее всего, и быстрее ее за счет более тесной интеграции с сервером. Особенно меня впечатлили процессы при выполнении триггеров с SQL/PL - контексты выполнения туды-сюды для каждой записи, если я правильно понял... Жуть :)

ЗЫ Кстати, если кому интересно - в соседнем форуме увидел, что в DB2 9.5 добавили поддержку многих SQL-конструкций из Oracle:
DB2 Viper 2 compatibility features , Viper 2 - это пререлизное название 9.5
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35411731
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
дык, так давай проведем простенький эксперемент:
Db2 inline SQL PL vs PL/SQL UDF
я за одно на натив компиляцию PL/SQL наконец посмотрю. за одно можно посмотреть на сколько проиграет интерпритатор SQL PL нативной компиляции PL/SQL.

ЗЫ. и что db2 пакадж поможет отловить DBA "поломанные" процедуры после накатывания серии DDL команд ?
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35412244
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!дык, так давай проведем простенький эксперемент:
Db2 inline SQL PL vs PL/SQL UDF я за одно на натив компиляцию PL/SQL наконец посмотрю.
С экспериментом - для несложного эксперимента можно попробовать выкроить время, только Оракла у меня нет и в нем я креведко.
Только сравнивать тогда уж PL/SQL интерпретатор - отдельно, нативный (которым редко пользуются :) ) - отдельно. Правда, несложное сравнение все равно будет "сферической лошадью в вакууме" и выльется в сравнение железок :)
Yo.!за одно можно посмотреть на сколько проиграет интерпритатор SQL PL нативной компиляции PL/SQL.Для UDF с интерпретатором не получится - inline SQL PL выполняется в составе "дергающего" его запроса. "Inline SQL PL is described as "inline" because the logic is expanded into and executed with the SQL statements that reference them."
Yo.!ЗЫ. и что db2 пакадж поможет отловить DBA "поломанные" процедуры после накатывания серии DDL команд ?Да, пакдж как раз содержит все используемые статические запросы и их связи с др. объектами, все лежит в сис. таблицах. При создании пакаджа (если не указано validate run) проверяется валидность SQL, по результатам DDL на связанных с ним таблицах пакадж может стать невалидным.
...
Рейтинг: 0 / 0
Сравнение СУБД в сфере Web-приложений
    #35419118
писец_а
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не много не в тему но
есть множество систем (СУБД)
у каждого элемента этого множества (СУБД) есть множество опций (десятки)
у каждой опции есть множество параметров (тысячи)
у каждого параметра есть множество значений (тысячи)
итого получаем что у одной субд типа db2, orcale, ms sql есть 10.000.000 параметров.

Меняя значения параметров получаем разный результат. Мне вот не понятно каким человеком надо быть чтобы можно было оценить какая субд лучше с учётом всех значений этих параметров и их комбинации???? Помоему это сделать невозможно для человека :)

p.s. старался излагать доступным языком. могу изложить в терминах системного анализа но будет менее понятно.
...
Рейтинг: 0 / 0
278 сообщений из 278, показаны все 12 страниц
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Сравнение СУБД в сфере Web-приложений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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