powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Подходы к созданию приложений для СУБД: Embedded SQL против других способов
71 сообщений из 71, показаны все 3 страниц
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33007763
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема создана по мотивам http://www.sql.ru/forum/actualthread.aspx?tid=91031

Цели создания топика (типа регламент):
1) систематизировать подходы к созданию клиентских приложений (на чем писать "морду" приложения).
2) определить достоинства и недостатки каждого из подходов
3) Написать некоторый HOWTO, который наверняка поможет в выборе средств создания пользовательского интерфейса.

Топик помещен в раздел "Сравнения СУБД", т.к. выбор средств разработки часто зависит от конкретной СУБД. Надеюсь ход обсуждения будет конструктивным, без лишнего флейма. (Я не собираюсь обсуждать Delphy via С++)

Предлагаю сравнивать решения на примере реализации какой-либо практической часто используемой задачи. Если у кого-либо есть дополнительные пожелания, излагайте.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33007785
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это все понятно, но автор1) систематизировать подходы к созданию клиентских приложений (на чем писать "морду" приложения).
и
авторНадеюсь ход обсуждения будет конструктивным, без лишнего флейма. (Я не собираюсь обсуждать Delphy via С++)
Явно не совместимы.

К тому же автор1) систематизировать подходы к созданию клиентских приложений (на чем писать "морду" приложения). содержит в себе два совсем разных вопроса.

Давайте все же конкретнее определяться с вопросами.

-- Tygra's --
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33007825
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 tygra
У Вас есть шанс, предлагайте.
И поясните еще эту вашу мысль:
почему систематизировать подходы к созданию клиентских приложений (на чем писать "морду" приложения)
содержит в себе два совсем разных вопроса?

Я готов выделить несколько подходов:

1) Embedded SQL/C++
2) C/C++ (ODBC...)
3) Delphi (ODBC...)
4) Power Builder
5) Java, JDBC

Да, и еще - давайте пока-что не будем трогать многозвенные системы.

У кого будут дополнения?
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33007830
Опять мальчишки клею нанюхались и тигру дрязнят...
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33007854
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю надо сосредоточиться не на "морде" (Delphi/C++/PB/...) а на инструменте, через который эта морда работает c БД.
Т.е.:
1. EmbedSQL
2. "Родной" API клиент (DB2Cli/Sybase OpenClient/CTLib/...)
3. Высокоуровневые обертки (ODBC/BDE/ADO/...)
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33007866
Byte256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда уже лучше ASP.NET :-)
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33007872
Byte256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Byte256Тогда уже лучше ASP.NET :-)

Т.е. это... ADO.NET как интерфейс доступа к SQL.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33007875
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Ggg_old
согласен

Типовую задачу будем брать?
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33007886
При разработке приложения самое главное - создать модель, адекватно отражающую требования к системе в предметном плане.
А задачи выбора средства создания клиентской части не существует в принципе. Те люди, которые хорошо владеют несколькими инструментами, сами выберут нужное средство, а чайник должен читать книжки и набираться опыта. И никакой задачи по систематизации подхода перед чайником не стоит и стоять не может. Потому что он чайник.

Так что предложенная Вами тема, ув. gardemarin, не несет в себе абсолютно никакой семантической нагрузки.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33007930
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2gardenman:
Типовую задачу брать будет сложно. Ведь все зависит от "отрасли народного хозяйства" и особенностей ее автоматизации.

Как мне кажется, по большому счету выбор способа данныз зависит от факторов:
1. Доступность технологии способа досупа к БД в зависимости от инструмента разработки (из С++ с JDBC не поработаешь). Кросплатформенность.
2. Сложность инструмента (время необходимое на его изучение), простота дальнейшей его эксплуатации (разработка/конфигурирование/развертываение приложений).
3. Приоритет производительность инструмента vs простота в использовании. (конфликт с пунктом 2).
4. Поддержка необходимых возможностей БД (множественные resultsets/blob/callback...)

Про "народное хозяйство"
Я думаю, что вам лучше известны "особенности" телекомов. Скорее всего, здесь критична производительность всех компонентов биллинга, в т.ч. и прослойки. Вполне возможно, что EmbedSQL - это именно то, что надо. А может и нет, я не уверен.
При разработке какого нибудь складского или банковского АРМ, гибкость и простота в разработке и дальнейшем сопровождении важнее, чем производительность. Т.е разные приоритеты выбора.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33007931
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хитрый портняжкаПри разработке приложения самое главное - создать модель, адекватно отражающую требования к системе в предметном плане.
А задачи выбора средства создания клиентской части не существует в принципе. Те люди, которые хорошо владеют несколькими инструментами, сами выберут нужное средство, а чайник должен читать книжки и набираться опыта. И никакой задачи по систематизации подхода перед чайником не стоит и стоять не может. Потому что он чайник.

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

Тов. Хитрый портняжка выразил мысль, что выбор средства разработки пользовательского интерфейса не влияет на модель (я правильно понял?)
Если еще немного подумать, и продолжить его мысль, то ... может на модель не влияет и выбранный для разработки сервер БД?
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33007965
Могу добавить, что в отношении вопроса выбора средства реализации persistence - уровня приложения критерии те же. Так что обсуждение беспредметно.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33007970
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсли еще немного подумать, и продолжить его мысль, то ... может на модель не влияет и выбранный для разработки сервер БД?
Точно! Совсем не влияет.

ЗЫ Модель БД вообще в ErWin делают, там пофиг - Оракл, Sybase.... Модель - это модель, хоть где.

