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

sp_executesql е бавен с параметри

Добавете OPTION (RECOMPILE) в края

... AND SensorValue != -32767 OPTION (RECOMPILE) 

Предполагам, че изпитвате „смъркане на параметри“

Ако случаят е такъв, можем да го оставим с ОПЦИЯ или да обмислим алтернативи

Актуализация 1

Следващата статия ще ви запознае с „смъркане на параметри“ http://pratchev.blogspot.be/2007/08/parameter-sniffing.html

Съветвам ви да се запознаете с подробностите, защото това ще ви направи много по-добри в разбирането на вътрешните елементи на sql сървъра (които могат да хапят).

Ако го разберете, ще знаете, че компромисът с опцията recompile може бъде намаляване на производителността, ако операторът се изпълнява много често.

Аз лично добавям опция за прекомпилиране след Знам, че основната причина е подслушване на параметри и го оставям вътре, освен ако няма проблем с производителността. Пренаписването на изявление, за да се избегне лошо подслушване на параметри, води до загуба на намерение и това намалява поддръжката. Но има случаи, когато пренаписването е оправдано (използвайте добри коментари, когато го правите).

Актуализация 2

Най-доброто четиво, което имах по темата, беше в глава 32, наречена "Подушване на параметри:вашият най-добър приятел... освен когато не е от " от GRANT FRITCHEY

Препоръчително е.

SQL Server MVP Deep Dives, том 2



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо използването на знак за долна черта във филтър LIKE ми дава всички резултати?

  2. Контролни точки на базата данни в SQL Server

  3. Не може да се отвори потребителска база данни по подразбиране. Неуспешно влизане. след инсталиране на SQL Server Management Studio Express

  4. Как да коригирате „Схемата на дяловете „...“ няма следваща използвана файлова група“ в SQL Server

  5. Как можете да наименувате таблиците на набора от данни, които връщате в съхранена процедура?