构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试
2014-06-16 09:47
429 查看
系列目录
我想测试EF在一百万条数据下的显示时间!这分数据应该有很多同学想要,看看EF的性能!
服务器
现在来向SQL2008R2插入1000000条数据吧
我发现我之前的理解是错的。不用存储过程,跟踪EF生成的LINQ成果是理想了,在Easyui下的分页显示也是2秒左右,如图的分页
在这里我只能把数据量加大到一千万,在EF中,我们可能无必要用存储过程来做列表的显示,因为生成的查询语句是非常理想的。
现在数据已经到达300W+了,查询分页的时间小于4秒
当数据达到六百万条记录的时候事件已经在6秒左右了,可能我的服务器处理能力有限。配置有点差
所以当你的数据到达一千万的时候,你需要更换更好的服务器,不能再纠结于存储过程,和程序的性能了,因为程序就TM的这样写了,还能怎么样!
大家可以转到http://www.woaitun.com/测试 帐号密码admin admin123,信息频道管理-------信息中心--------管理中心
但这里还是放出存储过程!效果却是一样的,有兴趣的可以了解一下这个分页存储过程
数据查询数据:也许受到字段列个数,字段类型,服务器处理能力,在线人数等影响,但这里的数据足以说明查询百万级的数据已经问题不大。
在此说明一个问题,MVC+EF可以在很多中大型的系统中运用,而且变得越来越简单,让人能把关注点多放在业务方面!
我想测试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 ,'001001' ,'这是第'+ 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 MVC5+EF6+EasyUI 后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(35)-文章发布系统②-构建项目
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(36)-文章发布系统③-kindeditor使用
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(36)-文章发布系统③-kindeditor使用
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(35)-文章发布系统②-构建项目
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(18)-权限管理系统-表数据
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(18)-权限管理系统-表数据
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(25)-权限管理系统-系统管理员(附生成器)
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(10)-系统菜单栏[附源码]
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(26)-权限管理系统-分配角色给用户
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(15)-权限管理系统准备
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(19)-权限管理系统-用户登录
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(26)-权限管理系统-分配角色给用户
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(15)-权限管理系统准备
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(16)-权限管理系统-漂亮的验证码
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(20)-权限管理系统-根据权限获取菜单
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(24)-权限管理系统-将权限授权给角色