考虑到存储过程是编译的代码单元,在使用动态T-SQL语句时,Select * from <table/view>
与在存储过程中使用它有相同的性能影响吗?SQL Server通配符
-3
A
回答
3
要回答你的问题,它需要被百般挑剔一点:
不SELECT * FROM具有相同的性能含义 关于通配符解释
SELECT *
主要有3种类型的缺点:
- 代码维护:使用SELECT *降低复杂表/查询的易读性,并且c当客户端应用程序预期查询产生某些结果时会导致问题,但表更改
- 网络性能:将结果返回给客户端应用程序时使用SELECT *表示所有列都将返回给客户端;如果客户端只使用其中一些列,则会浪费带宽,并且应用程序运行速度会比较慢。索引/查询计划性能:在某些情况下,如果您有一个查询只需要返回参与索引的列,但是您将其全部返回,那么您可能会得到更糟糕的查询计划发动机。
我不确定你的意思是“关于通配符解释的含义”,但我怀疑你误解了为什么SELECT *是一个坏主意 - SQL引擎无论如何均验证提供的列; “膨胀”通配符的成本基本上是0。
给出该存储过程是代码
编译单元存储过程是不是一个真正的“的编译的代码单元”:该通常会在第一次运行后缓存存储过程的查询计划,但在许多/大多数情况下,同样适用于临时SQL语句。
现在,要实际回答您的问题:是,在临时SQL中使用SELECT *
的任何缺点也同样适用于存储过程中的SQL。
+0
我会指出,如果你有一个内部连接,你可能会返回比你需要的更多的列,并且在你使用select *时浪费资源。根据定义重复连接列。 – HLGEM
相关问题
- 1. SQL Server CE通配符
- 2. SQL Server中的通配符
- 3. SQL Server:通配符损失
- 4. SQL查询,通配符,MS SQL SERVER 2005
- 5. SQL Server中的语句,通配符
- 6. SQL Server连接和通配符
- 7. DROP DATABASE在SQL Server通配符
- 8. SQL Server中的数字通配符
- 9. Membership.FindUsersByEmail - SQL通配符
- 10. 在sql server中使用LIKE通配符的查询
- 11. 如何在SET语句中使用通配符SQL Server 2008 R2
- 12. SQL Server中的逃逸通配符(*)包含函数
- 13. 在IN内使用通配符的SQL Server
- 14. SQL Server XML列中的部分通配符搜索
- 15. 使用SQL Server 2014中的通配符检查文件
- 16. Asteriks通配符在SQL Server全文搜索中不起作用
- 17. 如何处理与SQL Server多个通配符
- 18. 在SQL Server中对通配符使用Isnumeric
- 19. 在数据库中使用通配符查询SQL Server
- 20. SQL Server中数字范围的通配符
- 21. SQL Server的全文索引通配符搜索
- 22. SQL Server配置
- 23. SQL trim通配符模式
- 24. LINQ to SQL通配符
- 25. 通配符在MS Access SQL
- 26. SQL通配符选择
- 27. SQL通配符_ Linq中
- 28. SQL替换为通配符
- 29. SQL通配符选择
- 30. SQL:喜欢用通配符
你的问题很不清楚。一些例子会有所帮助。 – Oded
为什么这个问题被拒绝投票? – klork
由于我不明白的原因,我有时会被拒绝。 – Paparazzi