VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 992|回复: 7

急!!!很奇怪,关于检索数据的速度问题,请指点一下……

[复制链接]

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-17 08:30:01 | 显示全部楼层 |阅读模式
数据库中有这样一张表:A(共有40个字段,所有字段均是varchar类型,数据9000多条)

TheID     Date         Number  Heavy  TheGoods   ……
HH00001   2016-01-01   10      1000   木材       ……   
HH00002   2016-05-01   50      6000   钢材       ……

……
HH01111   2017-01-01   30      800    布         ……
……

我用Sql语句对数据查询,出现一个奇怪的情况:
select * from A where Date between '2016-01-01' and '2016-11-01'

如果上面的语句中日期该成2017的话,那么数据查询就变的很慢(数据也就在一百条左右)。“其他情况”速度都正常的!

请问这个是什么原因造成?有什么办法可以解决?请指点一下……

学习,关注……
回复

使用道具 举报

0

主题

28

帖子

25.00

积分

新手上路

Rank: 1

积分
25.00
发表于 2020-6-18 15:00:01 | 显示全部楼层
有没有可能很多人在访问服务器?
回复

使用道具 举报

0

主题

88

帖子

55.00

积分

新手上路

Rank: 1

积分
55.00
发表于 2020-6-18 23:00:01 | 显示全部楼层
按Date列索引一下,看看速度如何~
回复

使用道具 举报

0

主题

40

帖子

29.00

积分

新手上路

Rank: 1

积分
29.00
发表于 2020-6-20 14:15:01 | 显示全部楼层
把*去掉,改成相应的列名
虽然麻烦,但是效率会高一些
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-7-9 16:45:02 | 显示全部楼层
楼主的说明:
1、访问服务器的人不超过10个

2、我把*去掉,只用了几个列名,试了一下,效果基本上没有差别!

3、Date列索引一下?小弟是菜鸟,这个不会,能不能教我一下??
回复

使用道具 举报

0

主题

126

帖子

73.00

积分

新手上路

Rank: 1

积分
73.00
发表于 2020-7-9 19:45:01 | 显示全部楼层
1、如果查询经常用到Date,可以考虑建索引
2、更新表的统计信息
回复

使用道具 举报

0

主题

126

帖子

73.00

积分

新手上路

Rank: 1

积分
73.00
发表于 2020-7-9 21:00:01 | 显示全部楼层
CREATE INDEX IdDate ON A(date);

UPDATE STATISTICS A
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-7-10 17:45:01 | 显示全部楼层
楼主的说明:

CREATE INDEX IdDate ON A(date);

UPDATE STATISTICS A

这些语句应该写在哪里????
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表