Ну если же говорить о модели всего приложения.... То тоже в общем-то не влияет. Ни клиент, ни сервер.

-- Tygra's --
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008001
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм... странно... А у меня совсем другое мнение.

Возьмем типовой пример:
Необходимо реализовать контекстный поиск клиента по ФИО, создание отчета по произвольной группе клиентов. Кажется вроде-бы простая задача, но на разных серверах это будет выглядеть по-разному.
Может Тигра предложит решение которое будет хорошо работать в любом случае?
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008016
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выглядеть по-разному - наверное, TSQL и PL/SQL отличаются.
Т.е. разными будут конкретные методы реализации.
Но модель то будет одна и та же.
Если обсуждать именно методы реализации конкретных задач - то это вообще нереально.

-- Tygra's --
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008020
2 gardemarin

Может, Вам стоит изучить методы проектирования, ООП, типовые CASE - средства? Попробуйте, не пожалеете.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008062
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хитрый портняжка2 gardemarin

Может, Вам стоит изучить методы проектирования, ООП, типовые CASE - средства? Попробуйте, не пожалеете.

неужто вы думаете что я не юзаю хотя бы тот же PD? или тот же C++ разве не использует методов ООП? Хотя... выражу свою точку зрения - использование CASE средств и ООП абсолютно не гарантирует качественной реализации проекта
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008105
Использование PD и C++ не о чем не говорит. О чем-то говорит, что Вы не понимаете основной роль адекватного моделирования при создании сложных систем. А умение создания клиентской/серверной части/выбор диалекта SQL - это уменее на уровне выбора гусиное перо/шариковая ручка.
Разница, есть, конечно. Достоевскому не помешал бы Parker, согласен. Дело в том, что дьячки - писари сами по себе уже спросом не пользуются. Писать умеют все.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008141
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПисать умеют все -слишком смелое утверждение. Я б под таким не подписался.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008146
Ну, хорошо. Скажем так: "кодеров много".
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008150
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю отойти от темы про проектирование БД, т.к. основная
цель этого топика: "Embedded SQL против других способов". Т.е речь идет о технологиях доступа(работы) с БД. Их преимуществах и недостатках.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008244
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Ggg_old

некоторые оговорки
Вложенный SQL плохо (отвратительно) реализован в MSSQL, Sybase ASE, PostgreSQL, MySQL(нет вообще). Про Sybase ASA - ничего не могу сказать (не смотрел) но думаю ASA не далеко ушла от ASE. Относительно приемлемо реализован а Oracle, и нормальня реализация - только в DB2.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008337
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что, кому-то не хватило TSQL например? Или PL/SQL???

Мне всегда хватает. Пользуюсь только им.
На клиенте есть только exec MySP...

-- Tygra's --
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008413
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 tygra
А каким образом передаются параметры для ХП? а каким образом возвращаются?
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008466
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через ADO.

-- Tygra's --
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008491
GG2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GG2
Гость
gardenman2 Ggg_old

некоторые оговорки
Вложенный SQL плохо (отвратительно) реализован в MSSQL, Sybase ASE, PostgreSQL, MySQL(нет вообще). Про Sybase ASA - ничего не могу сказать (не смотрел) но думаю ASA не далеко ушла от ASE . Относительно приемлемо реализован а Oracle, и нормальня реализация - только в DB2.Раз не можете сказать, так и не говорите.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008497
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а мааааленький такой пример кода приведи?...
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008535
gardenman
Вложенный SQL плохо (отвратительно) реализован в MSSQL, Sybase ASE, PostgreSQL, MySQL(нет вообще). Про Sybase ASA - ничего не могу сказать (не смотрел) но думаю ASA не далеко ушла от ASE. Относительно приемлемо реализован а Oracle, и нормальня реализация - только в DB2.
Что за хрень?! А почему, к примеру, про InterBase не упомянули? Там тоже разбираться нужно, сразу не запустишь! :))
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008562
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к сожалению ни разу в жизни FB или Интербейз не ставил... руки не дошли.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008926
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanа мааааленький такой пример кода приведи?...
Код: plaintext
1.
2.
MyProc.Parameters.ParamValue['@i']:=i;
MyProc.ExecSQL;
i:=MyProc.Parameters.ParamValue['@i'];
пойдёт?
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33008960
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не-а не пойдет... приведи примерчик полностью, как полагается, с объявлением переменных (их типов), с возвратом итоговой выборки...
чтоб был полностью весь код виден. Я ж тоже могу написать:
Par=10;
EXEC SQL CALL MyProc(:Par);
Не страшнее вашего получится.
Реально - нужен примерчик покрупнее. Чтоб было что сравнивать. Мне что, придумать тестовое задание что-ли?...
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009001
Ну, тебе и привели код. Что, нужно было указать объявление TADOStoredProc?
Инициализацию его, причем обязательно в рантайме?

Или код коннекта к базе? Или сам код ХП? Или весь фреймворк - со схемой организации доступа клиента к базе?

Я могу привести тебе код работы в ECO:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 MyECOSystem.Active := true; // Это коннект к базе
 fMyClass.Attr_Name := 'Первый атрибут'; // Вот занесли значение атрибута в объект
 tmpString := fMyClass.Attr_Name // Вот занесли извлекли значение атрибута объекта

 MyECOSystem.update; // Вот апдейт в persistemce - область

 MyECOSystem.Active := falsa; // Это дисконнект
