Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Тема создана по мотивам http://www.sql.ru/forum/actualthread.aspx?tid=91031 Цели создания топика (типа регламент): 1) систематизировать подходы к созданию клиентских приложений (на чем писать "морду" приложения). 2) определить достоинства и недостатки каждого из подходов 3) Написать некоторый HOWTO, который наверняка поможет в выборе средств создания пользовательского интерфейса. Топик помещен в раздел "Сравнения СУБД", т.к. выбор средств разработки часто зависит от конкретной СУБД. Надеюсь ход обсуждения будет конструктивным, без лишнего флейма. (Я не собираюсь обсуждать Delphy via С++) Предлагаю сравнивать решения на примере реализации какой-либо практической часто используемой задачи. Если у кого-либо есть дополнительные пожелания, излагайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 11:49 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Это все понятно, но автор1) систематизировать подходы к созданию клиентских приложений (на чем писать "морду" приложения). и авторНадеюсь ход обсуждения будет конструктивным, без лишнего флейма. (Я не собираюсь обсуждать Delphy via С++) Явно не совместимы. К тому же автор1) систематизировать подходы к созданию клиентских приложений (на чем писать "морду" приложения). содержит в себе два совсем разных вопроса. Давайте все же конкретнее определяться с вопросами. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 11:56 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
2 tygra У Вас есть шанс, предлагайте. И поясните еще эту вашу мысль: почему систематизировать подходы к созданию клиентских приложений (на чем писать "морду" приложения) содержит в себе два совсем разных вопроса? Я готов выделить несколько подходов: 1) Embedded SQL/C++ 2) C/C++ (ODBC...) 3) Delphi (ODBC...) 4) Power Builder 5) Java, JDBC Да, и еще - давайте пока-что не будем трогать многозвенные системы. У кого будут дополнения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 12:08 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Опять мальчишки клею нанюхались и тигру дрязнят... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 12:10 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Я думаю надо сосредоточиться не на "морде" (Delphi/C++/PB/...) а на инструменте, через который эта морда работает c БД. Т.е.: 1. EmbedSQL 2. "Родной" API клиент (DB2Cli/Sybase OpenClient/CTLib/...) 3. Высокоуровневые обертки (ODBC/BDE/ADO/...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 12:16 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Тогда уже лучше ASP.NET :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 12:18 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Byte256Тогда уже лучше ASP.NET :-) Т.е. это... ADO.NET как интерфейс доступа к SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 12:19 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
2 Ggg_old согласен Типовую задачу будем брать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 12:20 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
При разработке приложения самое главное - создать модель, адекватно отражающую требования к системе в предметном плане. А задачи выбора средства создания клиентской части не существует в принципе. Те люди, которые хорошо владеют несколькими инструментами, сами выберут нужное средство, а чайник должен читать книжки и набираться опыта. И никакой задачи по систематизации подхода перед чайником не стоит и стоять не может. Потому что он чайник. Так что предложенная Вами тема, ув. gardemarin, не несет в себе абсолютно никакой семантической нагрузки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 12:25 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
2gardenman: Типовую задачу брать будет сложно. Ведь все зависит от "отрасли народного хозяйства" и особенностей ее автоматизации. Как мне кажется, по большому счету выбор способа данныз зависит от факторов: 1. Доступность технологии способа досупа к БД в зависимости от инструмента разработки (из С++ с JDBC не поработаешь). Кросплатформенность. 2. Сложность инструмента (время необходимое на его изучение), простота дальнейшей его эксплуатации (разработка/конфигурирование/развертываение приложений). 3. Приоритет производительность инструмента vs простота в использовании. (конфликт с пунктом 2). 4. Поддержка необходимых возможностей БД (множественные resultsets/blob/callback...) Про "народное хозяйство" Я думаю, что вам лучше известны "особенности" телекомов. Скорее всего, здесь критична производительность всех компонентов биллинга, в т.ч. и прослойки. Вполне возможно, что EmbedSQL - это именно то, что надо. А может и нет, я не уверен. При разработке какого нибудь складского или банковского АРМ, гибкость и простота в разработке и дальнейшем сопровождении важнее, чем производительность. Т.е разные приоритеты выбора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 12:37 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Хитрый портняжкаПри разработке приложения самое главное - создать модель, адекватно отражающую требования к системе в предметном плане. А задачи выбора средства создания клиентской части не существует в принципе. Те люди, которые хорошо владеют несколькими инструментами, сами выберут нужное средство, а чайник должен читать книжки и набираться опыта. И никакой задачи по систематизации подхода перед чайником не стоит и стоять не может. Потому что он чайник. Так что предложенная Вами тема, ув. gardemarin, не несет в себе абсолютно никакой семантической нагрузки. Тов. Хитрый портняжка выразил мысль, что выбор средства разработки пользовательского интерфейса не влияет на модель (я правильно понял?) Если еще немного подумать, и продолжить его мысль, то ... может на модель не влияет и выбранный для разработки сервер БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 12:37 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Могу добавить, что в отношении вопроса выбора средства реализации persistence - уровня приложения критерии те же. Так что обсуждение беспредметно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 12:46 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
авторЕсли еще немного подумать, и продолжить его мысль, то ... может на модель не влияет и выбранный для разработки сервер БД? Точно! Совсем не влияет. ЗЫ Модель БД вообще в ErWin делают, там пофиг - Оракл, Sybase.... Модель - это модель, хоть где. Ну если же говорить о модели всего приложения.... То тоже в общем-то не влияет. Ни клиент, ни сервер. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 12:47 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Хм... странно... А у меня совсем другое мнение. Возьмем типовой пример: Необходимо реализовать контекстный поиск клиента по ФИО, создание отчета по произвольной группе клиентов. Кажется вроде-бы простая задача, но на разных серверах это будет выглядеть по-разному. Может Тигра предложит решение которое будет хорошо работать в любом случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 12:54 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Выглядеть по-разному - наверное, TSQL и PL/SQL отличаются. Т.е. разными будут конкретные методы реализации. Но модель то будет одна и та же. Если обсуждать именно методы реализации конкретных задач - то это вообще нереально. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 12:57 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
2 gardemarin Может, Вам стоит изучить методы проектирования, ООП, типовые CASE - средства? Попробуйте, не пожалеете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 12:59 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Хитрый портняжка2 gardemarin Может, Вам стоит изучить методы проектирования, ООП, типовые CASE - средства? Попробуйте, не пожалеете. неужто вы думаете что я не юзаю хотя бы тот же PD? или тот же C++ разве не использует методов ООП? Хотя... выражу свою точку зрения - использование CASE средств и ООП абсолютно не гарантирует качественной реализации проекта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 13:10 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Использование PD и C++ не о чем не говорит. О чем-то говорит, что Вы не понимаете основной роль адекватного моделирования при создании сложных систем. А умение создания клиентской/серверной части/выбор диалекта SQL - это уменее на уровне выбора гусиное перо/шариковая ручка. Разница, есть, конечно. Достоевскому не помешал бы Parker, согласен. Дело в том, что дьячки - писари сами по себе уже спросом не пользуются. Писать умеют все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 13:19 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
авторПисать умеют все -слишком смелое утверждение. Я б под таким не подписался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 13:30 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Ну, хорошо. Скажем так: "кодеров много". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 13:33 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Предлагаю отойти от темы про проектирование БД, т.к. основная цель этого топика: "Embedded SQL против других способов". Т.е речь идет о технологиях доступа(работы) с БД. Их преимуществах и недостатках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 13:33 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
2 Ggg_old некоторые оговорки Вложенный SQL плохо (отвратительно) реализован в MSSQL, Sybase ASE, PostgreSQL, MySQL(нет вообще). Про Sybase ASA - ничего не могу сказать (не смотрел) но думаю ASA не далеко ушла от ASE. Относительно приемлемо реализован а Oracle, и нормальня реализация - только в DB2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 14:00 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Что, кому-то не хватило TSQL например? Или PL/SQL??? Мне всегда хватает. Пользуюсь только им. На клиенте есть только exec MySP... -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 14:23 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
2 tygra А каким образом передаются параметры для ХП? а каким образом возвращаются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 14:42 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Через ADO. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 14:55 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
gardenman2 Ggg_old некоторые оговорки Вложенный SQL плохо (отвратительно) реализован в MSSQL, Sybase ASE, PostgreSQL, MySQL(нет вообще). Про Sybase ASA - ничего не могу сказать (не смотрел) но думаю ASA не далеко ушла от ASE . Относительно приемлемо реализован а Oracle, и нормальня реализация - только в DB2.Раз не можете сказать, так и не говорите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 14:59 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
а мааааленький такой пример кода приведи?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 15:00 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
gardenman Вложенный SQL плохо (отвратительно) реализован в MSSQL, Sybase ASE, PostgreSQL, MySQL(нет вообще). Про Sybase ASA - ничего не могу сказать (не смотрел) но думаю ASA не далеко ушла от ASE. Относительно приемлемо реализован а Oracle, и нормальня реализация - только в DB2. Что за хрень?! А почему, к примеру, про InterBase не упомянули? Там тоже разбираться нужно, сразу не запустишь! :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 15:12 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
к сожалению ни разу в жизни FB или Интербейз не ставил... руки не дошли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 15:17 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
gardenmanа мааааленький такой пример кода приведи?... Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 17:01 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
не-а не пойдет... приведи примерчик полностью, как полагается, с объявлением переменных (их типов), с возвратом итоговой выборки... чтоб был полностью весь код виден. Я ж тоже могу написать: Par=10; EXEC SQL CALL MyProc(:Par); Не страшнее вашего получится. Реально - нужен примерчик покрупнее. Чтоб было что сравнивать. Мне что, придумать тестовое задание что-ли?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 17:16 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Ну, тебе и привели код. Что, нужно было указать объявление TADOStoredProc? Инициализацию его, причем обязательно в рантайме? Или код коннекта к базе? Или сам код ХП? Или весь фреймворк - со схемой организации доступа клиента к базе? Я могу привести тебе код работы в ECO: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 17:33 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
авторне-а не пойдет... приведи примерчик полностью, как полагается, с объявлением переменных (их типов), с возвратом итоговой выборки... чтоб был полностью весь код виден. Это и есть весь код :)) Это же Дельфи - там все само делается, компонентами :)) Ну еще я перед этим в свойство sql пропишу: Код: plaintext Код: plaintext 1. 2. 3. 4. Чего там, в MyStoredProc, делается, клиента не касается. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 17:35 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Кто-нить покажет как в дельфях проволятся операции с блобами? Ну там - вставить в табличку запись с полем BLOB или вытащить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 18:06 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Ну вытащить то каие проблемы? Пиши в select нужное поле - оно и приедет в Дельфу. Дальше делай, чего хочешь. А если сохранить на сервер, то вот тут: Как добавить картинку в базу данных? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 18:13 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
gardenmanКто-нить покажет как в дельфях проволятся операции с блобами? Ну там - вставить в табличку запись с полем BLOB или вытащить? Т.е. насчет передачи обычных переменных через параметры Вы убедились что сложностей нет? Про БЛОБы ничего не могу сказать, не работал, но думаю и там не намного больше писать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 18:25 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Однако как апетиты растут :) 15:00 gardenman А каким образом передаются параметры для ХП? а каким образом возвращаются? а мааааленький такой пример кода приведи?... 17:16 gardenman Реально - нужен примерчик покрупнее. Чтоб было что сравнивать. Мне что, придумать тестовое задание что-ли?... 18:06 gardenman Кто-нить покажет как в дельфях проволятся операции с блобами? Ну там - вставить в табличку запись с полем BLOB или вытащить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 18:30 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
2 SergSuper Та какие там апетиты?))... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 18:35 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
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, при наличии более человеческого способа работы с базой. И судя по всему остальный считают также (ИМХО). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 18:49 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
two-phase транзакции можно писать на этом вашем ADO? например, я хочу записать 1 строку в DB2, одну в Oracle, одну в MSSQL, ну и так далее, в одной транзакции. Например, с TXSeries. на ESQL я этот трюк делал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 20:21 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Есть еще одна фича в ESQL. Она называется COMPOUND SQL. Это нечто среднее между SQL c рабочей станцией и хранимой процедурой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 20:58 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
NewYeartwo-phase транзакции можно писать на этом вашем ADO? например, я хочу записать 1 строку в DB2, одну в Oracle, одну в MSSQL, ну и так далее, в одной транзакции. Например, с TXSeries. на ESQL я этот трюк делал. И кто координатором распределённой транзакции выступал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 23:13 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
gardenmanЕсть еще одна фича в ESQL. Она называется COMPOUND SQL. Это нечто среднее между SQL c рабочей станцией и хранимой процедурой. Если ESQL реализуется посредством препроцесоора, то кто помешает выполнить ту же задачу без препроцессора, с использованием любой технодогии доступа к СУБД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2005, 23:16 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
2 gardenman >Вложенный SQL плохо (отвратительно) реализован в MSSQL, Sybase ASE, PostgreSQL, MySQL(нет вообще). Про Sybase ASA - ничего не могу сказать (не смотрел) но думаю ASA не далеко ушла от ASE. Относительно приемлемо реализован а Oracle, и нормальня реализация - только в DB2. А поподробнее можно? Я работал с вложенным скл-ем в АСА, постгре, оракле и ДБ2, правда не очень много, и существенных различий не обнаружил. Как мне показалось тут основная проблема проблема не в СКЛ сервере, а в проблемах реализации связки СКЛ<->процедурный_язык, в данном случае С. Кстати та же проблема в языках типа Т-СКЛ: все хорошо пока не начинаешь работать с курсорами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 04:50 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
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 более чем удовлетворительная ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 06:04 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
tygraЭто же Дельфи - там все само делается, компонентами :)) Не надо о грустном Тут маааленький UDP сервер писал на Delphi. После этого решил для себя больше никогда не использовать эти клятые компоненты. Легче самому с WinSock-ом работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 08:03 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) Не надо о грустном Тут маааленький UDP сервер писал на Delphi. После этого решил для себя больше никогда не использовать эти клятые компоненты. Легче самому с WinSock-ом работать. Правильно! Это же ДЕЛФИ. Тут каждый делает как ему нравится. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 09:37 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
2 c127 >А поподробнее можно? Я работал с вложенным скл-ем в АСА, постгре, оракле и ДБ2, правда не очень много, и существенных различий не обнаружил. Различия очень существенные. Особенно это касается где и как объявлять хост - переменные. Например в DB2 это могут быть ссылки и указатели, которые могут быть членами классов. К тому же, результат обработки препроцессором - совершенно разный. Где-то просто получается динамический SQL (PostgreSQL) а где-то - хранимая процедура специфического вида (Sybase ASE). У DB2 (как правило) - получается статический SQL с уже предопределенным планом запроса. Скорость выполнения выше в разы. Вот и получается, что статический SQL помноженный на производительность C++ - дает бешенную производительность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 10:14 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
>И кто координатором распределённой транзакции выступал? TXSeries ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 10:39 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
gardenmanУ DB2 (как правило) - получается статический SQL с уже предопределенным планом запроса. Скорость выполнения выше в разы. Вот и получается, что статический SQL помноженный на производительность C++ - дает бешенную производительность. Вы уже не впервый раз сохранение плана запроса при компиляции ХП выдаете за этакое преимущество, что вот мне совершенно не понятно. Есть у меня БД девелоперов, она находится в разработке и содержит достаточно небольшое кол-во тестовых данных, охватывающих различные аспекты ТЗ с целью наиболее удобного тестирования бизнес-логики. После проведения изменений в ней корректирующие SQL скрипты уходят на консолидированную БД с требованием выполнится на ней и всех удаленных узлах (БД). Естественно консолидированная БД содержит информацию всех узлов. Далее после проведения сеанса репликации каждый удаленный узел так же получает корректирующий скрипт и выполняет его, помимо обычного сеанса приема/передачи изменений данных. Узлов у нас например 500. Все идут через оффлайн (почта, ftp, файловый обмен - без разницы). На каждом узле информация, принадлежащая только ему. Соотвествующе на одном узле большая БД, на другом крохотная, на одном например стоит навороченный сервер под UNIX, на другом обычный PC с W2K Prof. Внимание вопрос - это интересно как же это при компиляции ХП на девелоперской БД с учетом ее "левых" данных мы обеспечим бешеную производительность для консолидированной БД и ее удаленных узлов ? Божьим духом, принудительной перекомпиляций скриптом или запиской для "опытных" пользователей - типа войди и перекомпилируй и будет тебе счастье (причем на Си) ? Мне кажется привязка планов к ХП есть зло, нормальная РСУБД должна сама соображать, какие планы для текущей БД на текущей момент времени оптимальны, автоматом вести статистику, корректируя ее по мере необходимости, наилучшие планы запросов не только кидать в кэш, но и записывать с кешем в БД для быстрого их подьема для быстрого рестарта сервера, а так же иметь эвристический анализатор, у которого хватает ума усомнится в актуальности "наилучших" планов и не поленится заново понастроить планы и сравнить их с используемыми, чтобы в случаях резкого изменения содержания информации (например массовый подлив данных), не просесть в лужу. Во всяком случае в Sybase ASA все это делается автопилотом, если у меня оптимизатор правильно "понимает" как я связываю в сложных запросах и в наличие удобные индексы, то это его уже проблемы, какие он планы будет строить и что там будет использоваться. Кстати все вышесказанное к Sybase ASA в полной мере относится и к серверу Sybase IQ, который в отличие от ASA, заточеннуб для SMB, "ориентирован" на нулевое администрирование аналитических БД больших обьемов. Так что пожалуйста уж поясните свои высказывания, почему круто писать ХП на Си, да еще и компилировать прямо в них планы запросов ? В плане скорости я отметаю сразу - в ASA например планы ХП компилируются при первом к ним обращении после запуска сервера (если их еще нет в сохраненном кэше), причем они не привязываются к ХП, а висят как просто планы к запросам, которые вызываются в том числе и из ХП. Время построения плана запросов занимает миллисекунды (если конечно не вывести уровень компиляции с нормального 9-ого уровня на максимальный 15, что уже будет соотвествовать полному перебору всех возможных видов планов запросов) - так что проблем со скоростью построения планов лично я ни разу не наблюдал, у Watcom всегда были неплохие скорости в различных решениях :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 11:56 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Не надо о грустном Тут маааленький UDP сервер писал на Delphi. После этого решил для себя больше никогда не использовать эти клятые компоненты. Легче самому с WinSock-ом работать. Все таки, я думаю, тут Delphi и Indy не при чем. Это Windows реализация сокетов несколько странноватая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 12:34 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
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 или порядок соединения в запросе меняется? Честно говоря, оптимизатор - вещь хорошая, но я слегка нигиллист, и не могу полностью на него положиться. А если планы перестраиваются часто, - их трудно контролировать. Например если дабавил какой-то индекс на таличку, то по идее оптимизатор должен перестроить планы. А мне это не всегда нужно. Изменилась статистика - опять перестроить. Что в результате получится - я не знаю. Конечно можно просто положиться на оптимизатор, но у кого нет ошибок? Да и вы сами знаете что все планы выполнения просмотреть иной раз невозможно. Я предпочитаю знать что и как у меня обрабатывается в системе и не пускть это дело на самотёк. Это вообще что-то из темы - почему откомпилированное (в машинные коды естесс-но) приложение работает быстрее чем интерпретируемое или откомпилированное в байт-код. А вообще я не понимаю зачем вы приплели сюда репликацию? Она тут вообще нипричем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 12:43 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
2 gardenman Т.е. вы утверждаете, что за всеми планами в вашей БД лично вы гораздо лучше уследите, лучше учтете все возможности и условия для всех запросов, чем оптимизатор. Так? ТАК?????? О, шайтан аднака! Многозадачный шайтан! -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 13:29 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
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 кроме геммора бы она ничего не принесла, поэтому я очень рад, что ее в природе не существует :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 13:44 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
2 в процессе отладки и настройки все примерно так и происходит) а после - зачем следить? ведь все же будет работать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 13:44 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Ах, еслиб все всегда так было как говорит ASCRUS.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 13:49 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
автор2 в процессе отладки и настройки все примерно так и происходит) а после - зачем следить? ведь все же будет работать Мдааа, круто. Как часто были у вас такие системы? Как сильно в них менялось количество данных? А не пробовали менять планы - может гораздо быстрее все работало бы. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 13:50 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
f_w_p Gluk (Kazan)Не надо о грустном Тут маааленький UDP сервер писал на Delphi. После этого решил для себя больше никогда не использовать эти клятые компоненты. Легче самому с WinSock-ом работать. Все таки, я думаю, тут Delphi и Indy не при чем. Это Windows реализация сокетов несколько странноватая. Реализация нормальная, в первой версии я с ней работал. А счас увидел в 7-ке компоненты и решил время сэкономить, будь оно все не ладно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 13:52 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
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 высказываний. Ты ВЕЛИК! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 14:21 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
tygra автор2 в процессе отладки и настройки все примерно так и происходит) а после - зачем следить? ведь все же будет работать Мдааа, круто. Как часто были у вас такие системы? Как сильно в них менялось количество данных? А не пробовали менять планы - может гораздо быстрее все работало бы. -- Tygra's -- Критерий скорости работы - кнопку на приложении тыкнул и - сразу ответ, без всяких задержек... если задержка больше 1 сек - то уже неудовлетворительно.Ну, естественно исключая отчеты, в которых тянутся на печать тысячи записей, а что касается юзеровского интерфейса - именно так. И причем чтоб сервер не какой-нить навороченный, а попроще - кэша под базу эдак до 100 метров, частотка до гигагерца, IDE диски, а записей в таблице от миллиона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 14:37 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
авторКритерий скорости работы - кнопку на приложении тыкнул и - сразу ответ, без всяких задержек... если задержка больше 1 сек - то уже неудовлетворительно.Ну, естественно исключая отчеты, в которых тянутся на печать тысячи записей, а что касается юзеровского интерфейса - именно так. И причем чтоб сервер не какой-нить навороченный, а попроще - кэша под базу эдак до 100 метров, частотка до гигагерца, IDE диски, а записей в таблице от миллиона. Большая Записная Книжка? :)) -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 14:48 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Хитрый портняжка О МНОГОСЛОВНЫЙ ASCRUS! Ты опять создал видимость своей значимости потоком predefined-true's высказываний. Ты ВЕЛИК! Спасибо Хитрый портняжка, но область моей видимости значимости является распределенным между различными форумами SQL.RU понятием, где в зависимости от направления форума, его целей и моей роли в его жизни, она (область) может варьироваться не только predefined-true's высказыванями, но и более конкретными мыслями/советами при условии адекватного понимания жителей форума обсуждаемого предмета/технологии/идеи/проблемы. Однако сложно в форумах подобно этому высказывать не истины хотя бы из за разности знаний, взглядов и используемых технологий между различными специалистами, тут уж приходится верить на слово. Так что когда мне специалисты по DB2 говорили, что у IBM один из самых лучших и умных оптимизаторов, который и без хинтов спокойно разруливает сложные планы запросов, я полностью и безоговорочно верил, потому что причин сомневаться просто не было. С другой стороны, когда gardenman рассказывает как это круто в DB2 компилировать и статически сохранять в Си коде планы хранимых процедур, я начинаю видеть некий призрак "хинтов", в более неявной форме и закономенрно у меня возникает вопрос - это просто он не доверяет оптимизатору (что не возбраняется, если все удачно работает) или же у DB2 все таки не до такой степени самый умный оптимизатор и народ просто выкручивается в других направлениях, о которых мы просто и не могли бы подумать ? Как Вы лично считаете - какая из этих мыслей более правильная или же есть еще варианты ? Я всегда рад выслушать мнение, логически и обоснованно противоречащее моему, очень говорят повышает кругозор мыслительных процессов :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 14:52 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
2 Tygra А разве базы данных - это не большая записная книжка, в которой все упорядоченно и все быстро находится? 2 ASCRUS Я не в коей мере не качу бочку на оптимизатор DB2. Я вообще считаю его лучшим. Просто при работе с базой стараюсь телать как можно меньше телодвижений. Экономлю ресурсы))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 15:03 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
PL\SQL + ... а зачем нам что-то ещё?... :D шютка... ну там С# можно новомодный прикрутить, чтоб там всякие формочки/кнопочки... или старую добрую Дельфу... Впрочем, меня поразило вот что: >На счет хранения планов я могу сказть, что как правило существует наиболе оптимальный план выполнения запросов, не зависящий даже от статистики. Большего бреда ещё в жизни не слышал... иээхх было б время побольше, притащил бы я вам примерчик где в зависимости от количества записей Оракловский оптимизатор будет использовать толи FULL SCAN толи доступ по индексу, причём разница будет в десятки раз. Конечно, тут все громко закричат - "Оракл - отстой ие го В-Тreешные индексы тоже - в ДБ2 индексы организованы так, что они прям как Иисус Христос - сплошное и непереходящее ДОБРО!!!" Но даже, если бы это было и так (во что я, лично, не шибко верю), то наверняка нашлись бы другие приколы, которые влияли бы на производительность плана запроса (в некоторых случаях кардинально), поэтому "единственный и нетленный" план запроса может и существовать, как частность, но обобщать... :/ Как представлю хинты в каждом запросе... :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 18:47 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
>А разве базы данных - это не большая записная книжка, в которой все упорядоченно и все быстро находится? Тут я вообще, чуть кофе не захлебнулся и не подавился печенюшкой - чувак, нафига те СУБД - в самом простом и весёлом текстовом файле тоже можно всё красивенько упорядочить и быстро находить!!! От подхода "БД - просто большой ящик для мусора... пардон... для данных", я лично офигеваю... Кста, в каком смысле упорядоченные?.. "Красиво в таблички сложены?.." Потому как в самих таблицах данные очень даже не упорядоченные... Ещё раз, зачем в таком случае СУБД?.. В файлики тоже всё красиво можно распихать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 18:53 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Кстати - прятного аппетита, "ораклоид" но мне кажется вы слегка передергиваете мои слова)) я вам на любой базе данных могу проиллюстрировать ситуацию, когда оптимайзер в зависимости от селективности и кардинальности предпочтет fullscan индексному доступу. А вот, к примеру проследите последовательность логических взаимозаключений: 1) Если план запоса нужно всякий раз выбирать заново, то => логично было бы использовать динамический SQL 2) Если в системе используется динамический SQL => разработчик не знает какие запросы будут проходить в системе. 3) Если будет дин.SQL, то => разработчик не знает какие данные и откуда будет получать пользователь 4) если разработчик не знает какие данные нужны пользователю, => он не знает как правильно спроектировать систему (не врубается в постановку задачи) 5) => поведение системы не предопределено, поэтому она будет глючить, тормозить, т.к. ТЗ и вообще весь проект сделан тяп-ляп. 6) в этом есть огромный плюс - у разработчика всегда будет работа... 7) разработчик всегда будет чувствовать угрызения совести (если у него она конечно есть) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 19:10 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Вы что, хотите свою траву впихнуть вместо: Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД . (1,2,3,4,5,6,7,8,9 ..81,все) Не выйдет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 19:17 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Привет, Хитрый! Ты пишешь: Хитрый Хп> Вы что, хотите свою траву впихнуть вместо: Хп> Сравнение объектно-ориентированных, Хп> реляционных и объектно-реляционных СУБД . (1,2,3,4,5,6,7,8,9 ..81,все) Хп> Не выйдет! Хп> И в морду ему! В морду! -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 19:20 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
2 Хитрый сделайте заявку в книгу рекордов Гинесса. на самый длинный топик с флеймом!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2005, 19:39 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
авторА вот, к примеру проследите последовательность логических взаимозаключений: 1) Если план запоса нужно всякий раз выбирать заново, то => логично было бы использовать динамический SQL .... Воооот, панимааааааешь, в первом же пункте ошибка: это травка та :) так подействовала, что вы такой многозначащий вывод делаете про динамический SQL? Можно узнать следование мыслей, которые заменены на =>? Ну а дальше естественно из-за ложной предпосылки поехало вкривь и вкось. Да и само по себе не блещет. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 10:51 |
|
||
|
Подходы к созданию приложений для СУБД: Embedded SQL против других способов
|
|||
|---|---|---|---|
|
#18+
Вот и я тоже как-то раскурить не могу - при чём тут вообще динамический сиквел - запрос-то как раз один и тот же и меняться даже и не думал себе... Или вы предлагаете написать процедурку, которая переписывала бы запрос "оптимально" под каждые конкретные данные?.. Не решили ли мы взвалить на себя работу, которой, собственно, и занимается cost-based optimizer?.. К слову, с оным у меня в Оракл 9i проблем было минимальное количество и если уж и приходилось где-то хинтик вставить, так это был уже тюнинг, где без человеческого интеллекта - никак... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2005, 13:04 |
|
||
|
|

start [/forum/topic.php?all=1&fid=35&tid=1553900]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
| others: | 211ms |
| total: | 391ms |

| 0 / 0 |
