powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / "Plain query" или "Stored Procedure" Что эффективнее?
14 сообщений из 14, страница 1 из 1
"Plain query" или "Stored Procedure" Что эффективнее?
    #32038875
BioByte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В случае сложных запросов ответ очевиден - хранимые процедуры.
Но если нужно выполнить всего лишь один запрос типа
INSERT INTO table VALEUS(...) ? Лучше это оформить как хранимую процедуру или выполнить ее как обычый запрос?
Спрашиваю потому, что меня пытались убедить, что хранимые процедуру рулят в любом случае. Так ли это?
И если все таки "да", то откуда береться выигрыш в скорости?
...
Рейтинг: 0 / 0
"Plain query" или "Stored Procedure" Что эффективнее?
    #32038878
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ХП выполняются на чьей стороне?
...
Рейтинг: 0 / 0
"Plain query" или "Stored Procedure" Что эффективнее?
    #32038881
BioByte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> ХП выполняются на чьей стороне?
Точно не скажу, но по всей видимости на стороне сервера... А что могут и у клиента?
...
Рейтинг: 0 / 0
"Plain query" или "Stored Procedure" Что эффективнее?
    #32038885
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем случае ХП предпочтительнее.
Все ad hoc запросы (те, что приходят из приложения, типа SELECT'ов, INSERT'ов в ASP) должны быть 'обработаны' сервером до выполнения, ХП же подвергаются такой обработке только один раз (если не принять специальных мер, конечно) и вылавливаются их кэша. Так вот. Плюс еще ХП решают проблемы с безопасностью, централизацией логики.
...
Рейтинг: 0 / 0
"Plain query" или "Stored Procedure" Что эффективнее?
    #32038887
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и(з) кэша
...
Рейтинг: 0 / 0
"Plain query" или "Stored Procedure" Что эффективнее?
    #32038888
BioByte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jimmers
Спасибо, объяснение весьма логичное, а можно по подробнее про:

> ХП решают проблемы с безопасностью, централизацией логики.

Просто не могу представить ситуацию, в которой ХП была бы безопаснее обычных запросов...
...
Рейтинг: 0 / 0
"Plain query" или "Stored Procedure" Что эффективнее?
    #32038890
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 BioByte

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

Не пытайся себе это представить !!!

Ты счастлтвый человек - оставайся им !
...
Рейтинг: 0 / 0
"Plain query" или "Stored Procedure" Что эффективнее?
    #32038891
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я только по клаве не промахнулся..
...
Рейтинг: 0 / 0
"Plain query" или "Stored Procedure" Что эффективнее?
    #32038893
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну как же, можно выдать право на исполнение только определенных процедур в БД данному Пользователю. А в процедурах делать только то, что Вам необходимо, лишая
Таким образом Пользователя возможности “навредить”.

Второй аспект – это то, что пользуясь хранимыми процедурами и т.н. parameterized commands, можно забыть про проблемы, связанные со вставкой вредоносного кода в Ваши запросы (конечно, при условии, что внутри процедуры нет динамических запросов, как в недавнем примере от Деда Маздая)
...
Рейтинг: 0 / 0
"Plain query" или "Stored Procedure" Что эффективнее?
    #32038907
Akzhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Данные устарели. Ещё с версии SQL7.0 нет большой разницы в том, что выполнять, ибо есть кэш последних запросов.

Но с точки зрения концептуальной - все изменения в БД должны проходить только через SP.
...
Рейтинг: 0 / 0
"Plain query" или "Stored Procedure" Что эффективнее?
    #32038913
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Akzhan

Соглашусь с Вами лишь отчасти: кэшируются только те ad hoc запросы, которые совпадают ‘посимвольно’. Я же имел ввиду, что параметризованные ad hoc запросы (то бишь те, у которых есть параметр, меняющийся от запроса к запросу – именно такие запросы чаще всего и используются) будут парситься и компилироваться при каждом изменении значения параметра, а вот ХП – нет (конечно, есть исключения).

P.S. Об этом неплохо рассказано в книге “Inside Microsoft SQL Server 2000 / Kalen Delaney”, а также в статях на sqlmag.com

Удачи
...
Рейтинг: 0 / 0
"Plain query" или "Stored Procedure" Что эффективнее?
    #32041633
Sasha™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При вставке данных посредством вызова хранимой процедуры с множеством входных параметров (а для INSERT INTO так и бывает) производительность этой конструкции из клиентской программы оказывается существенно ниже, чем выполнение готовой строки sql - INSERT INTO ... VALUES ..., в которой все входные данные уже подставлены в текст и требуется только выполнение команды. Это легко проверить, если выполнить около 1000 вызовов в цикле для хр. процедуры и готового sql, разница может быть в 2-3 раза.
...
Рейтинг: 0 / 0
"Plain query" или "Stored Procedure" Что эффективнее?
    #32041639
BigBob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я был свидетелем противоположного результата (SQL 7.0, NT4). При добавлении множества записей в таблицу шустрее работали SP нежели отдельные запросы INSERT.
Теперь стараюсь всё в SP запихивать ;)
...
Рейтинг: 0 / 0
"Plain query" или "Stored Procedure" Что эффективнее?
    #32041641
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это легко проверить, если выполнить около 1000 вызовов в цикле для хр. процедуры и готового sql, разница может быть в 2-3 раза.

Лично у меня такой эффект наблюдался когда в процедуре не было SET NOCOUNT ON.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / "Plain query" или "Stored Procedure" Что эффективнее?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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