原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试

系列目录

我想测试EF在一百万条数据下的显示时间!这分数据应该有很多同学想要,看看EF的性能!

服务器

现在来向SQL2008R2插入1000000条数据吧

declare @i int;
set @i=0;
while @i<1000000
begin
INSERT INTO [AppDB].[dbo].[MIS_Article]
([Id]
,[ChannelId]
,[CategoryId]
,[Title]
,[ImgUrl]
,[BodyContent]
,[Sort]
,[Click]
,[CheckFlag]
,[Checker]
,[CheckDateTime]
,[Creater]
,[CreateTime])
VALUES
(CONVERT(varchar,@i)
,0
,''
,'这是第'+ CONVERT(varchar,@i)
,''
,'这是第'+ CONVERT(varchar,@i)+'条测试记录'
,0
,122
,1
,'admin'
,'2014-5-1'
,'admin'
,'2014-5-1')
set @i = @i+1;
end select COUNT(*) from dbo.MIS_Article

我发现我之前的理解是错的。不用存储过程,跟踪EF生成的LINQ成果是理想了,在Easyui下的分页显示也是2秒左右,如图的分页

在这里我只能把数据量加大到一千万,在EF中,我们可能无必要用存储过程来做列表的显示,因为生成的查询语句是非常理想的。

现在数据已经到达300W+了,查询分页的时间小于4秒

当数据达到六百万条记录的时候事件已经在6秒左右了,可能我的服务器处理能力有限。配置有点差

所以当你的数据到达一千万的时候,你需要更换更好的服务器,不能再纠结于存储过程,和程序的性能了,因为程序就TM的这样写了,还能怎么样!

大家可以转到http://www.woaitun.com/测试 帐号密码admin admin123,信息频道管理-------信息中心--------管理中心

但这里还是放出存储过程!效果却是一样的,有兴趣的可以了解一下这个分页存储过程

