Oracle11g PLSQL:查询以了解有多少CPU可用于并行子句

Oracle11g PLSQL:查询以了解有多少CPU可用于并行子句,oracle11g,Oracle11g,我不确定使用sql语句是否可以做到这一点。 我正在寻找sql查询,以了解并行子句中包含的硬件上可用的CPU数量。我们没有访问Linux环境的权限,因此我们正在寻找任何可能的途径来了解这个值。可以使用SQL吗?请建议 实际上,我的索引创建脚本比预期的时间要长,它是用“nologgingparallelcompress”子句实现的 请建议是否保留数字“N”并用压缩条款 Oracle如何管理并行度,以防在PARALLEL子句中遗漏CPU信息的数量 在sqlplus中,您可以使用下面的命令查看cpu的数

我不确定使用sql语句是否可以做到这一点。 我正在寻找sql查询,以了解并行子句中包含的硬件上可用的CPU数量。我们没有访问Linux环境的权限,因此我们正在寻找任何可能的途径来了解这个值。可以使用SQL吗?请建议

实际上,我的索引创建脚本比预期的时间要长,它是用“nologgingparallelcompress”子句实现的

请建议是否保留数字“N”并用压缩条款


Oracle如何管理并行度,以防在PARALLEL子句中遗漏CPU信息的数量

在sqlplus中,您可以使用下面的命令查看cpu的数量

show parameter CPU_COUNT;

SQL> show parameter CPU_COUNT;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cpu_count                            integer     2
或者,您可以查询
v$parameter
以获得相同的值

SQL> select value   from v$parameter where name like 'cpu_count';

VALUE
--------------------------------------------------------------------------------
2
使用
NOLOGGING PARALLEL COMPRESS
创建索引是可选的,但在使用时会带来一些值。压缩索引节省空间并减少CPU时间,因为它们占用更少的空间。如果你必须扫描100个数据块——做100个锁存,100个一致的数据块需要一定数量的CPU。现在,如果它是压缩的——你必须像以前一样做很多60块,60%的CPU。此外,每个叶块存储更多索引项

有关oracle如何并行工作,请阅读以下内容:


在sqlplus中,您可以使用以下命令查看cpu数量

show parameter CPU_COUNT;

SQL> show parameter CPU_COUNT;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cpu_count                            integer     2
或者,您可以查询
v$parameter
以获得相同的值

SQL> select value   from v$parameter where name like 'cpu_count';

VALUE
--------------------------------------------------------------------------------
2
使用
NOLOGGING PARALLEL COMPRESS
创建索引是可选的,但在使用时会带来一些值。压缩索引节省空间并减少CPU时间,因为它们占用更少的空间。如果你必须扫描100个数据块——做100个锁存,100个一致的数据块需要一定数量的CPU。现在,如果它是压缩的——你必须像以前一样做很多60块,60%的CPU。此外,每个叶块存储更多索引项

有关oracle如何并行工作,请阅读以下内容:


如果指定了PARALLEL子句,但未列出并行度,则对象将获得默认DOP。默认并行使用公式根据系统配置确定DOP,如下所示:

  • 对于单个实例,DOP=PARALLEL\u THREADS\u PER\u CPU x CPU\u COUNT
  • 对于Oracle RAC配置,DOP=并行线程每CPU x CPU计数x实例计数
您可以查询v$参数以获取上述两个参数名称-cpu_计数和每个cpu的并行_线程

SQL> SELECT name, value FROM v$parameter WHERE UPPER(name) IN ('CPU_COUNT','PARALLEL_THREADS_PER_CPU');

如果指定了PARALLEL子句,但未列出并行度,则对象将获得默认DOP。默认并行使用公式根据系统配置确定DOP,如下所示:

  • 对于单个实例,DOP=PARALLEL\u THREADS\u PER\u CPU x CPU\u COUNT
  • 对于Oracle RAC配置,DOP=并行线程每CPU x CPU计数x实例计数
您可以查询v$参数以获取上述两个参数名称-cpu_计数和每个cpu的并行_线程

SQL> SELECT name, value FROM v$parameter WHERE UPPER(name) IN ('CPU_COUNT','PARALLEL_THREADS_PER_CPU');

非常感谢@XING的宝贵建议。非常感谢@XING的宝贵建议。