ADOquery vs ADOStoredProc
возьмем 2 ситуации: нужен маленький запросик типа
и предположим запрос по сложнее на объединение таблиц и вычисление полей
from pupil inner join school on school.id_sc = pupil.id_sc
group by school.id_sc
подозреваю, что в первом случае лучше воспользоваться adoquery а вовтором случае (особенно если он сложнее на порядок будет) лучше писать хранимую процедуру, которую можно откомпилировать на сервере.
расскажите, что для чего лучше(быстрее и правильнее). Я конечно догадываюсь :) что в одном случае одно, а в другом - другое, но по конкретней?
возьмем 2 ситуации: нужен маленький запросик типа
и предположим запрос по сложнее на объединение таблиц и вычисление полей
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-процедуру, выполняющую те же действия. Исключение -- если надо по ходу выборки ещё какие-нибудь данные в тех же таблицах (из которых выборка) как-нибудь изменять.
А сервер БД какой? Под Oracle, например, практически одинаково выполняться будет. Так что не стоит, имхо, заморачиваться с хранимыми процедурами из-за такой мелочи. Имхо, если надо сделать сложную выборку, то лучше использовать представления (view), а хранимые процедуры, опять же имхо, использовать только в тех случаях, когда одним SQL-запросом не обойтись либо слишком большой запрос получается (скажем, страницы на четыре). В общем случае, сервер БД -- опять же, по опыту с Oracle -- лучше справится с оптимизацией SQL-запроса, чем человек, пишущий PL/SQL-процедуру, выполняющую те же действия. Исключение -- если надо по ходу выборки ещё какие-нибудь данные в тех же таблицах (из которых выборка) как-нибудь изменять.
спасибо за внимание :)
забыл сказать, что сервер - ms sql. да
для сложных выборок - представления
для сложных запросов - хранимые процедуры
для легких - можно ручками написать
для сложных вставок - триггеры и хранимки