И все. Или нужно переменные объявлять/классы генерить/инициализировать атрибуты? Что ты хочешь-то?
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009010
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторне-а не пойдет... приведи примерчик полностью, как полагается, с объявлением переменных (их типов), с возвратом итоговой выборки...
чтоб был полностью весь код виден.
Это и есть весь код :))
Это же Дельфи - там все само делается, компонентами :))
Ну еще я перед этим в свойство sql пропишу:
Код: plaintext
exec MyStoredProc :i, :Name
А потом уже
Код: plaintext
1.
2.
3.
4.
MyProc.ParamByName['i'].asinteger :=  1 ;
MyProc.ParamByName['Name'].asstring := 'Вася';
MyProc.Open;
--или еще можно так:
MyProc.ExecSQL;
Вот и все. Чего еще?
Чего там, в MyStoredProc, делается, клиента не касается.


-- Tygra's --
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009118
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нить покажет как в дельфях проволятся операции с блобами?
Ну там - вставить в табличку запись с полем BLOB или вытащить?
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009142
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вытащить то каие проблемы? Пиши в select нужное поле - оно и приедет в Дельфу. Дальше делай, чего хочешь.

А если сохранить на сервер, то вот тут: Как добавить картинку в базу данных?

-- Tygra's --
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009166
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanКто-нить покажет как в дельфях проволятся операции с блобами?
Ну там - вставить в табличку запись с полем BLOB или вытащить?
Т.е. насчет передачи обычных переменных через параметры Вы убедились что сложностей нет?

Про БЛОБы ничего не могу сказать, не работал, но думаю и там не намного больше писать
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009179
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однако как апетиты растут :)

15:00
gardenman А каким образом передаются параметры для ХП? а каким образом возвращаются?
а мааааленький такой пример кода приведи?...

17:16
gardenman Реально - нужен примерчик покрупнее. Чтоб было что сравнивать. Мне что, придумать тестовое задание что-ли?...

18:06
gardenman Кто-нить покажет как в дельфях проволятся операции с блобами?
Ну там - вставить в табличку запись с полем BLOB или вытащить?
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009191
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 SergSuper
Та какие там апетиты?))...
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009222
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2gardenman:
Промежуточный итог.
Если с БД можно работать в стиле
TDatabase.connect
TQuery.SQL="select ..."
a=TResultSet.Field['field_name']
Причем без разницы, как будет называться фреймворк, который обеспечивает это (BDE, ADO), то ни один разработчик не будет работать с БД в стиле:
-написать промежуточный cxx код
-прогнать его через макрокомпилятор
-почитсить глюки с помощью батничка
-забинидить bnd файл на SQL сервер
и.т.д как вы написали в
http://]www.sql.ru/forum/actualthread.aspx?tid=91031

Когда я предлагал создать этот топик очень надеялся, что появится человек, который объяснит инженерным языком, в каких случаях и на каких задачах более сложное программирование на EmbedSQL оправдано. Я действительно не понимаю, зачем писать на EmbedSQL, при наличии более человеческого способа работы с базой. И судя по всему остальный считают также (ИМХО).
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009337
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
two-phase транзакции можно писать на этом вашем ADO?

например, я хочу записать 1 строку в DB2, одну в Oracle, одну в MSSQL, ну и так далее, в одной транзакции. Например, с TXSeries.
на ESQL я этот трюк делал.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009351
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще одна фича в ESQL. Она называется COMPOUND SQL. Это нечто среднее между SQL c рабочей станцией и хранимой процедурой.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009461
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewYeartwo-phase транзакции можно писать на этом вашем ADO?

например, я хочу записать 1 строку в DB2, одну в Oracle, одну в MSSQL, ну и так далее, в одной транзакции. Например, с TXSeries.
на ESQL я этот трюк делал.

И кто координатором распределённой транзакции выступал?
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009465
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanЕсть еще одна фича в ESQL. Она называется COMPOUND SQL. Это нечто среднее между SQL c рабочей станцией и хранимой процедурой.

Если ESQL реализуется посредством препроцесоора, то кто помешает выполнить ту же задачу без препроцессора, с использованием любой технодогии доступа к СУБД?
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009584
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 gardenman

>Вложенный SQL плохо (отвратительно) реализован в MSSQL, Sybase ASE, PostgreSQL, MySQL(нет вообще). Про Sybase ASA - ничего не могу сказать (не смотрел) но думаю ASA не далеко ушла от ASE. Относительно приемлемо реализован а Oracle, и нормальня реализация - только в DB2.

А поподробнее можно? Я работал с вложенным скл-ем в АСА, постгре, оракле и ДБ2, правда не очень много, и существенных различий не обнаружил.

Как мне показалось тут основная проблема проблема не в СКЛ сервере, а в проблемах реализации связки СКЛ<->процедурный_язык, в данном случае С. Кстати та же проблема в языках типа Т-СКЛ: все хорошо пока не начинаешь работать с курсорами.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009609
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg_oldКогда я предлагал создать этот топик очень надеялся, что появится человек, который объяснит инженерным языком, в каких случаях и на каких задачах более сложное программирование на EmbedSQL оправдано. Я действительно не понимаю, зачем писать на EmbedSQL, при наличии более человеческого способа работы с базой. И судя по всему остальный считают также (ИМХО).
ESQL очень даже удобно, код гораздо читабельней, чем через компоненты, плюс во время его компиляции ESQL сразу же проверяется на сервере, параметры легко передавать, получать прямо в переменные, обьявленные в коде, легко вызывать ХП, организовывать локальные курсоры по полученным наборам данных с запросов и ХП, и т.д. Все это, например, есть в PowerBuilder, причем в нем ESQL не заточен под определенную СУБД, а работает под поднятой сверху сессией/сессиями, которые могут идти через ODBC, ADO, OLEDB, ADO.NET, JDBC, ...

gardenmanВложенный SQL плохо (отвратительно) реализован в MSSQL, Sybase ASE, PostgreSQL, MySQL(нет вообще). Про Sybase ASA - ничего не могу сказать (не смотрел) но думаю ASA не далеко ушла от ASE. Относительно приемлемо реализован а Oracle, и нормальня реализация - только в DB2.
Сам я с реализацией ESQL в ASA не работал, так как считаю дурным тоном рисовать клиентские мордочки на C, но думаю что судя по описаниям ESQL и примерам кода в BOL, его реализация в ASA более чем удовлетворительная ;)
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009668
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraЭто же Дельфи - там все само делается, компонентами :))


Не надо о грустном Тут маааленький UDP сервер писал на Delphi. После этого решил для себя больше никогда не использовать эти клятые компоненты. Легче самому с WinSock-ом работать.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009813
protector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)
Не надо о грустном Тут маааленький UDP сервер писал на Delphi. После этого решил для себя больше никогда не использовать эти клятые компоненты. Легче самому с WinSock-ом работать.

Правильно! Это же ДЕЛФИ. Тут каждый делает как ему нравится.


Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009918
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 c127
>А поподробнее можно? Я работал с вложенным скл-ем в АСА, постгре, оракле и ДБ2, правда не очень много, и существенных различий не обнаружил.

Различия очень существенные. Особенно это касается где и как объявлять хост - переменные. Например в DB2 это могут быть ссылки и указатели, которые могут быть членами классов.
К тому же, результат обработки препроцессором - совершенно разный. Где-то просто получается динамический SQL (PostgreSQL) а где-то - хранимая процедура специфического вида (Sybase ASE). У DB2 (как правило) - получается статический SQL с уже предопределенным планом запроса. Скорость выполнения выше в разы. Вот и получается, что статический SQL помноженный на производительность C++ - дает бешенную производительность.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33009996
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>И кто координатором распределённой транзакции выступал?
TXSeries
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33010255
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanУ DB2 (как правило) - получается статический SQL с уже предопределенным планом запроса. Скорость выполнения выше в разы. Вот и получается, что статический SQL помноженный на производительность C++ - дает бешенную производительность.
Вы уже не впервый раз сохранение плана запроса при компиляции ХП выдаете за этакое преимущество, что вот мне совершенно не понятно. Есть у меня БД девелоперов, она находится в разработке и содержит достаточно небольшое кол-во тестовых данных, охватывающих различные аспекты ТЗ с целью наиболее удобного тестирования бизнес-логики. После проведения изменений в ней корректирующие SQL скрипты уходят на консолидированную БД с требованием выполнится на ней и всех удаленных узлах (БД). Естественно консолидированная БД содержит информацию всех узлов. Далее после проведения сеанса репликации каждый удаленный узел так же получает корректирующий скрипт и выполняет его, помимо обычного сеанса приема/передачи изменений данных. Узлов у нас например 500. Все идут через оффлайн (почта, ftp, файловый обмен - без разницы). На каждом узле информация, принадлежащая только ему. Соотвествующе на одном узле большая БД, на другом крохотная, на одном например стоит навороченный сервер под UNIX, на другом обычный PC с W2K Prof. Внимание вопрос - это интересно как же это при компиляции ХП на девелоперской БД с учетом ее "левых" данных мы обеспечим бешеную производительность для консолидированной БД и ее удаленных узлов ? Божьим духом, принудительной перекомпиляций скриптом или запиской для "опытных" пользователей - типа войди и перекомпилируй и будет тебе счастье (причем на Си) ?

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

Кстати все вышесказанное к Sybase ASA в полной мере относится и к серверу Sybase IQ, который в отличие от ASA, заточеннуб для SMB, "ориентирован" на нулевое администрирование аналитических БД больших обьемов.

Так что пожалуйста уж поясните свои высказывания, почему круто писать ХП на Си, да еще и компилировать прямо в них планы запросов ? В плане скорости я отметаю сразу - в ASA например планы ХП компилируются при первом к ним обращении после запуска сервера (если их еще нет в сохраненном кэше), причем они не привязываются к ХП, а висят как просто планы к запросам, которые вызываются в том числе и из ХП. Время построения плана запросов занимает миллисекунды (если конечно не вывести уровень компиляции с нормального 9-ого уровня на максимальный 15, что уже будет соотвествовать полному перебору всех возможных видов планов запросов) - так что проблем со скоростью построения планов лично я ни разу не наблюдал, у Watcom всегда были неплохие скорости в различных решениях :)
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33010395
f_w_p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Не надо о грустном Тут маааленький UDP сервер писал на Delphi. После этого решил для себя больше никогда не использовать эти клятые компоненты. Легче самому с WinSock-ом работать.
Все таки, я думаю, тут Delphi и Indy не при чем. Это Windows реализация сокетов несколько странноватая.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33010426
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ASCRUS
Написано много и очень эмоционально.
>почему круто писать ХП на Си - речь не только о ХП, но и о клиентском приложении тоже.
На счет хранения планов я могу сказть, что как правило существует наиболе оптимальный план выполнения запросов, не зависящий даже от статистики.
если рассмативать что-то типа:
select * from A,B where A.a=? and A.id>=? and b.id=a.id order by A.a,A.id
fetch first 50 rows only
то естественно нужно построить два индекса A(a,id) и B(id) (если B- какой-то справочник для A), то неужто нужно чтобы оптимизатор срабатывал для таких запросов? Для таких вещей лучше раз и навсегда построить план и не мучать систему, особенно, когда таких запросов приходят пачки за секунду.
А разве ни у кого не бывало так, что по мере наполнения базы данных вдруг
(даже при актуальной статистике) все начинает тормозить, появляются tablescan или порядок соединения в запросе меняется?
Честно говоря, оптимизатор - вещь хорошая, но я слегка нигиллист, и не могу полностью на него положиться. А если планы перестраиваются часто, - их трудно контролировать. Например если дабавил какой-то индекс на таличку, то по идее оптимизатор должен перестроить планы. А мне это не всегда нужно. Изменилась статистика - опять перестроить. Что в результате получится - я не знаю. Конечно можно просто положиться на оптимизатор, но у кого нет ошибок? Да и вы сами знаете что все планы выполнения просмотреть иной раз невозможно. Я предпочитаю знать что и как у меня обрабатывается в системе и не пускть это дело на самотёк. Это вообще что-то из темы - почему откомпилированное (в машинные коды естесс-но) приложение работает быстрее чем интерпретируемое или откомпилированное в байт-код.
А вообще я не понимаю зачем вы приплели сюда репликацию? Она тут вообще нипричем.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33010624
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 gardenman
Т.е. вы утверждаете, что за всеми планами в вашей БД лично вы гораздо лучше уследите, лучше учтете все возможности и условия для всех запросов, чем оптимизатор. Так? ТАК??????

