select * from Table 是建index好呢还是 table scan 好

saizhang 2011-10-24 04:22:23
select * from Table 是建index好呢还是 table scan 好
...全文
233 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
saizhang 2011-10-26
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 gogodiy 的回复:]

不使用ORDER BY子句:如果没有索引,则SQL使用表扫描:如果有聚集索引或者非聚集索引,除非使用WITH(INDEX(索引名)),否则SQL还是使用表扫描。

楼主的语句:select * from Table,SQL只会使用表扫描。
[/Quote]
不是阿, 有聚集索引时,查看执行计划是 Clustered index scan
saizhang 2011-10-25
  • 打赏
  • 举报
回复
有没有办法在已经有索引的表上 指定 select * from table 使用表扫描呢?
CalvinR 2011-10-25
  • 打赏
  • 举报
回复
哎呀 学习了
koumingjie 2011-10-25
  • 打赏
  • 举报
回复
具体情况还是实际比较一下语句的执行时间,逻辑读次数,用以下命令
SET STATISTICS IO ON
SET STATISTICS TIME ON
gold_water 2011-10-25
  • 打赏
  • 举报
回复
看了上面的链接,收获颇多,建议9楼也去看看。
rfq 2011-10-25
  • 打赏
  • 举报
回复
表扫描
水族杰纶 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 saizhang 的回复:]
有没有办法在已经有索引的表上 指定 select * from table 使用表扫描呢?
[/Quote]
在已有索引的表上
至于要走索引还是直接扫描
也要看数据量的多少
优化器通常自己做出合理判断
gogodiy 2011-10-25
  • 打赏
  • 举报
回复
不使用ORDER BY子句:如果没有索引,则SQL使用表扫描:如果有聚集索引或者非聚集索引,除非使用WITH(INDEX(索引名)),否则SQL还是使用表扫描。

楼主的语句:select * from Table,SQL只会使用表扫描。
薇薇 2011-10-24
  • 打赏
  • 举报
回复
建索引是必须滴
中国风 2011-10-24
  • 打赏
  • 举报
回复
難道理解錯了

樓主是指這個查詢需不需要建索引吧?不需要
select * from Table
快溜 2011-10-24
  • 打赏
  • 举报
回复
索引。
-晴天 2011-10-24
  • 打赏
  • 举报
回复
要想有效率,建索引是必须的.
--小F-- 2011-10-24
  • 打赏
  • 举报
回复
数据量大 有聚聚索引还是很好的 效率比较高
中国风 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 saizhang 的回复:]
select * from Table 是建index好呢还是 table scan 好
[/Quote]

強制用index再表掃描,反而會更低準備效率
中国风 2011-10-24
  • 打赏
  • 举报
回复
有區別麼

都是表掃描,你查看一下執行計劃

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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