技术CTO-关注编程入门知识,提供编程入门教程

您的位置: 首页 > 数据库 > sqlserver > 正文

查询速度优化

来源: 技术CTO 阅读:

处理器:AMD Athlon(tm) || X4 645 Processor 3.10GHZ
内存:12G
操作系统: win10,64位
数据库:sqlserver2014

单表数据量50多万,且已在该表做了分区,分区字段为主键ID字段,该字段为GUID类型,分了20个区,
现在执行的查询语句是: select * from 表,耗时为10到11秒。

请教查询慢的问题出在哪里,怎样提高查询速度?

你要把 50W 行数据都查出来做什么?
20个分区是放在不同的硬盘上的吗?
请教查询慢的问题出在哪里,怎样提高查询速度?
--> 磁盘IO应是瓶颈,可以考虑固态硬盘.
说几点吧:
1.select * from xxx 这种查询意义不大,不建议使用.另外,你当前的硬件环境,这个分不分区并不会有区别.
2.50W的数据量,其实并不需要分区.建议单个分区的数据量控制200W~1000W
3.主键是GUID类型,分区字段占用空间偏大,建议使用较小的字段int,datetime等类型字段作为分区列
确实是,当前硬件环境下,分不分区,耗时都是一样的,
另外我是想把这个查询语句:select * from 表 , 当作一种查询速度的测试手段,在很多视图和存储过程中会用的这些一个个的单表作关联查询
百万级的单表数据量都是怎样的硬件环境?
引用 6 楼 octwind 的回复:
百万级的单表数据量都是怎样的硬件环境?

关键看具体的系统应用和并发程度,
如果只有1-2个用户的简单应用,百万级的数据量用普通PC也可以的.
我现在在本机PC上,硬件环境如提问中的描述,并且只有我一个用户连接,通过sqlserver2014查询分析器,
把几个20多万数据量的表做成关联查询的视图,其中select字段用到的才显示,无“*”表示,
再用分页存储过程执行,每页50行,查找第1页,也耗时4到5秒,
希望查询耗时在2秒或2秒以内
应提供表结构,索引情况,视图代码,分页存储过程代码等, 才能帮你优化喔.
 select * 已经是查询大忌了
你的系统是win10??? 我不知道服务器有win10这个版本么?你不会装了普通的系统吧

^_^ 如果您热爱技术、热爱编程,想与更多的朋友一起交流学习,欢迎加入本站官方QQ群:345733473 ^_^