Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

реализация запросов [D7, фб 1,5]


Страницы:   1 2 3

stud ©   (2004-04-21 14:11:00) 

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


Fay   (2004-04-21 15:45:00) [21]

2Курдль ©   (21.04.04 15:43) [23]
>> Ну дык когда дело до оракла дойдет? :)

Я чё-то не понял - кто тут ораклоид?


stud   (2004-04-21 15:44:00) [22]


> в виде live queries

это как?


Курдль   (2004-04-21 15:43:00) [23]


> Nikolay M. ©   (21.04.04 15:26) [15]
> MS SQL & Sybase:

Ну дык когда дело до оракла дойдет? :)

Ладно, сдаюсь! Нет универсальной догмы это лучше!
Для каждого случая - свой подход.


Sergey_Masloff   (2004-04-21 15:39:00) [24]

Nikolay M. ©   (21.04.04 15:16) [12]
угу, один из примеров когда ХП нужны.

Еще иногда очень нежелательно давать клиенту возможность выполнять произвольные запросы (а когда запрос формируется на клиенте - оно так и есть). С помощью XП закрыть это - милое дело. А внутри ХП может быть и один запрос - это не так важно


Reindeer Moss Eater   (2004-04-21 15:37:00) [25]

Например потеряешь бесплатную рюшечку в виде live queries


stud   (2004-04-21 15:35:00) [26]


> Курдль ©   (21.04.04 15:22) [14]

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


Fay   (2004-04-21 15:33:00) [27]

Nikolay M. ©   (21.04.04 15:30) [17]
select getdate()
select getdate()
select getdate()
select getdate()
select getdate()

2Курдль ©   (21.04.04 15:31) [18]
create procedure bububu
as
select * from table1


Курдль   (2004-04-21 15:31:00) [28]


> Nikolay M. ©   (21.04.04 15:26) [15]

То, что указанные Вами СУБД умеют работать с ХП и использовать в них запросы - это понятно. Дайте пример ХП, возвращающей НАБОР ДАННЫХ


Nikolay M.   (2004-04-21 15:30:00) [29]


> Fay ©   (21.04.04 15:29) [16]
> анонимные блоки

Это что, если не секрет?


Fay   (2004-04-21 15:29:00) [30]

хп и анонимные блоки в ASE и MSSQL могут вернуть челое нетрицательное количество датасетов.


Nikolay M.   (2004-04-21 15:26:00) [31]


> Курдль ©   (21.04.04 15:22) [14]
> Приведите, плз, по одному простенькому примеру для каждой.

MS SQL & Sybase:

CREATE PROC Test
AS
SELECT getdate()


Курдль   (2004-04-21 15:22:00) [32]


> Fay ©   (21.04.04 15:13) [10]
> MSSQL умеет.
> Oracle(не проверял) - тоже.
> Sybase ASE - умеет

Приведите, плз, по одному простенькому примеру для каждой.


stud   (2004-04-21 15:20:00) [33]

берем к примеру фаронова "дельфи 5 ...." описаны достоинства использования х.п. но ничего не говорится о недостатках. но такого не бывает.


Nikolay M.   (2004-04-21 15:16:00) [34]

Ширее надо смотреть, граждане!
Допустим, написал программист 100-этажный запрос, в котором какая-нибудь таблица джойнится сама на себе 50 раз (про вопрос, на фига это делать, про то, что скорее всего половина соединений не будет использовать индексы, что каждый раз будет подниматься план выполнения этого запроса, я молчу). Отдали программу внедренцам, те у заказчика ставят программу и, опа-на!, а запрос-то не совсем коректный! Что будет проще - подправить на месте текст ХП (которую можно постараться написать так, что и индексы будут грамотно использоваться, и логика будет прозрачная, и план выполнения уже будет готов) или пинать головной офис, чтобы программисты латали заплатку в коде программы?


Fay   (2004-04-21 15:13:00) [35]

Sybase ASE - умеет


Fay   (2004-04-21 15:13:00) [36]

MSSQL умеет.
Oracle(не проверял) - тоже.


kaif   (2004-04-21 15:08:00) [37]

ИМХО, в ХП следует реализовывать то, что при помощи одного единственного SQL-запроса не сделаешь.


Курдль   (2004-04-21 15:02:00) [38]


> т.е. все необходимые запросы (select) выполнятся с помощью
> хранимых процедур.


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

А сами-то как думаете? В одном случае Вы получите НД непосредственно от запроса, а в другом - от запроса, инициированного процедурой, которую Вы вызвали.
И еще раз напоминаю, если IB умеет возвращать набор данных из процедуры - то она в явном меньшинстве. Другие СУБД Вам этого не позволят.


stud   (2004-04-21 14:56:00) [39]

ну пока разговор о конкретном сервере FB 1,5


Reindeer Moss Eater   (2004-04-21 14:20:00) [40]

что не стоит все запросы реализовывать с помощью хп..

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


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо