可能重复:
SQL: Using Select *
大家好!
我想知道在SQL Server中使用存储过程中的*符号是不是一个坏主意? 写的真的好多了
SELECT
NAME,
AGE,
OTHER_STUFFS
FROM
TABLE
大于
SELECT * FROM TABLE
肯定表中只有3列。对于表演来说,列举每一列更好吗? 坦克寻求帮助..
答案 0 :(得分:2)
虽然您现在可能正在使用所有列,但可能(甚至可能)该表将来会添加列。当发生这种情况时,您将选择额外的数据,并根据您的操作,这可能会导致问题。
从重复的帖子Which is faster/best? SELECT * or SELECT column1, colum2, column3, etc中被盗:
你可能愿意将此视为 一个小的成本,但意识到列 您不需要的仍然是:
- 从数据库中读取
- 通过网络发送
- 编入您的流程
- (适用于ADO类型技术)保存在内存中的数据表中
- 忽略并丢弃/垃圾收集
醇>
答案 1 :(得分:0)
我会说,当你按照
的方式做某事时,这只会很糟糕insert into Table1
select * from Table2
因为如果有人向Table2或类似的东西添加了一个列。
如何在select语句中指定必要的列并不重要,它不会影响性能。
答案 2 :(得分:0)
如果您确实列出了表格中的每一列,那么性能应该是等效的。
问题是,当您稍后向该表添加更多列时,它们将被存储过程选中并且不会被使用,除非您在每次更改表后返回并更新所有过程(我没有)。
答案 3 :(得分:-7)
使用 SELECT * 而不是选择所有列根本没有区别。实际上, SELECT * 可能会快一点,因为必须将更少的字节发送到服务器才能执行命令。