如果只选择查询中的必填字段而不是查询整个行,性能会有多大的好处?例如,如果我有一行10个字段,但在显示中只需要5个字段,那么是否值得只查询这5个字段?与需要时必须返回并在sql查询中添加字段的风险相比,这种限制的性能优势是什么?
发布于 2009-01-10 06:03:04
你需要考虑的不仅仅是额外的数据方面。选择所有列将否定覆盖索引的用处,因为需要对聚集索引(或表)进行书签查找。
发布于 2009-01-10 05:30:28
这取决于选择了多少行,以及这些额外的字段消耗了多少内存。例如,如果存在多个文本/blobs字段,或者选择了许多行,则运行速度会慢得多。
稍后添加字段有何风险?修改查询以适应不断变化的需求是开发过程中的自然部分。
发布于 2009-01-10 05:39:42
据我所知,在select语句中显式命名列的唯一好处是,如果代码正在使用的列被重命名,则select语句将在代码之前失败。更好的是,如果select语句在proc中,proc和DB脚本将无法编译。如果您正在使用诸如VS DB版之类的工具来编译/验证DB脚本,这将非常方便。否则,性能差异将可以忽略不计。
https://stackoverflow.com/questions/430605
复制相似问题