首页 新闻 会员 周边

Sql Server 里面 用*号 作为查询列的和指定字段名哪个好。

0
[待解决问题]

在做 sql 查询时  如下写法 哪种 好 为什么 

1.select * from 表名

2.select 字段名 from 表名

yzy的主页 yzy | 菜鸟二级 | 园豆:317
提问于:2011-10-30 15:44
< >
分享
所有回答(9)
0

肯定是第二种了,使用*严重影响查询效率,即使你要查询所有的字段,那就把每个字段一一的列出来查询,不要用*查询

Impossible | 园豆:72 (初学一级) | 2011-10-30 15:53
0

第二种好,第一种使用*影响查询效率,特别是当表中的字段非常多的时候,要把每一个列都列出来,相对来说,第二种只列出需要的字段,可以避免查询无用字段所消耗的资源。

哲 思 | 园豆:280 (菜鸟二级) | 2011-10-30 16:21
0

第2中好,减少了索取的列,只取需要的,其实可以把每一个表要选择的列都配置在xml,以后要是新增要查询的列,直接修改配置文件就可以了,不需要更改程序。

chenping2008 | 园豆:9836 (大侠五级) | 2011-10-30 16:47
0

其实这是挺纠结一件事儿,如果只是需要取少数几列,当然是果断第二种,有时候目的就是取一个表的所有列,或者取很多列,尤其表很大的时候

所以觉得,这个问题其实不用太在意,写成第一种,未必就很恶劣。能用第二种就用,实在字段太多,反而不如第一种来的好,不过要注意的是,如果用第一种,下面用字段名时记得多检查一下,表里增减字段后也要记得修改对应的程序

丁学 | 园豆:18730 (专家六级) | 2011-10-30 19:15
0

我个人认为:

1.不是查询所有的字段的话,用第二种。

2.当查询所有字段,并且字段比较多的情况下,第一种。

喬喬AI | 园豆:996 (小虾三级) | 2011-10-30 23:14
1

1.用*号的效率要低那么一点,因为*号要去一个基表里查找此表所有的列,然后在SELECT 这些列,

而 直接用字段名则省略了查找列的步骤,

2.对表的查询,少查一列和多查一列的区别是很大的,如果不是全表的数据都需要返回,建议只查找需要返回的列即可

dearz | 园豆:588 (小虾三级) | 2011-10-31 09:25
0

我只知道,你写出列名,就不用sqlserver从系统表里面去查列名了。。。

顾晓北 | 园豆:10844 (专家六级) | 2011-10-31 12:11
0

第二种比第一种查询速度快,如果你要提取表中所有内容就得用*,只需要某字段的数据那就用第二种好了。

luckydd | 园豆:77 (初学一级) | 2011-11-04 15:49
0

当使用*时,为了解析需要付出一些额外的代价,但与查询过程中无法察觉到的代价相比,这一代价通常可以忽略 显示的写出所有列名只是对以后项目中可能出现的删除列 查询会报错规避

紅人 | 园豆:117 (初学一级) | 2017-12-25 17:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册