我总是从sql专家那里听说在SELECT语句中使用’*’符号效率不高,最好列出所有字段名称.
但是,在向表中添加新字段然后相应地更新所有存储过程时,我发现对我个人而言并不高效.
那么使用’*’有什么优缺点?
谢谢.
解决方法
一般来说,使用SELECT *并不是一个好主意.
优点:
>添加/删除列时,不必在使用SELECT *的位置进行更改
>写的时间更短
>另见:Can select * usage ever be justified?的答案
缺点:
>您返回的数据超出了您的需求.假设您添加一个每行包含200k的VARBINARY列.您只需要在一个地方为单个记录提供此数据 – 使用SELECT *您最终可以返回每10行不需要的2MB
>明确说明使用了哪些数据
>指定列意味着删除列时会出错
>查询处理器必须做更多的工作 – 弄清楚表中存在哪些列(感谢@vinodadhikary)
>您可以更轻松地找到列的使用位置
>如果使用SELECT *,则会获得连接中的所有列
>您不能使用序数引用(尽管使用列的序数引用本身就是不好的做法)
>另见答案:What is the reason not to use select *?