USE [AppDB]
GO
/****** Object: StoredProcedure [dbo].[P_MIS_Info_GetICanManage] Script Date: 06/16/2014 09:58:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[P_MIS_Info_GetICanManage]
@WhereSQL varchar(1024),
@Rows int=15, --每页有几条
@PageNo int=1,--页码
@RowsCount int out
as
begin CREATE TABLE #Art(
[Id] [varchar](50) NOT NULL,
[ChannelId] [int] NOT NULL,
[CategoryId] [varchar](50) NOT NULL,
[Title] [varchar](100) NOT NULL,
[ImgUrl] [varchar](255) NULL,
[BodyContent] [varchar](8000) NULL,
[Sort] [int] NULL,
[Click] [int] NULL,
[CheckFlag] [int] NOT NULL,
[Checker] [varchar](50) NULL,
[CheckDateTime] [datetime] NULL,
[Creater] [varchar](50) NULL,
[CreateTime] [datetime] NULL,
) --获取总记录数
Create table #CountTable
(
Id varchar(50)
)
exec('insert into #CountTable select distinct b.Id from MIS_Article as b where 1=1 '+@WhereSQL+' ')
select @RowsCount=COUNT(*) from #CountTable --获取管理的帖子
declare @sql varchar(1024)
set @sql ='insert into #Art select top ('+CONVERT(varchar,@Rows)+') [Id]
,[ChannelId]
,[CategoryId]
,[Title]
,[ImgUrl]
,[BodyContent]
,[Sort]
,[Click]
,[CheckFlag]
,[Checker]
,[CheckDateTime]
,[Creater]
,[CreateTime] from MIS_Article where Id in( '
+' select b.Id from( select distinct b.Id,row_number() over (order by b.CreateTime desc) as [row_number] from '
+' MIS_Article as b where 1=1 '+@WhereSQL+') as b where '
+' b.[row_number] >'+CONVERT(varchar,(@Rows*(@PageNo-1)))+' )' end
print @sql
exec (@sql) SELECT [Id]
,[ChannelId]
,[CategoryId]
,[Title]
,[ImgUrl]
,[BodyContent]
,[Sort]
,[Click]
,[CheckFlag]
,[Checker]
,[CheckDateTime]
,[Creater]
,[CreateTime] from #Art

数据查询数据:也许受到字段列个数,字段类型,服务器处理能力,在线人数等影响,但这里的数据足以说明查询百万级的数据已经问题不大。

在此说明一个问题,MVC+EF可以在很多中大型的系统中运用,而且变得越来越简单,让人能把关注点多放在业务方面!

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试的更多相关文章

  1. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(28)-系统小结

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(28)-系统小结 我们从第一节搭建框架开始直到二十七节,权限管理已经告一段落,相信很多有跟上来的园友,已经 ...

  2. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-系统小结

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-系统小结 不知不觉已经过了13讲,(本来还要讲多一讲是,数据验证之自定义验证,基于园友还是对权限这 ...

  3. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(10)-系统菜单栏[附源码]

    系列目录 似乎我们需要更多的模块了,我们有一个样例程序,可以帮助我们以后的系统开发做很多对照,我们稍后还有系统日志和系统异常的记录,这时浏览发生了困难,我们这一节来完成一个大家比较喜欢的东西吧,系统菜 ...

  4. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(1)-前言与目录(持续更新中...)

    转自:http://www.cnblogs.com/ymnets/p/3424309.html 曾几何时我想写一个系列的文章,但是由于工作很忙,一直没有时间更新博客.博客园园龄都1年了,却一直都是空空 ...

  5. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(48)-工作流设计-起草新申请

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(48)-工作流设计-起草新申请 系列目录 创建新表单之后,我们就可以起草申请了,申请按照严格的表单步骤和分 ...

  6. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(47)-工作流设计-补充

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(47)-工作流设计-补充 系列目录 补充一下,有人要表单的代码,这个用代码生成器生成表Flow_Form表 ...

  7. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(46)-工作流设计-设计分支

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(46)-工作流设计-设计分支 系列目录 步骤设置完毕之后,就要设置好流转了,比如财务申请大于50000元( ...

  8. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(45)-工作流设计-设计步骤

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(45)-工作流设计-设计步骤 系列目录 步骤设计很重要,特别是规则的选择. 我这里分为几个规则 1.按自行 ...

  9. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单 系列目录 设计表单是比较复杂的一步,完成一个表单的设计其实很漫长,主要分为四 ...

  10. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(43)-工作流设计-字段分类设计

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(43)-工作流设计-字段分类设计 系列目录 建立好42节的表之后,每个字段英文表示都是有意义的说明.先建立 ...

随机推荐

  1. JavaScript 输入自动完成插件

    作为web开发的一员,应该都不陌生,信息处理时,很多时候需要根据用户的输入实时反馈查询结果供其选择,这给了用户很好的人机交互体验,在各大门户网站上已经被使用的很成熟了,最近项目中用到此功能,网上有很多 ...

  2. java执行机制

    java代码编译是由Java源码编译器来完成,流程图如下所示: Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码 ...

  3. 不支持关键字: “userid”。

    运行程序提示:不支持关键字: “userid”. 找了很久在一篇博客里面提示web.config数据库字符串链接出错.

  4. webform的三级联动

    webform的三级联动 与winform一样,只不过需把DropDownList的AutoPostBack属性改为True. *简单日期的编写方法:用是三个DropDownList分别代表年月日,用 ...

  5. 如何用OS X的Xcode写C语言程序

    声明:以下内容非本人原创,转载于别处.拿出来只是分享给FY们,不喜勿喷!原创地址http://blog.yorkxin.org/posts/2009/03/15/fundamental-c-with- ...

  6. bzoj 1041: [HAOI2008]圆上的整点 本原勾股數組

    1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2027  Solved: 853[Submit][Stat ...

  7. 在debug模式下运行不报错,换到release模式下报找不到某某库或文件的错。。解决办法

    我遇到的问题是:把edit secheme调到debug模式运行没有问题,然后调到release模式的时候报目录下没有libTuyoo.a 解决办法 把断开真机设备,用IOS device下relea ...

  8. 提升网站用户体验—WebP 图片的高效使用

    一.WebP 的由来 现代图像压缩技术对我们的生活方式影响很大.数码相机能将上千张高质量图片存储到一张内存卡里.智能手机可以与邻近设备快速分享高分辨率的图片.网站与手机等移动设备能快速展示各种富媒体. ...

  9. jsp分页技术

    1.以下为分页类: import java.io.Serializable;  import java.util.List;    import org.apache.commons.lang.bui ...

  10. Ruby安装和简介

    Ruby下载地址:https://www.ruby-lang.org/zh_cn/downloads/ 我安装的是RubyInstaller.it is a self-contained Window ...