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

Лоша производителност на плана за изпълнение на съхранената процедура на SQL - подслушване на параметри

По принцип да - подслушването на параметри (в някои нива на корекция на) SQL Server 2005 е силно повреден. Виждал съм планове, които на практика никога не завършват (в рамките на часове на малък набор от данни) дори за малки (няколко хиляди реда) набори от данни, които завършват за секунди, след като параметрите са маскирани. И това е в случаите, когато параметърът винаги е бил едно и също число. Бих добавил, че в същото време, когато се занимавах с това, открих много проблеми с LEFT JOIN/NULL, които не се завършват и ги замених с NOT IN или NOT EXISTS и това разреши плана до нещо, което ще завърши. Отново, проблем с (много лош) план за изпълнение. По времето, когато се занимавах с това, DBA нямаше да ми дадат достъп до SHOWPLAN и тъй като започнах да маскирам всеки SP параметър, не съм имал никакви допълнителни проблеми с плана за изпълнение, при които бих трябвало да копая в това за незавършване .

В SQL Server 2008 можете да използвате OPTIMIZE FOR UNKNOWN .



  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 (T-SQL)

  2. Как да коригирате „Невалидно име на обект „OPENJSON“.“ в SQL Server

  3. Как да изброите файлове в папка със SQL Server

  4. Какво представлява ограничението за проверка в SQL Server - SQL Server / TSQL урок, част 82

  5. Клауза WHERE IS NULL, IS NOT NULL или NO WHERE в зависимост от стойността на параметъра на SQL Server