我有一个带有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。
答案 0 :(得分:1)
Slow in the Application, Fast in SSMS? Understanding Performance Mysteries
通常,它通常与SET选项有关。
SSMS具有自己的SET值,您的应用可能会丢失这些值。
只需在SSMS和您的应用中同时运行DBCC USEROPTIONS
并进行比较