目前我正在对程序中拼接的SQL语句进行调优,无意中看到一条建议:“使用DECODE函数来减少处理时间”。我在网上查询了decode函数,发现他是oracle独有的。现在面临两个选择:不理会这条建议修改原有程序逻辑,加入decode语句的使用问题是:引入decode后对原有SQL语句的执行效率帮助有多大,如果提升很多,即使拼接出来的SQL语句不具备可移植性,同时要修改程序逻辑都没关系。
2 回答
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
decode可以代替case when语句,在语句写法上可以节省很多coding的时间
但是执行效率上其实与case when是差不多的
oracle特有这个函数的更多是为了方便使用,而不是效率考虑
Qyouu
TA贡献1786条经验 获得超11个赞
Oracle now supports simple and searched CASE statements. CASE statements are similar in purpose to the DECODE statement, but they offer more flexibility and logical power. They are also easier to read than traditional DECODE statements, and offer better performance as well. They are commonly used when breaking categories into buckets like age (for example, 20-29, 30-39, and so on).
并没有证据证明decode更快吧,查资料时倒是看到这么一句话case 方式“offer better performance as well”
额 刚发现你只是问decode··· 这个文档的内容是说decode 和 case when的比较···
- 2 回答
- 0 关注
- 126 浏览
添加回答
举报
0/150
提交
取消