Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / sp_executesql vs SELECT in SP / 5 сообщений из 5, страница 1 из 1
12.02.2002, 13:42
    #32022756
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sp_executesql vs SELECT in SP
Пипл!

В BOL сказано

Transact-SQL Tips

...
In a Transact-SQL script, stored procedure, or trigger, use sp_executesql to execute the SELECT statement

DECLARE @IntVariable INT
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)

/* Build the SQL string. */
SET @SQLString =
N'SELECT * FROM Northwind.dbo.Shippers WHERE ShipperID = @ShipID'
/* Specify the parameter format once. */
SET @ParmDefinition = N'@ShipID int'

/* Execute the string. */
SET @IntVariable = 3
EXECUTE sp_executesql @SQLString, @ParmDefinition,
@ShipID = @IntVariable
...


Правильно ли я понимаю, что процедура вида

CREATE PROC test1
@UserID int
AS
SELECT Username, Password FROM Users WHERE UserID = @UserID

будет хужее с точки зрения скорости выполнения, нежели ее
эквивалент с использованием sp_executesql:


CREATE PROC test2
@UserID int
AS
declare @sql NVARCHAR(500)
SET @sql = N'SELECT Username, Password FROM Users WHERE UserID = @UserID'
EXECUTE sp_executesql @sql, N'@UserID int', @UserID
...
Рейтинг: 0 / 0
12.02.2002, 14:09
    #32022760
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sp_executesql vs SELECT in SP
То, что вы цитируете относиться к повышению вероятности повторного использования плана выполнения запроса("SQL Server 2000 has a better chance of reusing execution plans ..."). Повторное использование плана выполнения запроса конечно повышает производительность, но не надо воспринимать это как утверждение того, что все запросы, заданные явно, выполняются медленнее, чем запросы с помощью sp_executesql.
...
Рейтинг: 0 / 0
12.02.2002, 14:25
    #32022765
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sp_executesql vs SELECT in SP
То есть, резюмируя, необходимо создавать по две версии процедур и опытным путем выбирать наилучшую?
...
Рейтинг: 0 / 0
12.02.2002, 14:52
    #32022770
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sp_executesql vs SELECT in SP
надо писать так чтобы было нагляднее, а если будет тормозить - тогда уже разбираться
...
Рейтинг: 0 / 0
12.02.2002, 15:22
    #32022773
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sp_executesql vs SELECT in SP
необходимо создавать по две версии процедур и опытным путем выбирать наилучшую?

А также по несколько вариантов индексов и статистик для каждой таблицы, используемой в запросах. Можно попробовать изменить(читай - увеличить) количество оперативной памяти, "поиграться" с размещением файлов данных, журналов и собственно операционной системы на разных физических и логических дисках, с разными вариантами RAID(как на программном так и на аппаратном уровнях).
Другими словами производительность - понятие комплексное и персональное для конкретной системы и использованием только одной опции (sp_executesql vs SP) не достигается.

ЗЫ
Кроме того использование динамических запросов влияет на права доступа.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / sp_executesql vs SELECT in SP / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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