Perbedaan hasil panggilan prosedur tersimpan dari MS SQL SERVER dan MS ACCESS

SP adalah RecordSource formulir. Ketika formulir dibuka, SP dieksekusi dan setelah batas waktu kueri habis, koneksi ditutup tanpa hasil. Jika SP dijalankan dari SSMS, SP dijalankan selama sekitar 2 detik dan mengembalikan satu set catatan. Saat saya melihat melalui SSMS Profiler, panggilannya identik, tetapi jumlah nilai Reads (eksekusi dari Access) > 28 juta, dan sekitar 70 ribu dari SSMS. Bantu aku, aku bingung. Layar dengan profiler http://take.ms/u7tTy


person anatol    schedule 28.04.2016    source sumber
comment
Coba tebak di sini: Jumlah Bacaan! = Jumlah Baris. Mungkin ada masalah dengan rencana kueri yang buruk untuk SP yang menyebabkan hal ini, seperti mengendus parameter.   -  person tobypls    schedule 28.04.2016
comment
@BIDeveloper, 28 juta kali dibaca dari Access   -  person anatol    schedule 28.04.2016
comment
Could be an issue with bad query plans for the SP causing this, such as parameter sniffing. @tobypls, apa maksudnya?   -  person anatol    schedule 28.04.2016
comment
@anatol lihat ini stackoverflow.com/questions/6585417/ (web dalam hal ini mirip dengan MS Access dalam kasus Anda)   -  person tobypls    schedule 28.04.2016
comment
Akan membantu jika Anda memposting gambar layar keluaran SQL Server Profiler.   -  person RichardCL    schedule 28.04.2016
comment
@ richard345, saya tidak punya reputasi dalam memposting gambar. Dapatkan tautan.   -  person anatol    schedule 29.04.2016


Jawaban (1)


@tobypls,
terima kasih banyak - tautan Anda sangat membantu.
Solusi sederhana adalah menulis ulang (misalnya)

dari

ALTER PROCEDURE [dbo].[sproc] 
@param1 int,  
AS  
SELECT * FROM Table WHERE ID = @param1  

to

ALTER PROCEDURE [dbo].[sproc] 
@param1 int,
AS
DECLARE @param1a int
SET @param1a = @param1
SELECT * FROM Table WHERE ID = @param1a  

Saya mendapatkannya dari postingan ini.

Namun jika Anda membutuhkan pemahaman penuh tentang masalah maka Anda harus membaca artikel yang sangat bagus
Pelan-pelan Aplikasinya, Cepat di SSMS? Memahami Misteri Kinerja

person anatol    schedule 29.04.2016