О, шайтан аднака! Многозадачный шайтан!

-- Tygra's --
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33010675
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanНа счет хранения планов я могу сказть, что как правило существует наиболе оптимальный план выполнения запросов, не зависящий даже от статистики.
если рассмативать что-то типа:
select * from A,B where A.a=? and A.id>=? and b.id=a.id order by A.a,A.id
fetch first 50 rows only
то естественно нужно построить два индекса A(a,id) и B(id) (если B- какой-то справочник для A), то неужто нужно чтобы оптимизатор срабатывал для таких запросов? Для таких вещей лучше раз и навсегда построить план и не мучать систему, особенно, когда таких запросов приходят пачки за секунду.
Такие примитивные запросы разве что клиентские приложения посылают. Они оседают в кэше оптимальных планов, раз строятся и работают. Если информация кардинально изменилась, планы перестраиваются, оседают в кэше и снова наступает затишье без перекомпиляции.

gardenmanА разве ни у кого не бывало так, что по мере наполнения базы данных вдруг
(даже при актуальной статистике) все начинает тормозить, появляются tablescan или порядок соединения в запросе меняется?
Честно говоря, оптимизатор - вещь хорошая, но я слегка нигиллист, и не могу полностью на него положиться. А если планы перестраиваются часто, - их трудно контролировать. Например если дабавил какой-то индекс на таличку, то по идее оптимизатор должен перестроить планы. А мне это не всегда нужно. Изменилась статистика - опять перестроить. Что в результате получится - я не знаю. Конечно можно просто положиться на оптимизатор, но у кого нет ошибок?
Ну во первых в результате добавления, изменения индексов/статистики не факт, что оптимальные планы будут перестроены - с чего бы это вдруг, если существующие в кэше отрабатывают в разумное время ? Во вторых для действительно сложных запросов с использованием параметров планы будут разные в зависимости от значения этих параметров - где то выгоднее индекс, где то хэш-соединение, а где то и Table Scan. Причем планы могут получатся кардинально разными, соединения в них между таблицами/процедурами не будут статичны в плане, а значит статически сгенерить и запомнить план, который бы подходил для любого случая в жизни да еще и для любой БД с своей информацией по моему не реальная задача. В третьих извиняюсь, если один и тот же запрос/представление/ХП используется в других запросах, которые могут быть как OLTP с различными уровнями изоляции (что актуально для блокировочников), так и OLAP с нарастающими функциями (те же Window функции), то и тут планы запросов могут кардинально отличаться, в ASA при построении планов запросов оптимизатор учитывает не только момент как быстрее выполнить, но и как не просадить выполнением сервер по отношению к другим сессиям в отношении ресурсов и блокировок и где например, несмотря на наличие более удачного индекса предпочтение может отдасться PK или Unique только из за того, что запрос выполняется на высшем уровне изоляции и уникальный индекс позволяет снизить нагрузку на блокировки в плане ресурсов и деятельности других сессий.

gardenmanДа и вы сами знаете что все планы выполнения просмотреть иной раз невозможно. Я предпочитаю знать что и как у меня обрабатывается в системе и не пускть это дело на самотёк. Это вообще что-то из темы - почему откомпилированное (в машинные коды естесс-но) приложение работает быстрее чем интерпретируемое или откомпилированное в байт-код.
В жизнь не поверю, что в DB2 нет профайлера ХП, консультанта индесов и дебаггера. Запускаем профайлер, он собирает статистику по выполнению всех ХП, триггеров и функций, далее визуально видим полный список того, что выполнилось, сколько в процентном и временном отношении это заняло, соотвествующе тормозные ХП при сортировке по времени выполнения будут стоять первыми в гриде. Далее опять же в профайлере уже по коду этих ХП по строкам смотрим время и процент выполнения и сразу же видим запросы которые тормозят. Далее по желанию - можем запустить консультант индексов, который во время реальной работы БД соберет всю информацию по выполненным с ХП запросам и на каждый запрос даст рекомендации по недостающим/лишним индексам, показав тут же план запроса "Как есть" и "Как может быть". Или же в дебаггере на этих тормозящих строчках в ХП шлепнем бряк-пойнты, выполним их, остановимся в нужных местах и вполне культурно тут же в дебагере повыполняем запросы из этих ХП, посмотрим их планы, статистику, значения глобальных и локальных переменных, посоздаем виртуальных индексов и посмотрим насколько они нравятся оптимизатору, ну и т.д. По моему так или иначе любая РСУБД имеет более чем достаточно средств для мониторинга и профайлинга выполнения запросов и ХП, разве что у кого то удобнее, у кого то не так удобно сделано.

