3个回答
展开全部
就拿sqlserver举例:
========================
sql和存储过程都生成查询计划来优化查询。
比如
select * from where id=?
这样一个sql ,只要传给id的参数一变化,就要重新生成查询计划,而存储过程不会重新生成查询计划。如果都要重新生成查询计划,那么消耗主要是IO网络。
========================
另一种就是动态sql
sp_executesql对动态的sql往往能够利用查询计划,而exec不能,我说的可是动态sql的存储过程产生的区别。
考虑到查询计划的重用性,相同定义的存储过程优于查询语句,sp_executesql优于exec()
=======================
所以要看是否重用查询计划,另一种就是SQL报文的长度,如果你的报文过长,接受解释那也是CPU时钟消耗,你说存储过程快还是sql快呢?
========================
sql和存储过程都生成查询计划来优化查询。
比如
select * from where id=?
这样一个sql ,只要传给id的参数一变化,就要重新生成查询计划,而存储过程不会重新生成查询计划。如果都要重新生成查询计划,那么消耗主要是IO网络。
========================
另一种就是动态sql
sp_executesql对动态的sql往往能够利用查询计划,而exec不能,我说的可是动态sql的存储过程产生的区别。
考虑到查询计划的重用性,相同定义的存储过程优于查询语句,sp_executesql优于exec()
=======================
所以要看是否重用查询计划,另一种就是SQL报文的长度,如果你的报文过长,接受解释那也是CPU时钟消耗,你说存储过程快还是sql快呢?
仁科信息
2024-07-24 广告
2024-07-24 广告
Oracle EBS运维是确保企业资源规划系统稳定、高效运行的关键环节。它涵盖了系统监控、性能优化、故障排查与恢复等多方面内容。通过持续的监控和数据分析,运维团队能够及时发现并解决潜在问题,保障系统的稳定性和安全性。同时,他们还需要与业务部...
点击进入详情页
本回答由仁科信息提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询