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

Производителност на SQL-Server:Какво е по-бързо, съхранена процедура или изглед?

Съхранените процедури (SP) и SQL изгледите са различни „звярове“, както беше посочено няколко пъти в тази публикация.

Ако изключим някои [обикновено незначителни, с изключение на странични случаи] съображения за производителност, свързани с кеширането на плана на заявката, времето, свързано със свързването към съхранена процедура и други подобни, двата подхода като цяло са еквивалентни, производителност- мъдър. Въпреки това...

Изгледът е ограничен до всичко, което може да бъде изразено в един оператор SELECT (е, вероятно с CTE и няколко други трика), но като цяло изгледът е свързан с декларативни форми на заявки . Съхранената процедура от друга страна може да използва различни конструкции от процедурен тип (както и декларативни) и в резултат на това, използвайки SPs, човек може да ръчно изработи начин за решаване на дадена заявка, който може да бъде по-ефективен отколкото това, което оптимизаторът на заявки на SQL-Server може да е направил (на базата на една декларативна заявка). В тези случаи SP може да бъде много по-бърз (но внимавайте... оптимизаторът е доста умен и не е нужно много, за да се направи SP много по-бавен от еквивалентния изглед.)

Освен тези съображения за ефективност, SP са по-гъвкави и позволяват по-широк набор от запитвания и действия от изгледите.



  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. Как бързо да напишете Select Query в SQL Server - SQL Server / TSQL урок, част 108

  3. Entity Framework/SQL2008 - Как автоматично да актуализирате LastModified полета за Entities?

  4. Внедряване на сигурност на приложението - Ниво на приложение и ниво на DB (ASP .NET &SQL Server 08)

  5. Драйверът не можа да установи защитена връзка със SQL Server чрез използване на криптиране на Secure Sockets Layer (SSL)