IQueryable调用Count的时候超时,该怎么解决
IQueryable<T>调用Count的时候超时
代码如下:
问题:
执行到source.Count()的时候超时,但通过跟踪,执行这个方法的时候的T-SQL,COPY出来大概如下:
SELECT COUNT....
在SQL Server Management Studio中执行是非常快的。
不明白,Count()方法,除了去调用执行这句SQL,到底干了啥?还有其他地方锁定了表?
求解,感谢任何建议。
------解决方案--------------------
你试试在这个函数内直接调用执行sql语句会不会超时
------解决方案--------------------
用sql profile看一下,当执行.count方法时,数据库端发生了什么
------解决方案--------------------
你的数据源是不是有问题。
代码如下:
public PagedList(IQueryable<T> source, int pageIndex, int pageSize)
{
int total = source.Count();
this.TotalCount = total;
this.TotalPages = total / pageSize;
if (total % pageSize > 0)
TotalPages++;
this.PageSize = pageSize;
this.PageIndex = pageIndex;
this.AddRange(source.Skip(pageIndex * pageSize).Take(pageSize).ToList());
}
问题:
执行到source.Count()的时候超时,但通过跟踪,执行这个方法的时候的T-SQL,COPY出来大概如下:
SELECT COUNT....
在SQL Server Management Studio中执行是非常快的。
不明白,Count()方法,除了去调用执行这句SQL,到底干了啥?还有其他地方锁定了表?
求解,感谢任何建议。
------解决方案--------------------
你试试在这个函数内直接调用执行sql语句会不会超时
------解决方案--------------------
用sql profile看一下,当执行.count方法时,数据库端发生了什么
------解决方案--------------------
你的数据源是不是有问题。