Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / "Plain query" или "Stored Procedure" Что эффективнее? / 14 сообщений из 14, страница 1 из 1
25.07.2002, 18:54:39
    #32038875
BioByte
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Plain query" или "Stored Procedure" Что эффективнее?
В случае сложных запросов ответ очевиден - хранимые процедуры.
Но если нужно выполнить всего лишь один запрос типа
INSERT INTO table VALEUS(...) ? Лучше это оформить как хранимую процедуру или выполнить ее как обычый запрос?
Спрашиваю потому, что меня пытались убедить, что хранимые процедуру рулят в любом случае. Так ли это?
И если все таки "да", то откуда береться выигрыш в скорости?
...
Рейтинг: 0 / 0
25.07.2002, 19:05:12
    #32038878
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Plain query" или "Stored Procedure" Что эффективнее?
ХП выполняются на чьей стороне?
...
Рейтинг: 0 / 0
25.07.2002, 19:21:46
    #32038881
BioByte
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Plain query" или "Stored Procedure" Что эффективнее?
> ХП выполняются на чьей стороне?
Точно не скажу, но по всей видимости на стороне сервера... А что могут и у клиента?
...
Рейтинг: 0 / 0
25.07.2002, 19:35:18
    #32038885
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Plain query" или "Stored Procedure" Что эффективнее?
В общем случае ХП предпочтительнее.
Все ad hoc запросы (те, что приходят из приложения, типа SELECT'ов, INSERT'ов в ASP) должны быть 'обработаны' сервером до выполнения, ХП же подвергаются такой обработке только один раз (если не принять специальных мер, конечно) и вылавливаются их кэша. Так вот. Плюс еще ХП решают проблемы с безопасностью, централизацией логики.
...
Рейтинг: 0 / 0
25.07.2002, 19:36:31
    #32038887
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Plain query" или "Stored Procedure" Что эффективнее?
и(з) кэша
...
Рейтинг: 0 / 0
25.07.2002, 19:44:08
    #32038888
BioByte
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Plain query" или "Stored Procedure" Что эффективнее?
jimmers
Спасибо, объяснение весьма логичное, а можно по подробнее про:

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

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

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

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

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

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

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

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

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

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

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


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