Oracle 使用服务器的全部资源是否可以确保更好的查询执行性能?

Oracle 使用服务器的全部资源是否可以确保更好的查询执行性能?,oracle,oracle11g,doparallel,Oracle,Oracle11g,Doparallel,我正在使用CTA创建一个新表。正如我使用的并行提示,没有任何并行线程。它消耗256 DOP的exadata服务器 此查询是否在最高级别执行。否则这将花费更多的时间 使用服务器的全部资源是否保证查询的执行 谢谢为并行Oracle SQL语句使用更多资源通常会带来更好的性能和更短的运行时间 从理论上讲,使用过高的并行度(DOP)最终会适得其反,这是有道理的。在某种程度上,管理如此大量并行进程的开销可能会超过额外进程的好处 但在实践中,我从未见过Oracle SQL语句出现这种情况。对于CPU和I

我正在使用CTA创建一个新表。正如我使用的并行提示,没有任何并行线程。它消耗256 DOP的exadata服务器

  • 此查询是否在最高级别执行。否则这将花费更多的时间
  • 使用服务器的全部资源是否保证查询的执行

  • 谢谢

    为并行Oracle SQL语句使用更多资源通常会带来更好的性能和更短的运行时间

    从理论上讲,使用过高的并行度(DOP)最终会适得其反,这是有道理的。在某种程度上,管理如此大量并行进程的开销可能会超过额外进程的好处

    但在实践中,我从未见过Oracle SQL语句出现这种情况。对于CPU和I/O绑定任务,我已经在几个不同的平台上对此进行了几次测试。看起来越大越好

    但有许多重要的免责声明:

  • 虽然较高的DOP将有助于这一陈述,但它可能对其他陈述极不公平。当然存在收益递减的问题。如果一条语句的性能提高不到1%,那么这可能不是一个好主意,因为它会损害许多其他语句
  • 虽然我已经测试了好几次,但我不能保证它适用于每种配置
  • 测试这些场景是困难的。在其他人不使用的系统上,您必须选择大量工作,通过运行
    alter system flush buffer\u cache
    (尽管这可能不会禁用操作系统缓存)等操作来避免“热”系统,多次运行测试,删除异常值,平均结果等
  • 注意可能降低DOP的Oracle机制。你要求256并不意味着你就可以得到256。要确保没有发生参数或节流,请检查
    v$px_进程
    ,以确保所有并行线程都在使用
  • 根据我的经验,如果您只关心单个SQL语句的最佳性能,请尽可能提高DOP

    Create table hp_zzz1
    nologging parallel
    as
    select * fom hP_zzz;