gardenmanА вообще я не понимаю зачем вы приплели сюда репликацию? Она тут вообще нипричем.
А затем, что репликация тоже дает нагрузки на сервер, особенно если ей сказано не протоколировать действия триггеров и ХП, а дублировать на консолидированных/удаленных БД их вызовы. Надо думать здесь тоже начинает работать оптимизатор и для каждой БД план запросов для ХП и триггеров может отличаться и при выполнении репликации.

Гм, отсюда пару моралей (конечно лично моих и спорных с точки зрения специалистов других РСУБД):
1. Оптимизатора не нужно боятся, его нужно понимать и вести совместную работу, как партнером, который конечно же тоже может ошибаться и подвести.
2. Для серверов, ориентированных на распределенную работу с множеством удаленных точек, как самостоятельных серверов посредством репликаций, правила игры будут одни (это нулевое администрирование всех частей СУБД), для тех, у кого решения базируются на централизованной работе правила игры могут быть другими (думаю тут впервую очередь будет идти масштабируемость, гибкость настроек и скорость работы). Может быть здесь статическая компиляция планов/статистики и прокатит, в моих решениях на ASA кроме геммора бы она ничего не принесла, поэтому я очень рад, что ее в природе не существует :)
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33010678
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 в процессе отладки и настройки все примерно так и происходит) а после - зачем следить? ведь все же будет работать
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33010699
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах, еслиб все всегда так было как говорит ASCRUS....
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33010700
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор2 в процессе отладки и настройки все примерно так и происходит) а после - зачем следить? ведь все же будет работать

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

-- Tygra's --
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33010710
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
f_w_p Gluk (Kazan)Не надо о грустном Тут маааленький UDP сервер писал на Delphi. После этого решил для себя больше никогда не использовать эти клятые компоненты. Легче самому с WinSock-ом работать.
Все таки, я думаю, тут Delphi и Indy не при чем. Это Windows реализация сокетов несколько странноватая.

Реализация нормальная, в первой версии я с ней работал. А счас увидел в 7-ке компоненты и решил время сэкономить, будь оно все не ладно
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33010798
ASCRUS gardenmanНа счет хранения планов я могу сказть, что как правило существует наиболе оптимальный план выполнения запросов, не зависящий даже от статистики.
если рассмативать что-то типа:
select * from A,B where A.a=? and A.id>=? and b.id=a.id order by A.a,A.id
fetch first 50 rows only
то естественно нужно построить два индекса A(a,id) и B(id) (если B- какой-то справочник для A), то неужто нужно чтобы оптимизатор срабатывал для таких запросов? Для таких вещей лучше раз и навсегда построить план и не мучать систему, особенно, когда таких запросов приходят пачки за секунду.
Такие примитивные запросы разве что клиентские приложения посылают. Они оседают в кэше оптимальных планов, раз строятся и работают. Если информация кардинально изменилась, планы перестраиваются, оседают в кэше и снова наступает затишье без перекомпиляции.

gardenmanА разве ни у кого не бывало так, что по мере наполнения базы данных вдруг
(даже при актуальной статистике) все начинает тормозить, появляются tablescan или порядок соединения в запросе меняется?
Честно говоря, оптимизатор - вещь хорошая, но я слегка нигиллист, и не могу полностью на него положиться. А если планы перестраиваются часто, - их трудно контролировать. Например если дабавил какой-то индекс на таличку, то по идее оптимизатор должен перестроить планы. А мне это не всегда нужно. Изменилась статистика - опять перестроить. Что в результате получится - я не знаю. Конечно можно просто положиться на оптимизатор, но у кого нет ошибок?
Ну во первых в результате добавления, изменения индексов/статистики не факт, что оптимальные планы будут перестроены - с чего бы это вдруг, если существующие в кэше отрабатывают в разумное время ? Во вторых для действительно сложных запросов с использованием параметров планы будут разные в зависимости от значения этих параметров - где то выгоднее индекс, где то хэш-соединение, а где то и Table Scan. Причем планы могут получатся кардинально разными, соединения в них между таблицами/процедурами не будут статичны в плане, а значит статически сгенерить и запомнить план, который бы подходил для любого случая в жизни да еще и для любой БД с своей информацией по моему не реальная задача. В третьих извиняюсь, если один и тот же запрос/представление/ХП используется в других запросах, которые могут быть как OLTP с различными уровнями изоляции (что актуально для блокировочников), так и OLAP с нарастающими функциями (те же Window функции), то и тут планы запросов могут кардинально отличаться, в ASA при построении планов запросов оптимизатор учитывает не только момент как быстрее выполнить, но и как не просадить выполнением сервер по отношению к другим сессиям в отношении ресурсов и блокировок и где например, несмотря на наличие более удачного индекса предпочтение может отдасться PK или Unique только из за того, что запрос выполняется на высшем уровне изоляции и уникальный индекс позволяет снизить нагрузку на блокировки в плане ресурсов и деятельности других сессий.

