永发信息网

如何解决SQL查询速度太慢?

答案:5  悬赏:40  手机版
解决时间 2021-04-07 14:13
  • 提问者网友:临风不自傲
  • 2021-04-07 05:34
如何解决SQL查询速度太慢?
最佳答案
  • 五星知识达人网友:何以畏孤独
  • 2021-04-07 06:27
呵呵,这个问题很有趣不是吗?
上面的同志们只是给出一些建议,以我的经验来看(oracle),
如果数据量较大,索引的重复量尽量避免,最好的方式是建立非业务id(最好使用自增或是序列),把这个id建立索引。
你的最大的问题就是,建立了索引后,索引列必须出现在where中,否则索引就白白建立了,比如你的id是从1一直到383000,那么你的语句可以写成
select * from hr_worktime where id>-1
还有就是,where条件中避免出现!=,or,between,等东西,否则索引实效。
全部回答
  • 1楼网友:大漠
  • 2021-04-07 11:42
SQL Server查询速度慢的原因有很多,常见的有以下几种:
1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)
2、I/O吞吐量小,形成了瓶颈效应。
3、没有创建计算列导致查询不优化。
4、内存不足
5、网络速度慢
6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)
7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)
8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。
9、返回了不必要的行和列
10、查询语句不好,没有优化
  • 2楼网友:风格不统一
  • 2021-04-07 10:03
建议不要使用select * 这样数据量太大,可以加上select top 1000 * from hr_worktime
最好把一起不用的数据转移到备份库,这里保留需要的最新数据即可。
  • 3楼网友:冷風如刀
  • 2021-04-07 09:32
把一个表分成几个表,可以按,ID分开,比如1-10000,10000-20000这样分成多个表,当然你可以用其它的方法分开,这样的SELECt的速度会快点,其实你看到的耗时54秒,主要是输出速度太慢了,不是查询慢
  • 4楼网友:千杯敬自由
  • 2021-04-07 07:54
对于数据可以参照下面几点
1、优化SQL语句,SQL语句对查询速度影响最大
2、对于经常查询的字段作索引。但是这样会增加修改时的压力
4、优化SQLServer,比如给其分配固定的内存,预先分配查询内存,调整CPU使用率等。
5、优化硬件资源,比如使用更高的服务器或者硬盘,独立安排数据库的数据文件和索引文件,将数据文件分布于不同的物理硬盘上等等
6、考虑使用分布数据库或者对大表进行拆分
另外,2G的数据库应该不算很大了,我处理过18G的数据库,8000万条记录,查询速度可以被接受
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