查询数据库超时
用的是EF,语句如下: 查询其它字段都不死,就是查询内容死掉。
content字段里边存储的是文章1.5万条。
if (!string.IsNullOrEmpty(content))
qry = qry.Where(a => a.Content.Contains(content)); //搜索-内容
请问该怎么做?
下边是错误页面提示:
Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.SqlClient.SqlException: Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。
源错误:
行 300: if (id > 0)
行 301: qry = qry.Where(a => a.Id == id); //搜索-子增长ID
行 302: PagedList<Library> pl = qry.OrderByDescending(a => a.Id).ToPagedList(pageIndex, pageSize);
行 303:
行 304: --------------------编程问答-------------------- 为什么再数据库里面like一下? --------------------编程问答--------------------
就是查文章里边有没有某个词,用来做搜索 --------------------编程问答-------------------- 打错了,查询的时候在数据库里like啊,
qry = qry.Where(a => a.Content.Contains(content));如果有有1W条,开销很大,效率低, --------------------编程问答--------------------
是啊? 那么要进行这样搜索,该怎么办? --------------------编程问答-------------------- --------------------编程问答-------------------- web.config 里面加;Connect Timeout= --------------------编程问答-------------------- 难道这样查询的数据量很大?导致了超时 --------------------编程问答-------------------- 可以试试这个方法 --------------------编程问答--------------------
数据量也不大,就1.5万条, 是不是不能这样进行搜索,是不是要用sql里边的一个全文检索才行 --------------------编程问答-------------------- Content字段做索引了没有。 --------------------编程问答-------------------- --------------------编程问答-------------------- 同样的问题,不知道最后解决了没 --------------------编程问答-------------------- 你是否還有其他的過慮條件?content如果存儲文章內容進去,查詢當然是慢的 --------------------编程问答-------------------- 第一次见别人做搜索用Contions的,Contions效率是非常慢的,可以在网上查查了解一下,
都是用模糊查询的 使用用右模糊查询不就是做搜索使用吗 --------------------编程问答-------------------- 把SqlConnection的超时时间设长点不就行了? --------------------编程问答-------------------- --------------------编程问答-------------------- 建议用模糊查询 --------------------编程问答-------------------- 看问题应该是数据库设计上的,建议对数据库字段进行索引,如果可以分成多个字段,最好分成多个。 --------------------编程问答-------------------- --------------------编程问答-------------------- 建立索引,优化查询
补充:.NET技术 , ASP.NET