构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试
原文:构建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)-文章发布系统④-百万级数据和千万级数据简单测试的更多相关文章
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(28)-系统小结
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(28)-系统小结 我们从第一节搭建框架开始直到二十七节,权限管理已经告一段落,相信很多有跟上来的园友,已经 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-系统小结
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-系统小结 不知不觉已经过了13讲,(本来还要讲多一讲是,数据验证之自定义验证,基于园友还是对权限这 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(10)-系统菜单栏[附源码]
系列目录 似乎我们需要更多的模块了,我们有一个样例程序,可以帮助我们以后的系统开发做很多对照,我们稍后还有系统日志和系统异常的记录,这时浏览发生了困难,我们这一节来完成一个大家比较喜欢的东西吧,系统菜 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(1)-前言与目录(持续更新中...)
转自:http://www.cnblogs.com/ymnets/p/3424309.html 曾几何时我想写一个系列的文章,但是由于工作很忙,一直没有时间更新博客.博客园园龄都1年了,却一直都是空空 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(48)-工作流设计-起草新申请
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(48)-工作流设计-起草新申请 系列目录 创建新表单之后,我们就可以起草申请了,申请按照严格的表单步骤和分 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(47)-工作流设计-补充
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(47)-工作流设计-补充 系列目录 补充一下,有人要表单的代码,这个用代码生成器生成表Flow_Form表 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(46)-工作流设计-设计分支
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(46)-工作流设计-设计分支 系列目录 步骤设置完毕之后,就要设置好流转了,比如财务申请大于50000元( ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(45)-工作流设计-设计步骤
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(45)-工作流设计-设计步骤 系列目录 步骤设计很重要,特别是规则的选择. 我这里分为几个规则 1.按自行 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单 系列目录 设计表单是比较复杂的一步,完成一个表单的设计其实很漫长,主要分为四 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(43)-工作流设计-字段分类设计
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(43)-工作流设计-字段分类设计 系列目录 建立好42节的表之后,每个字段英文表示都是有意义的说明.先建立 ...
随机推荐
- PHP获取当前页面完整url地址,包括参数的函数
//php获取当前访问的完整url地址 function get_current_url(){ $current_url='http://'; if(isset($_SERVER['H ...
- 如何便携使用github
Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理.在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中.目前,包括Rubinius ...
- 获取Ip 的地域等信息接口-实例
今天项目要用到 查询访问网站用户的IP 然后网上查询了 资料还很多 不过有些已经失效了 在这总结下 腾讯,pconline 的API已经失效 不能使用 淘宝的IP接口地址: http://ip.tao ...
- 从一个模板函数聊聊模板函数里面如何获得T的名字
写了个小程序,遇到点问题.总结总结,学习学习 #include<vector> #include<iostream> #include<typeinfo> usin ...
- Asp.net MVC中三大描述对象之ActionDescriptor 以及继承类ReflectedControllerDescriptor
ActionDescriptor抽象类中几个基本的属性: ControllerName:被描述的Controller名称,去除后缀Controller的名称.例如:HomeController则为Ho ...
- PyCharm 5.0.3 快捷键
下面记录PyCharm 5.0.3常用快捷键 注释 注释行:Ctrl+/
- nutch 二次开发
/*深度控制*/ 深度控制:nutch是广域网的深度遍历,我们需要的是垂直采集(即只采集某一个栏目),举例,索引页总计20页,如果只有下一页,则深度为20,如果是1 2 3 4 5……20则深度为2即 ...
- 在CENTOS6上安装MONGODB
为接下来的工作热一下手.. 以前看过一本书,了解了,但好像有三四年,又忘了..:( 参考URL: http://www.centoscn.com/image-text/install/2014/112 ...
- [topcoder]BinarySearchable
http://community.topcoder.com/stat?c=problem_statement&pm=5869&rd=8078 这道题有点意思,思考理解后,就是找数组中的 ...
- SlimFTPd, LFTP和FileZilla Client/Server
https://lftp.yar.ru/ 绝好的Socket项目