我在ORACLE 10g数据库上运行了一些SQL。其中一些SQL使用的是oracle sample子句。 e.g。
select /*+ use_nl(emp,dept) +*/ *
from emp, dept
sample(10)
where emp.deptno=dept.deptno
现在,oracle 10g将升级到11g。我们必须证明对数据库升级的示例子句没有性能影响。换句话说,我应该在oracle 11g中证明示例子句在性能方面运行良好。
但是我花了整整一天时间搜索谷歌,没有预期的答案。 你能给我一个答案或建议吗?非常感谢你。
答案 0 :(得分:3)
好消息是它与Oracle内部用于采样的条款完全相同 - 最值得注意的是DBMS_Stats程序。所以我会说,除了加快速度之外,它不太可能做任何事情。
坏消息是,在升级过程中存在大量可能会损害或改善性能的问题,但是如果出现问题,您很可能会很快发现并且会有可用的修复方法。但是,如果任何事情在升级过程中发生任何变化,有人不想被指责,并且通过让你把时间浪费在必然会产生非生产性和不确定性的努力上来掩盖他们的屁股。
调查此问题的正确方法是使用您实际将要使用的新版本设置新系统 - 没有缩减数据集,如果您要执行的操作不是导出导入就地升级(您希望物理数据布局与生产完全相同),没有“小代表性查询集”,使用相同的存储架构,处理器类型和内存配置。在实际数据上运行您的实际应用程序,并以有意义的方式比较升级前后的性能。
这绝对是唯一可以确定的方法,因为您设置的任务的基本问题是您必须寻找不存在的某些事物(性能问题)的证据。这就像试图证明你的洗衣机里不存在看不见的小精灵一样,吃掉每一双袜子 - 实际上是不可能的!举证责任在于那些说可能存在某些事情的人。
http://www.logicallyfallacious.com/index.php/logical-fallacies/146-proving-non-existence
以下是您可以采取的一些建设性步骤:
如果你已经完成了所有这些工作,那么这是你可以期待的努力的极限。
如果这还不够,那么你或这次迁移背后的人只需要升级它,并提出一些尴尬的问题:从9i转到10g需要这种证明吗?是否需要从10.2.0.2升级到10.2.0.5?
我真的很想知道这背后的政治 - 这听起来像是一个可怕的工作场所。