设为首页 收藏本站
查看: 801|回复: 0

[经验分享] ORACLE数值类型的性能优化技巧number,Int,float

[复制链接]
YunVN网友  发表于 2016-8-13 07:33:49 |阅读模式
  那什么是数值类型?
  比如常见的有number,Int,float,最常用的是number类型
  性能是如何考虑的呢?
  使用时有哪些技巧呢?
  这些是我们重点考虑的知识点.我们说精度越低,存储的空间越小,性能越高,其实空间节约对于性能的提高是非常有限的。有时,我们还需要利用空间来换取时间呢,浮点类型还有更重要的因素来影响性能,那就是浮点运算机制跟number的运算机制是完全不同的
  记住:浮点的性能要高很多
  更多oracle性能详解请参见:http://www.icartype.com
  那我们要从浮点的内部机制来说起浮点数是一个有理数子集中一个数的数字表示,通常用于在计算机上近似一个任意的实数,浮点是依赖硬件设备的
  总结下:
  o浮点是硬件来计算的
  oNUMBER类型,是由软件来计算的
  他们两者的性能差至少在1个数量级
  
  createtablenumber_tuning
  (num_typenumber,
  float_typebinary_float,
  double_typebinary_double
  );
  selectsum(ln(num_type))fromnumber_tuning;
  selectsum(ln(float_type))fromnumber_tuning;
  selectsum(ln(double_type))fromnumber_tuning;
  
  
  第一条,sum(ln(num_type))
  
  花了1.2
  再来看第二条,sum(ln(float_type))
  
  0.09
  再来看第三条,sum(ln(double_type))
  
  0.04
  number类型花1.2秒,单浮点0.09秒,双浮点0.04
  更多oracle性能详解请参见:http://www.icartype.com
  双精度浮点通常是最快的,我们说了,空间不是影响性能的关键,这个实验是不是看的很清楚,浮点类型比Number类型快很多,因为浮点是硬件计算的
  
  如果我们的业务表已经设置成NUMBER类型了,我又不想把表结构的NUMBER类型转换成浮点类型,又想提高计算效率
  方法是:我们可以在语句级强制类型转换,而不在表结构级上转换
  使用cast函数
  selectsum(ln(cast(num_typeasbinary_double)))
  fromnumber_tuning;
  更多oracle性能详解请参见http://www.icartype.com/?p=28

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-257161-1-1.html 上篇帖子: Oracle中计算两个时间的时间差: 下篇帖子: 【转】JDBC使用TNS连接多节点Oracle
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表