gardenmanДа и вы сами знаете что все планы выполнения просмотреть иной раз невозможно. Я предпочитаю знать что и как у меня обрабатывается в системе и не пускть это дело на самотёк. Это вообще что-то из темы - почему откомпилированное (в машинные коды естесс-но) приложение работает быстрее чем интерпретируемое или откомпилированное в байт-код.
В жизнь не поверю, что в DB2 нет профайлера ХП, консультанта индесов и дебаггера. Запускаем профайлер, он собирает статистику по выполнению всех ХП, триггеров и функций, далее визуально видим полный список того, что выполнилось, сколько в процентном и временном отношении это заняло, соотвествующе тормозные ХП при сортировке по времени выполнения будут стоять первыми в гриде. Далее опять же в профайлере уже по коду этих ХП по строкам смотрим время и процент выполнения и сразу же видим запросы которые тормозят. Далее по желанию - можем запустить консультант индексов, который во время реальной работы БД соберет всю информацию по выполненным с ХП запросам и на каждый запрос даст рекомендации по недостающим/лишним индексам, показав тут же план запроса "Как есть" и "Как может быть". Или же в дебаггере на этих тормозящих строчках в ХП шлепнем бряк-пойнты, выполним их, остановимся в нужных местах и вполне культурно тут же в дебагере повыполняем запросы из этих ХП, посмотрим их планы, статистику, значения глобальных и локальных переменных, посоздаем виртуальных индексов и посмотрим насколько они нравятся оптимизатору, ну и т.д. По моему так или иначе любая РСУБД имеет более чем достаточно средств для мониторинга и профайлинга выполнения запросов и ХП, разве что у кого то удобнее, у кого то не так удобно сделано.

gardenmanА вообще я не понимаю зачем вы приплели сюда репликацию? Она тут вообще нипричем.
А затем, что репликация тоже дает нагрузки на сервер, особенно если ей сказано не протоколировать действия триггеров и ХП, а дублировать на консолидированных/удаленных БД их вызовы. Надо думать здесь тоже начинает работать оптимизатор и для каждой БД план запросов для ХП и триггеров может отличаться и при выполнении репликации.

Гм, отсюда пару моралей (конечно лично моих и спорных с точки зрения специалистов других РСУБД):
1. Оптимизатора не нужно боятся, его нужно понимать и вести совместную работу, как партнером, который конечно же тоже может ошибаться и подвести.
2. Для серверов, ориентированных на распределенную работу с множеством удаленных точек, как самостоятельных серверов посредством репликаций, правила игры будут одни (это нулевое администрирование всех частей СУБД), для тех, у кого решения базируются на централизованной работе правила игры могут быть другими (думаю тут впервую очередь будет идти масштабируемость, гибкость настроек и скорость работы). Может быть здесь статическая компиляция планов/статистики и прокатит, в моих решениях на ASA кроме геммора бы она ничего не принесла, поэтому я очень рад, что ее в природе не существует :)

О МНОГОСЛОВНЫЙ ASCRUS! Ты опять создал видимость своей значимости потоком predefined-true's высказываний.
Ты ВЕЛИК!
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33010869
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygra автор2 в процессе отладки и настройки все примерно так и происходит) а после - зачем следить? ведь все же будет работать

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

-- Tygra's --

Критерий скорости работы - кнопку на приложении тыкнул и - сразу ответ, без всяких задержек... если задержка больше 1 сек - то уже неудовлетворительно.Ну, естественно исключая отчеты, в которых тянутся на печать тысячи записей, а что касается юзеровского интерфейса - именно так.
И причем чтоб сервер не какой-нить навороченный, а попроще - кэша под базу эдак до 100 метров, частотка до гигагерца, IDE диски, а записей в таблице от миллиона.
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33010932
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКритерий скорости работы - кнопку на приложении тыкнул и - сразу ответ, без всяких задержек... если задержка больше 1 сек - то уже неудовлетворительно.Ну, естественно исключая отчеты, в которых тянутся на печать тысячи записей, а что касается юзеровского интерфейса - именно так.
И причем чтоб сервер не какой-нить навороченный, а попроще - кэша под базу эдак до 100 метров, частотка до гигагерца, IDE диски, а записей в таблице от миллиона.
Большая Записная Книжка? :))


-- Tygra's --
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33010945
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хитрый портняжка О МНОГОСЛОВНЫЙ ASCRUS! Ты опять создал видимость своей значимости потоком predefined-true's высказываний.
Ты ВЕЛИК!
Спасибо Хитрый портняжка, но область моей видимости значимости является распределенным между различными форумами SQL.RU понятием, где в зависимости от направления форума, его целей и моей роли в его жизни, она (область) может варьироваться не только predefined-true's высказыванями, но и более конкретными мыслями/советами при условии адекватного понимания жителей форума обсуждаемого предмета/технологии/идеи/проблемы. Однако сложно в форумах подобно этому высказывать не истины хотя бы из за разности знаний, взглядов и используемых технологий между различными специалистами, тут уж приходится верить на слово. Так что когда мне специалисты по DB2 говорили, что у IBM один из самых лучших и умных оптимизаторов, который и без хинтов спокойно разруливает сложные планы запросов, я полностью и безоговорочно верил, потому что причин сомневаться просто не было. С другой стороны, когда gardenman рассказывает как это круто в DB2 компилировать и статически сохранять в Си коде планы хранимых процедур, я начинаю видеть некий призрак "хинтов", в более неявной форме и закономенрно у меня возникает вопрос - это просто он не доверяет оптимизатору (что не возбраняется, если все удачно работает) или же у DB2 все таки не до такой степени самый умный оптимизатор и народ просто выкручивается в других направлениях, о которых мы просто и не могли бы подумать ? Как Вы лично считаете - какая из этих мыслей более правильная или же есть еще варианты ? Я всегда рад выслушать мнение, логически и обоснованно противоречащее моему, очень говорят повышает кругозор мыслительных процессов :)
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33010994
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Tygra
А разве базы данных - это не большая записная книжка, в которой все упорядоченно и все быстро находится?

