2017-03-31 11:57:41,290 [5] ERROR ErrorMsg - System.Data.Entity.Core.EntityCommandExecutionException: 执行命令定义时出错。有关详细信息,请参阅内部异常。

---> System.Data.SqlClient.SqlException: 执行超时已过期。完成操作之前已超时或服务器未响应。

---> System.ComponentModel.Win32Exception: 等待的操作过时。

在一次百万级数据查询中出现此异常,通过多次的检查终于发现问题是由于数据库存储过程查询过长导致超时

在控制器部分我使用了按时间来排序

未修改代码:

var tempnoteserialno = TB_NOTESERIALNOService.LoadPageEntities<DateTime?>(pageIndex, pageSize, out totalCount,
BOULDENUM, n => n.SortDateTime, true).ToList();

未修改前的查询生成存储过程导致数据库查询很慢100万数据的查询需要10分钟左右,原因是对于时间类型字段的排序耗时。

修改后代码:

var tempnoteserialno = TB_NOTESERIALNOService.LoadPageEntities<string>(pageIndex, pageSize, out totalCount,
BOULDENUM, n => n.StrimpNum, true).ToList();

修改后按一个字符型字段进行排序,效率瞬间上升。

关于EF+MVC5分页查询数据效率问题的更多相关文章

  1. SqlServer存储过程应用二:分页查询数据并动态拼接where条件

    前言 开发中查询功能是贯穿全文的,我们来盘一盘使用存储过程分页查询,并且支持动态拼接where条件. 划重点:支持动态拼接where条件 对存储过程的使用有疑问的同学去[SqlServer存储过程的创 ...

  2. oracle 分页查询数据重复问题

    最近在做项目的时候发现一个问题,oracle 在查询分页数据的时候,有几条数据重复查询了,并且有几条数据在分页的时候消失了.百度了一下发现,ORACLE 在查询数据的时候返回的行不是固定的,他只是按照 ...

  3. Oracle数据库排序后分页查询数据错误问题解决

    一.问题描述:根据更新时间倒序排序然后分页查询数据,但是点击分页操作的时候,会出现数据重复看似没有操作的情况 二.问题错误原因分析 分页查询的SQL语句: select * FROM (select ...

  4. easyui-datagrid连接数据库实现分页查询数据

    一.利用MVC思想建立底层数据库: package com.hanqi.dao; import java.util.ArrayList; import java.util.List; import o ...

  5. mysq带条件的分页查询数据结果错误

    记一次mysql分页条件查询的结果出错: 以一张用户表为例,首先我们看表中的所有数据,注意红色框住的部分: 我们使用不带条件的分页查询来查询,数据显示是OK的: SELECT id,login_nam ...

  6. .net下MVC中使用Tuple分页查询数据

    主要是在DAL层写查询分页的代码. 例如DAL层上代码: public Tuple<List<WxBindDto>, int> GetMbersInfo(int start, ...

  7. EF:分页查询 + 条件查询 + 排序

    /// <summary> /// linq扩展类---zxh /// </summary> /// <typeparam name="T">& ...

  8. MySQL下分页查询数据

      -- 分页 -- 前两条 -- 启始位置从下标0开始,查询的是数据库中的第1条开始 -- 0:启始位置 2:一次性查询多少条 select * from account LIMIT 0,2; -- ...

  9. Elasticsearch 6.x 的分页查询数据

    { , "query": { "match" : { "person_name" : "张老师" }}, , ], &q ...

随机推荐

  1. Ansible详解(二)

    Ansible系列命令 Ansible系列命令有如下: ansible:这个命令是日常工作中使用率非常高的命令之一,主要用于临时一次性操作: ansible-doc:是Ansible模块文档说明,针对 ...

  2. 【转】jqGrid学习之安装

    jqGrid安装很简单,只需把相应的css.js文件加入到页面中即可. 按照官网文档: /myproject/css/             ui.jqgrid.css             /u ...

  3. Activemq 宕机解决方案

    关于消息服务的集群,大概分为Consumer集群(消费者集群)和Broker集群(消息服务器集群)两种.ActiveMQ提供了一种叫做失效转移(也叫故障转移,FailOver)的策略.失效转移提供了在 ...

  4. 3月题外:关于GeoServer和OpenLayers3实用开源插件或组件的总结

    Geoserver篇 注意: 1)用法 GeoServer-Extension的使用方法:将jar包直接放入部署在tomcat上的geoserver/WEB-INF/lib文件夹中 2)在安装插件时, ...

  5. JAVA开发环境搭建 - JDK安装及环境变量配置

    1.前提条件 系统:本教程以WIN7系统为例 JDK:本教程以jdk-7u79-windows-x64为例 2.安装步骤 双击运行JDK安装程序

  6. 用DapperExtensions和反射来实现一个通用搜索

    前言 搜索功能是一个很常用的功能,当然这个搜索不是指全文检索,是指网站的后台管理系统或ERP系统列表的搜索功能.常见做法一般就是在搜索栏上加上几个常用字段来搜索.代码可能一般这样实现 StringBu ...

  7. WebGIS前端瓦片地图显示原理及实现

    目前,有很多WebGIS开发包,ArcGIS API for JS.OpenLayers.LeafLetjs等为我们从事WebGIS开发的人封装了很多强大的功能.我们很方便的使用这些库的时候,也让我们 ...

  8. Spring IOC以及三种注入方式

    IOC是spring的最基础部分,也是核心模块,Spring的其他组件模块和应用开发都是以它为基础的.IOC把spring的面向接口编程和松耦合的思想体现的淋漓尽致. IOC概念 IOC(Invers ...

  9. CentOs下安装PHP环境的步骤

    前言 在CentOs环境下安装php开发环境,需要首先安装一些源文件,然后使用yum命令直接安装即可,在Fedora 20 源中已经有了PHP的源,直接可以使用以下命令安装即可: # yum inst ...

  10. oracle数据库命令-持续更新

    一.系统命令 登录 dba用户命令 sqlplus / as sysdba 2. 用户命令 删除用户 DROP USER **** CASCADE; DROP SCHEMA **** CASCADE; ...