Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ADOquery vs ADOStoredProc

2.1K
13 июня 2005 года
greyich
117 / / 02.02.2005
расскажите, что для чего лучше(быстрее и правильнее). Я конечно догадываюсь :) что в одном случае одно, а в другом - другое, но по конкретней?

возьмем 2 ситуации: нужен маленький запросик типа
 
Код:
select distinct (title) from table1

и предположим запрос по сложнее на объединение таблиц и вычисление полей

 
Код:
select school.id_sc, count (id_pupil)
 from pupil inner join school on school.id_sc = pupil.id_sc
group by school.id_sc


подозреваю, что в первом случае лучше воспользоваться adoquery а вовтором случае (особенно если он сложнее на порядок будет) лучше писать хранимую процедуру, которую можно откомпилировать на сервере.
294
14 июня 2005 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by greyich
расскажите, что для чего лучше(быстрее и правильнее). Я конечно догадываюсь :) что в одном случае одно, а в другом - другое, но по конкретней?

возьмем 2 ситуации: нужен маленький запросик типа
 
Код:
select distinct (title) from table1

и предположим запрос по сложнее на объединение таблиц и вычисление полей

 
Код:
select school.id_sc, count (id_pupil)
 from pupil inner join school on school.id_sc = pupil.id_sc
group by school.id_sc


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



А сервер БД какой? Под Oracle, например, практически одинаково выполняться будет. Так что не стоит, имхо, заморачиваться с хранимыми процедурами из-за такой мелочи. Имхо, если надо сделать сложную выборку, то лучше использовать представления (view), а хранимые процедуры, опять же имхо, использовать только в тех случаях, когда одним SQL-запросом не обойтись либо слишком большой запрос получается (скажем, страницы на четыре). В общем случае, сервер БД -- опять же, по опыту с Oracle -- лучше справится с оптимизацией SQL-запроса, чем человек, пишущий PL/SQL-процедуру, выполняющую те же действия. Исключение -- если надо по ходу выборки ещё какие-нибудь данные в тех же таблицах (из которых выборка) как-нибудь изменять.

2.1K
14 июня 2005 года
greyich
117 / / 02.02.2005
Цитата:
Originally posted by Plisteron
А сервер БД какой? Под Oracle, например, практически одинаково выполняться будет. Так что не стоит, имхо, заморачиваться с хранимыми процедурами из-за такой мелочи. Имхо, если надо сделать сложную выборку, то лучше использовать представления (view), а хранимые процедуры, опять же имхо, использовать только в тех случаях, когда одним SQL-запросом не обойтись либо слишком большой запрос получается (скажем, страницы на четыре). В общем случае, сервер БД -- опять же, по опыту с Oracle -- лучше справится с оптимизацией SQL-запроса, чем человек, пишущий PL/SQL-процедуру, выполняющую те же действия. Исключение -- если надо по ходу выборки ещё какие-нибудь данные в тех же таблицах (из которых выборка) как-нибудь изменять.



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

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог