2016-11-17 60 views
0

我不確定這是否可能使用sql語句。 我正在查找sql​​查詢,以瞭解可用於包含在PARALLEL子句中的硬件的CPU數量。我們無法訪問我們的Linux環境,因此我們正在尋求任何可能性來了解這個價值。是否有可能使用SQL?請建議。PLSQL:查詢知道有多少CPU可用於PARALLEL分類

實際上,我的索引創建腳本需要的時間比預期的時間要長,並且它使用「NOLOGGING PARALLEL COMPRESS」子句實現。

請建議如果在PARALLEL和COMPRESS子句中留下數字「N」是可以的。

Oracle如何管理並行度以防萬一我們錯過PARALLEL子句中的CPU信息數量。

回答

1

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

show parameter CPU_COUNT; 

SQL> show parameter CPU_COUNT; 

NAME         TYPE  VALUE 
------------------------------------ ----------- ------------------------------ 
cpu_count       integer  2 

另外,您可以查詢v$parameterNOLOGGING PARALLEL COMPRESS是可選的,以獲得相同的值

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

VALUE 
-------------------------------------------------------------------------------- 
2 

創建索引,但他們在某些價值觀帶給當您使用它。壓縮索引節省空間並縮短CPU時間,因此佔用更少的空間。如果必須掃描100個塊 - 執行100個鎖存器,則需要100個一致性獲取,這需要一定數量的CPU。現在,如果它被壓縮 - 你必須像以前一樣做60個塊,60%的CPU。除此之外,每個葉塊還存儲更多索引條目。

對於Oracle並行的工作原理如下解讀:

https://docs.oracle.com/cd/E11882_01/server.112/e25523/parallel002.htm

+0

非常感謝@XING提供寶貴建議。 – PS078

1

如果指定並行條款,但沒有並行度上市,對象得到默認的DOP。默認的並行使用公式來確定基於所述系統配置的DOP,如以下:

  • 對於單個實例,DOP = PARALLEL_THREADS_PER_CPU X CPU_COUNT
  • 對於Oracle RAC配置,DOP = PARALLEL_THREADS_PER_CPU X CPU_COUNT X INSTANCE_COUNT

可以查詢v $參數來獲取上述兩個參數的名字 - CPU_COUNT和PARALLEL_THREADS_PER_CPU

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