Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL Server:Permintaan cepat, tetapi lambat dari prosedur

Saya memiliki masalah yang sama dengan poster aslinya tetapi jawaban yang dikutip tidak menyelesaikan masalah bagi saya. Kueri masih berjalan sangat lambat dari prosedur tersimpan.

Saya menemukan jawaban lain di sini "Parameter Sniffing", Terima kasih Omnibuzz. Bermuara pada penggunaan "Variabel lokal" dalam kueri prosedur tersimpan Anda, tetapi baca yang asli untuk pemahaman lebih lanjut, ini adalah tulisan yang bagus. misalnya

Jalan lambat:

CREATE PROCEDURE GetOrderForCustomers(@CustID varchar(20))
AS
BEGIN
    SELECT * 
    FROM orders
    WHERE customerid = @CustID
END

Cara cepat:

CREATE PROCEDURE GetOrderForCustomersWithoutPS(@CustID varchar(20))
AS
BEGIN
    DECLARE @LocCustID varchar(20)
    SET @LocCustID = @CustID

    SELECT * 
    FROM orders
    WHERE customerid = @LocCustID
END

Semoga ini bisa membantu orang lain, melakukan ini mengurangi waktu eksekusi saya dari 5+ menit menjadi sekitar 6-7 detik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pantau Database SQL melalui SP_WhoIsActive atau FogLight | Pemecahan Masalah Kinerja SQL Server -1

  2. PIVOT di sql 2005

  3. Gunakan variabel dengan TOP dalam pernyataan pilih di SQL Server tanpa membuatnya dinamis

  4. Bagaimana COUNT() Bekerja di SQL Server

  5. Sisipan Massal SQL Server – Bagian 1