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

Странен проблем с плана за изпълнение на процедурата на SQL Server

Звучи така, сякаш срещате неправилно кеширан план на заявка поради подслушване на параметри.

Можете ли да публикувате съхранената процедура?

В SQL Server 2005 можете да използвате ОПТИМИЗИРАНЕ ЗА подсказка за заявка за предпочитани стойности на параметри за отстраняване на някои от проблемите, свързани с надушването на параметри:

Въпреки че SQL Server 2005 не поддържа OPTIMIZE FOR UNKNOWN (въведено в SQL Server 2008), което ще елиминира снифинг на параметър за даден параметър:

OPTION (OPTIMIZE FOR (@myParam UNKNOWN))

Можете да постигнете същия ефект в SQL Server 2005, като копирате параметъра в локална променлива и след това използвате локалната променлива в заявката.



  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 2008 R2

  2. Как да организирам безкраен цикъл while в SQL Server?

  3. Откриване на пропуски над 30 минути в колоната с клеймо за време

  4. Цикл върху таблицата (без използване на курсор) за свързване на данни

  5. MSSQL 2008:Вземете последния актуализиран запис по конкретно поле