SQLServer2012 和 MariaDB 10.0.3 分页效率的对比
1. 实验环境 ???? R910服务器, 16G内存 ???? SqlServer 2012?? 64bit ???? MariaDB 10.0.3?? 64bit? (InnoDB) 2. 实验表情况 rtlBill.BillNo 为主键,rtlBill.BillDate 上有索引; rtlDetail.BillNo 上有索引; 3. 实验步骤 (1)重启Sqlserver2012 (2)执行下面的分页语句 SELECT BillDate,SUM([QTY]) PosInQty (3)重启MariaDB (4)执行下面的分页语句 SELECT BillDate,sum(QTY) AS PosInQty 4. 实验结果 同样是获取第 11 ~ 30 条记录 Server2012耗时:18s MariaDB耗时:?????? 2s 这个差别还是挺震撼的,是什么导致了二者的巨大差距? 下面来看看执行前后二者的IO对比。 5. 分析 (1)从下图中可以看出,为了获取分页数据,MariaDB读取了 52M 数据 (2)为了获取相同的数据,SQLServer2012,读取了 848M 数据 (3)二者的差距,就在分页数据的读取策略上。Sqlerver2012为了读取分页子集,几乎把整个表都放入了内存。不得不说,这块儿优化的空间很大。。。 有没有办法优化? 请听下回分解《SQLServer2012 分页语句执行分析》 各位看官,欢迎大家拍砖啊,有批评才有进步,谢谢。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sqlserver 2000中每个服务器角色的解释
- SQLServer 实用语法大全
- GENERATED BY ALWAYS AS IDENTITY和GENERATED BY DEFAULT A
- 教你轻松学会SQL Server记录轮班的技巧
- 由于登录失败而无法启动项目SQLServer2000发生错误1069
- sqlserver清除缓存,记录查询时间
- sql-server – 如何在不使用动态SQL的情况下在存储过程中使
- 如何更改自动增长大小? MS SQL Server 2005
- SQL Server中的SQL语句优化与效率问题
- sql-server – 动态SQL中SQL绑定变量的SQL Server等价物是什