从C#调用的存储过程比SQL Management工作室执行的时间长6倍

st7*_*t78 5 t-sql linq performance

我有搜索存储过程,这是我的性能瓶颈.

为了控制发生的事情,我添加了所有参数的记录以及SP中的执行时间.

我注意到,当我叫SP从Microsoft SQL Server Management Studio中执行时间为1.3-1.6秒,但是当我从C#调用它,它需要6-8 secods(!!!)

Parameters                                                            | Time (ms)
"tb *"TreeType:259Parents:212fL:13;14fV:0;lcid:2057min:0max:10sort:-1 | 6406      
"tb *"TreeType:259Parents:212fL:13;14fV:0;lcid:2057min:0max:10sort:-1 | 1346      
Run Code Online (Sandbox Code Playgroud)

使用LINQ调用SP.登录设置相同.SP使用全文搜索

什么可能导致这个?

st7*_*t78 3

为了定位此类问题,最好的工具是SQL Profiler,它记录了对数据库的准确调用。

对我来说,区别在于 SQL 示例传递的无值,它被替换为 '' 和 C# 传递的空值。