2 ASCRUS
Я не в коей мере не качу бочку на оптимизатор DB2. Я вообще считаю его лучшим. Просто при работе с базой стараюсь телать как можно меньше телодвижений. Экономлю ресурсы)))
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33011768
Ораклоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PL\SQL + ... а зачем нам что-то ещё?... :D шютка... ну там С# можно новомодный прикрутить, чтоб там всякие формочки/кнопочки... или старую добрую Дельфу...

Впрочем, меня поразило вот что:
>На счет хранения планов я могу сказть, что как правило существует наиболе оптимальный план выполнения запросов, не зависящий даже от статистики.

Большего бреда ещё в жизни не слышал... иээхх было б время побольше, притащил бы я вам примерчик где в зависимости от количества записей Оракловский оптимизатор будет использовать толи FULL SCAN толи доступ по индексу, причём разница будет в десятки раз. Конечно, тут все громко закричат - "Оракл - отстой ие го В-Тreешные индексы тоже - в ДБ2 индексы организованы так, что они прям как Иисус Христос - сплошное и непереходящее ДОБРО!!!" Но даже, если бы это было и так (во что я, лично, не шибко верю), то наверняка нашлись бы другие приколы, которые влияли бы на производительность плана запроса (в некоторых случаях кардинально), поэтому "единственный и нетленный" план запроса может и существовать, как частность, но обобщать... :/ Как представлю хинты в каждом запросе... :D
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33011786
Ораклоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>А разве базы данных - это не большая записная книжка, в которой все упорядоченно и все быстро находится?

Тут я вообще, чуть кофе не захлебнулся и не подавился печенюшкой - чувак, нафига те СУБД - в самом простом и весёлом текстовом файле тоже можно всё красивенько упорядочить и быстро находить!!!
От подхода "БД - просто большой ящик для мусора... пардон... для данных", я лично офигеваю...
Кста, в каком смысле упорядоченные?.. "Красиво в таблички сложены?.." Потому как в самих таблицах данные очень даже не упорядоченные... Ещё раз, зачем в таком случае СУБД?.. В файлики тоже всё красиво можно распихать...
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33011830
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати - прятного аппетита, "ораклоид"
но мне кажется вы слегка передергиваете мои слова))

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

А вот, к примеру проследите последовательность логических взаимозаключений:
1) Если план запоса нужно всякий раз выбирать заново, то => логично было бы использовать динамический SQL
2) Если в системе используется динамический SQL => разработчик не знает какие запросы будут проходить в системе.
3) Если будет дин.SQL, то => разработчик не знает какие данные и откуда будет получать пользователь
4) если разработчик не знает какие данные нужны пользователю, => он не знает как правильно спроектировать систему (не врубается в постановку задачи)
5) => поведение системы не предопределено, поэтому она будет глючить, тормозить, т.к. ТЗ и вообще весь проект сделан тяп-ляп.
6) в этом есть огромный плюс - у разработчика всегда будет работа...
7) разработчик всегда будет чувствовать угрызения совести (если у него она конечно есть)
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33011844
Вы что, хотите свою траву впихнуть вместо:
Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД . (1,2,3,4,5,6,7,8,9 ..81,все)

Не выйдет!
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33011849
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, Хитрый!
Ты пишешь:

Хитрый Хп> Вы что, хотите свою траву впихнуть вместо:
Хп> Сравнение объектно-ориентированных,
Хп> реляционных и объектно-реляционных СУБД . (1,2,3,4,5,6,7,8,9 ..81,все)

Хп> Не выйдет!
Хп> И в морду ему! В морду!


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

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33011891
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Хитрый
сделайте заявку в книгу рекордов Гинесса. на самый длинный топик с флеймом!)
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33012584
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА вот, к примеру проследите последовательность логических взаимозаключений:
1) Если план запоса нужно всякий раз выбирать заново, то => логично было бы использовать динамический SQL
....
Воооот, панимааааааешь, в первом же пункте ошибка: это травка та :) так подействовала, что вы такой многозначащий вывод делаете про динамический SQL? Можно узнать следование мыслей, которые заменены на =>?
Ну а дальше естественно из-за ложной предпосылки поехало вкривь и вкось. Да и само по себе не блещет.

-- Tygra's --
...
Рейтинг: 0 / 0
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
    #33013127
Ораклоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот и я тоже как-то раскурить не могу - при чём тут вообще динамический сиквел - запрос-то как раз один и тот же и меняться даже и не думал себе... Или вы предлагаете написать процедурку, которая переписывала бы запрос "оптимально" под каждые конкретные данные?.. Не решили ли мы взвалить на себя работу, которой, собственно, и занимается cost-based optimizer?.. К слову, с оным у меня в Оракл 9i проблем было минимальное количество и если уж и приходилось где-то хинтик вставить, так это был уже тюнинг, где без человеческого интеллекта - никак...
...
Рейтинг: 0 / 0
71 сообщений из 71, показаны все 3 страниц
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Подходы к созданию приложений для СУБД: Embedded SQL против других способов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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