“order by ID” 语句速度明显太慢

won2155 2013-11-15 10:08:38
Adodc1.RecordSource = "select * from 正知 order by ID" '

软件启动时,调入Access数据库里数据,正知这个表的数据,总共也只有124条,数据结构如下图所示。
如果SQL语句中有“order by ID”,启动时间2.6秒,去掉,则只有0.02秒。

虽然听说order by 语句会使速度变慢,但我一百多条数据用一下order by 就会慢成这样,我感觉不正常,我是个菜鸟,希望各位老大帮分析一下原因。

...全文
1031 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
of123 2014-04-01
  • 打赏
  • 举报
回复
执行缓慢是虚拟缓存中不断进行磁盘交换引起的。建议查询中先不包含“内容”字段。需要时,再对单一记录另外查询。
vansoft 2014-04-01
  • 打赏
  • 举报
回复
用记录集变量,查询时不要加排序,记录集变量有排序属性。
of123 2014-04-01
  • 打赏
  • 举报
回复
呵呵,他不用 order by ID 也是要载入 grid 的。 内容字段保存了整篇文章,这样查询想不慢都难。 文件和图片管理数据库,一种方法是库表中只保存文件名。具体内容可以通过读文件来提取。
赵4老师 2014-04-01
  • 打赏
  • 举报
回复
分页
熊孩子开学喽 2014-04-01
  • 打赏
  • 举报
回复
引用 3 楼 wonds 的回复:
谢谢两位老大的热心回答。 我的这个数据表,是有一些被删除的数据,不过,加上被删除的数据,也就是200条左右吧 另外,这个数据表的索引就是ID字段,是access的自增型字段
首先, 如果这些内容都是出自同一个表的话, 那么你这个表的结构实在太冗余了. 像"来源","分类","编码"之类的东西完全应该用单独的表来存放. 可以大大缩小存储空间. 其次, 对于你的描述有点疑惑: 如果SQL语句中有“order by ID”,启动时间2.6秒,去掉,则只有0.02秒...但我一百多条数据用一下order by 就会慢成这样 你到底是说哪个慢? 你是不是把数据载入grid控件的时间也算进去了? 还是单独运行sql语句用去0.2秒?
bcrun 2014-03-31
  • 打赏
  • 举报
回复
内容字段数据太大,建议不要放在GRID控件中显示
manpuku 2014-03-31
  • 打赏
  • 举报
回复
虽然你记录数没几个 但是你的一条记录的内容就顶上别人好几百条的说 当然会慢了
ah_2056 2013-11-26
  • 打赏
  • 举报
回复
怎么会不卡,你的数据是RTF文本标示,谁知道你这个文本多大,你压缩后看看ACCESS体积就知道了,我估计这些文本很长很长。
  • 打赏
  • 举报
回复
你的内容数据太多了,建议搜出来的时候只显示ID和标题
tenhilltree 2013-11-25
  • 打赏
  • 举报
回复
ljr_aa 2013-11-25
  • 打赏
  • 举报
回复
关闭杀毒软件试试,再不然重装系统试试
捧剑者 2013-11-18
  • 打赏
  • 举报
回复
建索引了吗?
won2155 2013-11-18
  • 打赏
  • 举报
回复
谢谢两位老大的热心回答。
我的这个数据表,是有一些被删除的数据,不过,加上被删除的数据,也就是200条左右吧
另外,这个数据表的索引就是ID字段,是access的自增型字段

threenewbee 2013-11-16
  • 打赏
  • 举报
回复
如果数据库中原来有大量的数据,反复读写删除后剩下100多条的,那么整理和压缩下数据库看看。 也可能是杀毒软件的干扰,因为access和sql不同,它会产生一个打开文件的过程(sql在服务器启动的时候就完成这个过程了),如果杀毒软件有拦截和检查,会拖慢速度。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