为什么select * from a的速度比select 具体字段from a快很多

yangjingxin 2007-08-13 12:07:57
为什么select * from a的速度比select 具体字段from a快很多
...全文
554 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
不明LZ在说什么
knowledge_Is_Life 2008-04-30
  • 打赏
  • 举报
回复
支持搂主,收藏
迷失的空间 2007-11-24
  • 打赏
  • 举报
回复
看看执行计划。区别应该在那里
yangjingxin 2007-10-24
  • 打赏
  • 举报
回复
谢谢各位!
迷失的空间 2007-08-27
  • 打赏
  • 举报
回复
学习!
wffffc 2007-08-22
  • 打赏
  • 举报
回复
如果返回的数据很多话,好像把显示关闭也会快很多
yangjingxin 2007-08-21
  • 打赏
  • 举报
回复
噢,楼上说的有道理
DragonBill 2007-08-14
  • 打赏
  • 举报
回复
分别用下面的语句看看:

SET AUTOTRAC ON EXPLAIN
SELECT * FROM A

SET AUTOTRAC ON EXPLAIN
SELECT SpecField FROM A

我估计两者的优化选项有所不同
多壮志 2007-08-14
  • 打赏
  • 举报
回复
这是我的猜测。 当oracle用于从数据库块中分离特定字段的时间可能比网络传输字段的时间要来的长的时候,可能导致select * 比select col 来的慢。
whyangwanfu 2007-08-14
  • 打赏
  • 举报
回复
为什么select * from a的速度比select 具体字段from a快很多

--------------------------------------------------
select * from a肯定是表扫描


//create index it1c1 on a(c1);
select c1 from a 会对索引it1c1进行全扫描

我们可以知道a的一条记录的长度,会大于it1c1上的一条索引项的记录所占的空间(索引记录类似(c1的值,对应的主键))。

索引,假设表有10000条记录,全表的存储可能需要100页,索引it1c1可能只需要10页。
扫描10页的速度当然快于扫描100页的速度。
20804036 2007-08-13
  • 打赏
  • 举报
回复
不见得吧,关键看你用了索引没有哦!
wbz82 2007-08-13
  • 打赏
  • 举报
回复
如果数据量很大的话,"具体字段"不是索引也不是主键的话,会比"*"要慢.
把"具体字段"改成索引应该会很快
bobfang 2007-08-13
  • 打赏
  • 举报
回复
“select 具体字段”是select了所有字段还是部分?

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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