首頁 > 資料庫 > mysql教程 > 為什麼我的 SQL 查詢在 SSMS 中很快,但在 C# 應用程式中卻很慢?

為什麼我的 SQL 查詢在 SSMS 中很快,但在 C# 應用程式中卻很慢?

Susan Sarandon
發布: 2025-01-04 07:04:34
原創
147 人瀏覽過

Why is my SQL Query Fast in SSMS but Slow in my C# Application?

程式碼在應用程式中運行緩慢,但在SSMS 中運行速度很快

問題:

程式碼:

C# 程式碼使用 SqlDataAdapter 及其 Fill 方法來執行查詢。

SSMS 查詢是與執行的相同
using (var conn = new SqlConnection(...))
using (var ada = new SqlDataAdapter(...))
{
    ada.Fill(Logs);
}
登入後複製

原因:

執行時間的差異是由於應用程式和SSMS 中處理參數的方式不同造成的。在應用程式中,使用AddWithValue方法新增NVARCHAR類型的參數,而在SSMS中,參數宣告為VARCHAR。

解決方案:

解決這個問題,要么:

在應用程式中添加參數時使用接受類型的構造函數code :
ada.SelectCommand.Parameters.Add("@clientID", SqlDbType.Varchar, 200);
登入後複製
在SQL文字中強制轉換參數:
第一個解決方案是首選,因為它也解決了潛在的快取污染問題問題。
where client_id = cast(@clientID as varchar(200))
登入後複製

附加註意事項:

確保應用程式和 SSMS 使用相同的電腦和登入名稱。
  • 查詢中引用的表具有適當的索引,並且在 SSMS 中性能良好.
  • 考慮參數快取對查詢效能的影響。

以上是為什麼我的 SQL 查詢在 SSMS 中很快,但在 C# 應用程式中卻很慢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板