Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zapytanie działa szybko, ale działa wolno w procedurze składowanej

OK, już wcześniej mieliśmy podobne problemy.

Sposób, w jaki to naprawiliśmy, polegał na utworzeniu lokalnych parametrów wewnątrz SP, tak aby

DECLARE @LOCAL_Contract_ID int, 
        @LOCAL_dt_From smalldatetime, 
        @LOCAL_dt_To smalldatetime, 
        @LOCAL_Last_Run_Date datetime

SELECT  @LOCAL_Contract_ID = @Contract_ID, 
        @LOCAL_dt_From = @dt_From, 
        @LOCAL_dt_To = @dt_To, 
        @LOCAL_Last_Run_Date = @Last_Run_Date

Następnie używamy lokalnych parametrów wewnątrz SP, a nie parametrów, które zostały przekazane.

To zazwyczaj rozwiązało problem dla nas.

Uważamy, że jest to spowodowane podsłuchiwaniem parametrów, ale nie mamy żadnego dowodu, przepraszam... X-)

EDYTUJ:

Spójrz na Różne podejścia aby poprawić podsłuchiwanie parametrów serwera SQL po kilka wnikliwych przykładów, wyjaśnień i poprawek.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uruchamianie sum w widoku SQL

  2. Maksymalna wartość podzapytania T-SQL (data) i łączenia

  3. Jak uzyskać dolne 50% zapytania wybierającego na serwerze SQL?

  4. Kod utrzymuje limit czasu

  5. SQL Server 2008 wersja internetowa