Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Server:Функции с таблично значение срещу съхранени процедури

Функцията с вградена таблица с стойност (TVF) е като макрос:тя се разширява във външната заявка. Той няма план като такъв:извикващият SQL има план.

TVF с няколко изявления има план (ще намери препратка).

TVFs са полезни, когато искате да промените списъка SELECT за параметризиран вход. Вградените TVF се разширяват и външният избор/къде ще бъде разгледан от оптимизатора. За TVF с множество оператори оптимизацията всъщност не е възможна, защото трябва да работи до завършване, след това филтър.

Лично аз бих използвал съхранена процедура над TVF с множество оператори. Те са по-гъвкави (напр. подсказки, могат да променят състоянието, ЗАДАВАНЕ НА NOCOUNT, ЗАДАВАНЕ НА XACTABORT и т.н.).

Нямам възражения срещу вградените TVF, но не съм склонен да ги използвам за код, обърнат към клиента, поради невъзможността да се използва SET и промяна на състоянието.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server Промяна на модела за възстановяване

  2. Намерете най-малкото неизползвано число в SQL Server

  3. Синтаксис на for-loop в SQL Server

  4. Използвайте COL_LENGTH(), за да получите дължината на колона в SQL Server

  5. Какво е STATISTICS PROFILE в SQL Server?