SQL Server存储过程在SSMS中运行快,在应用程序中运行慢

时间:2019-01-28 11:00:37

标签: sql-server

我有一个带有SQL Express数据库的C#WinForms应用程序,

我有一个包含20列和2个缺少记录的表,该表具有6个索引,其中1个是聚集索引,而5个是非聚集索引。

在5个索引中,3列是varchar数据类型,1列是bit,1是数字数据类型。

我的应用场景是

我们有2个应用程序和PC,这两个PC都运行不同的应用程序,并且访问了位于PC 1-上的单个DB

这两个应用程序都连续运行,并在数据库中命中“ UPDATE ”记录,有时还会记录“ SELECT ”。

我们不关心update语句,但是每当应用程序命中select查询时,有时应用程序花费的时间比平时多,我非常关心select语句的结果。下面是我从存储过程调用的查询。

SELECT Count(PrimaryKey) as CNT From Tabel where Col1 ="AAAAAAAA" 
and (Col2 =0 OR Col2 is null) and Col3 =0 

大多数情况下,给定SP的结果是1或2毫秒,但有时需要45,60、90,189、260 e.t.c毫秒,这对我的应用程序没有用

我正在通过LAN远程访问DB的第二台PC上遇到此问题。

执行时间已由我的应用程序和SQL Profiler维护的应用程序日志确认。

我的预期结果是在1到30毫秒内不超过30,

请帮助我获得一致的时间结果。

非常感谢您。

谢谢

Sagar Kerlekar。

1 个答案:

答案 0 :(得分:1)

Slow in the Application, Fast in SSMS? Understanding Performance Mysteries

通常,它通常与SET选项有关。

SSMS具有自己的SET值,您的应用可能会丢失这些值。

只需在SSMS和您的应用中同时运行DBCC USEROPTIONS并进行比较