DB2 for z和ORACLE关于Optimization Hint的比较

有一个相当重要的概念,在DB2ORACLE中有不同的名字,那就是应用逻辑访问数据的方法或路径,在DB2中这被称为访问路径(Access Path),在ORACLE中称为执行计划(Execution Plan)。相同的是,它们都可以通过EXPLAIN来展现,而且都有被称为plan_table的表来以一定的格式存放访问路径或者执行计划信息。

其实,访问路径也好,执行计划也好,反映的是数据库SQL优化器(Optimizer)对SQL的优化处理方式,因此Optimizer也被称作是RDBMS的大脑。DB2ORACLE的区别也毫不例外地反映在它们的Optimizer上。DB2ORACLE经历了那么多版本而发展到今天,它们的Optimizer也已经演化的高度智能。但即便如此,有时候仍然需要人工的干预和优化,特别是当统计信息(Statistics Information)缺失或者不够详细,或者不够准确,出现倾斜/扭曲(Skew)的时候。这就称作优化器提示(Optimization Hint)。

[@more@]

说到DB2ORACLE关于Optimization Hint的区别,首先就是如何使用上的区别,这也是最直观的。

ORACLEhint必须添加在SQL语句里面,通过使用特定的功能注释(functional comment)的方式,也就是 /*+ [hint text] */ 或者 --+ [hint text] 来实现。而DB2hint则是脱离SQL语句的,它是以访问路径的形式存放在plan_table中的,在bind时通过指定OPTHINT参数来实现。显而易见,DB2的使用方法更合理一些。假设某个应用程序的一条SQL语句,在运行一段时间后发现因Optimizer的失误而存在效率问题,而这个问题必须通过hint的方式来解决。对于DB2,负责运维的一线DBA可以立即修改plan_table中的相关访问路径信息,把它设置为hint,然后重新bind这个应用程序,在不改变SQL的前提下就可以强制Optimizer选取hint规定的访问路径(通常,这些动作都是由system DBA完成的,问题的解决就在现场)。对于ORACLE,负责运维的一线DBA没有办法现场解决这个问题,必须回溯到上游的程序开发阶段,由编程人员修改这条SQL语句,为它添加hint,可能还会涉及到一些版本测试、封装、发布和管理的工作,然后才能在系统上生效(通常,这些动作是由开发阶段的application DBA完成的,问题的解决被向后移动到二线甚至三线了)。

(未完)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/45793/viewspace-1016991/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/45793/viewspace-1016991/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《凸优化算法》是一本关于凸优化算法的PDF教材。凸优化是一种重要的数学工具,用于解决许多实际问题,例如最小二乘、线性规划、支持向量机等。这本教材主要介绍了凸优化的基本概念和一些常用的算法。 首先,教材介绍了凸集、凸函数等凸优化的基本概念。凸集是指集合中的任意两点连线上的点也在该集合中,凸函数是指其定义域上的任意两点连线上的函数值都不超过其它点的函数值。凸集和凸函数是凸优化问题的基础。 教材接着介绍了凸优化问题的表达和求解方法。它介绍了线性规划、二次规划、半定规划等凸优化问题的数学表达式,并详细介绍了如何使用凸优化工具箱去求解这些问题。凸优化工具箱是一种可以用来求解凸优化问题的软件,例如CVX、MOSEK等。 此外,教材还介绍了凸优化问题的常用算法。这些算法包括梯度下降法、牛顿法、内点法等。梯度下降法是一种通过迭代寻找凸函数最小值的方法,其基本思想是沿着函数梯度下降的方向进行搜索。牛顿法是一种通过二阶导数信息进行迭代的方法,它能更快地找到凸函数的最小值。内点法是一种使用光滑逼近函数的方法,通过不断接近可行域边界来求解凸优化问题。 总的来说,这本教材介绍了凸优化的基本概念、问题表达和求解方法以及常用算法。它对于希望深入了解凸优化和应用凸优化算法的读者来说是一本很有价值的资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值