-1

快5倍我按照答案已經類似的問題,包括設置ARITHABORTH ON/OFF,清理出使用DBCC DROPCLEANBUFFERS和DBCC FREEPROCCACHE緩衝慢。還嘗試將參數轉換爲局部變量。但仍然有性能問題。存儲過程從.NET而是從SSMS

enter image description here

如屏幕截圖所示,從SSMS相同的過程需要大約625毫秒,但是從.NET客戶端,需要大約3.5秒。

有趣的是,數據讀取也不同。 「二進制」列爲.NET客戶端提供了一些數據,但不包括SSMS,但我不是專家,也不知道爲什麼。

任何幫助將不勝感激。

技術:SQL SERVER 2016標準

基礎表中包含大約3萬行 通過規定程序採取中的參數通常是非常相似的。

再次感謝您的幫助。

+0

是U確保DOTNET客戶端連接到您在使用SSMS捕獲 – GuidoG

+1

使用剖析SQL命令相同的DB。然後將它與您在SSMS中測試的命令進行比較。 – GuidoG

+0

@GuidoG是的,我當然使用相同的DB。捕獲的配置文件跟蹤已附加。我也證實,這兩個SP調用使用相同的查詢計劃 –

回答

0

因爲我使用的是實體框架,所以我的應用程序中的連接字符串有MultipleActiveResultSets = True。當我從連接字符串中刪除它時,查詢在.NET和SSMS中具有相同的性能。