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

Алтернатива на използването на локални променливи в клауза where

Използване на локални променливи при WHERE филтърът предизвиква ПЪЛНО СКАНИРАНЕ НА ТАБЛИЦА. Тъй като SS не знае стойностите на локалните променливи по време на компилиране. Така той създава план за изпълнение за най-големия мащаб, който може да бъде наличен за колоната.

За да предотврати проблема с производителността, SS трябва да знае стойностите на променливите по време на компилиране. Дефиниране на SP и предаване на тези локални променливи като параметър е едно от решенията на проблема. Друго решение е използването на sp_executesql и отново предаване на тези локални променливи като параметър...

Или можете да добавите OPTION ( RECOMPILE ) в края на вашия sql оператор, за да направите вашите локални променливи да бъдат компилирани. Това ще реши проблема с производителността.



  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 Azure на моя локален сървър за разработка?

  2. Как да конвертирам от тип данни пари в SQL сървър?

  3. T-SQL MERGE - откриване какво действие е предприело

  4. Намерете дата на последна промяна/разгръщане на пакета SSIS - SQL Server

  5. ИЛИ Късо съединение на оператора в SQL Server