Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Что лучше для получения Recordset StoredProcedure vs Function  [new]
selis76
Member

Откуда:
Сообщений: 360
Собираюсь через ADO делать последовательное чтение результатов запроса (Recordset) упакованого в хранимую процедуру или функцию (возращает Table value)
т.е для вызова хранимой используется exec StoredProc
для вызова функции select * from StoredFunc
Вопрос что лучше с точки зрения минимальных подводных камней, производительности на чтение данных,

P S единственное что нашел
Как понял из доки Microsoft накладывать дополнительный фильтры на результат функции или делать соединения неэффективно
"Joining to a multistatement table valued function in a FROM clause is possible, but can give poor performance. SQL Server is unable to use all the optimized techniques against some statements that can be included in a multistatement function, resulting in a suboptimal query plan. To obtain the best possible performance, whenever possible use joins between base tables instead of functions."
31 июл 13, 14:33    [14643115]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше для получения Recordset StoredProcedure vs Function  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
ну так майкрософт врать не станет
31 июл 13, 14:39    [14643166]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше для получения Recordset StoredProcedure vs Function  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
для чтения - просто вью
31 июл 13, 14:44    [14643206]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше для получения Recordset StoredProcedure vs Function  [new]
Гость333
Member

Откуда:
Сообщений: 3683
selis76
для вызова функции select * from StoredFunc

Если именно такой селект, без дополнительных джойнов, то вполне можно использовать. Если, конечно, логика формирования результата вписывается в ограничения, накладываемые функциями T-SQL.
31 июл 13, 14:47    [14643227]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше для получения Recordset StoredProcedure vs Function  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
так
автор
Joining to a multistatement table valued function in a FROM

тут про multistatement valued function, а параметризованное представление нормально все.
31 июл 13, 14:47    [14643228]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше для получения Recordset StoredProcedure vs Function  [new]
selis76
Member

Откуда:
Сообщений: 360
Подумал - наверное вопрос надо сформулировать следующим образом
чем select * from StoredFunc для SQL сервера отличается от вложенных запросов
select * from (select * from) для парсера\оптимизатор SQL?
Понятно что джойнить два вложенных запроса парсер SQL\оптимизатор может не потянуть, но фильтрацию без JOIN должен.
2 авг 13, 12:50    [14653072]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше для получения Recordset StoredProcedure vs Function  [new]
ambarka_max
Member

Откуда: Россия
Сообщений: 517
Процедуру используй.
2 авг 13, 12:52    [14653091]     Ответить | Цитировать Сообщить модератору
 Re: Что лучше для получения Recordset StoredProcedure vs Function  [new]
Glory
Member

Откуда:
Сообщений: 104760
selis76
Подумал - наверное вопрос надо сформулировать следующим образом
чем select * from StoredFunc для SQL сервера отличается от вложенных запросов
select * from (select * from) для парсера\оптимизатор SQL?

Для inline function - ничем

selis76
Понятно что джойнить два вложенных запроса парсер SQL\оптимизатор может не потянуть, но фильтрацию без JOIN должен.

Кому понятно ? Ежу ?
2 авг 13, 12:56    [14653136]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить