oracle怎么查pga,Oracle怎么查詢

怎樣查看oracle的優(yōu)化器參數(shù)

查詢優(yōu)化器參數(shù)

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),新華企業(yè)網(wǎng)站建設(shè),新華品牌網(wǎng)站建設(shè),網(wǎng)站定制,新華網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,新華網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

1. optimizer_mode

查詢優(yōu)化器是為了找一個最高效的執(zhí)行計劃,這個參數(shù)用來定義什么是“高效”,比如是更快還是占用資源更少。在oracle10g中只支持兩個參數(shù)值:

all_rows:提供全部數(shù)據(jù)

first_rows(n):n為大于0的自然數(shù),表示盡快傳輸前面n條數(shù)據(jù)(比如分頁查詢的時候,我第一次只查詢前面10條數(shù)據(jù))

oracle10g默認為all_rows,可以再數(shù)據(jù)庫級別,會話級別,或者執(zhí)行SQL的時候修改該參數(shù)的值。

數(shù)據(jù)庫級別:alter system set optimizer_mode=first_rows(10) scope=spfile;

會話級別:ALTER SESSION SET OPTIMIZER_MODE=first_rows(10);

SQL級別:SELECT /*+ first_rows(10) */ id,name from t1 order by id;

其實,默認all_rows是最好的方式,如果確實是只要查詢小部分數(shù)據(jù),可以在sql級別加上提示,看是否能提高性能。

2. db_file_multiblock_read_count

在多塊讀的情況下(比如全表掃描),該參數(shù)說明一次最多可讀取的數(shù)據(jù)塊數(shù)目。設(shè)置得太小的話,效率低。設(shè)置得太高也不見得就好(太高,會受I/O最大吞吐量限制。比如設(shè)置成一次最多讀取1024塊,但I/O最大吞吐量只允許32塊,那一次最多也只讀取32塊。而且一次讀取很多塊,開銷會偏高。)應(yīng)該通過測試,才能知道應(yīng)該把該參數(shù)設(shè)置成哪一個值。

測試過程:

1. 創(chuàng)建一張大表,比如上千萬行級別的數(shù)據(jù)

2. 循環(huán)設(shè)置該參數(shù)的值,查看全表掃描的速度。類似于以下語句:

[sql] view plain copy

span style="font-size:14px;" declare

l_count pls_integer;

l_time pls_integer;

l_starting_time pls_integer;

l_ending_time pls_integer;

begin

dbms_output.put_line('dbfmbrc seconds');

for l_dbfmbrc in 1..32

loop

execute immediate 'alter session set db_file_multiblock_read_count='||l_dbfmbrc;

l_starting_time := dbms_utility.get_time();

select /*+ full(t) */ count(*) into l_count from big_table t;

l_ending_time := dbms_utility.get_time();

l_time := round((l_ending_time-l_starting_time)/100);

dbms_output.put_line(l_dbfmbrc||' '||l_time);

end loop;

end;

//span

3. optimizer_index_cost_adj

影響走索引掃描的開銷計算。 取值范圍1到10000.默認值為100,超過100后,走索引掃描的開銷越高,從而使得查詢優(yōu)化器更加傾向于使用全表掃描。相反,小于100,索引掃描的開銷就越低,從而使得查詢優(yōu)化器更加傾向于使用索引掃描。從下面索引掃描開銷計算公式可以看出:

io_cost=(blevel+(leaf_blocks+culstering_factor)*selectivity) *optimizer_index_cost_adj/100.

一般是默認值不需要修改,但是如果發(fā)現(xiàn)本應(yīng)該走索引掃描結(jié)果走了全表掃描,可以適當調(diào)低該值,但是,這個值不應(yīng)該設(shè)置過低,因為,過低的話,如果兩個索引掃描的開銷不同,可能通過該公式一算,開銷就變成一樣的了。總之,不建議修改該參數(shù)的值。

PGA參數(shù)

1. workarea_size_policy

管理工作區(qū)域內(nèi)存(PGA)的方式,

auto:oracle10g默認方式,委托給內(nèi)存管理器自動管理(建議不需要修改)

manual:oracle9i默認方式,oracle9i沒有自動管理功能。

2. pga_aggregate_target

如果是自動管理PGA,那么該參數(shù)用于指定實例可用的PGA的大小,默認是SGA的20%。即使今后用的內(nèi)存超過了設(shè)置的值,也沒有關(guān)系,oracle會自動增大PGA的值。比如該參數(shù)設(shè)置的是200M,今后某一時刻,需要300M,也是沒問題的,會自動增長。

3. sort_area_size

手動管理PGA,該參數(shù)指定分配多大的內(nèi)存用于排序操作,過小的話,會影響性能,過大的話浪費空間。很難說一個合適的默認值,因為用戶場景變化非常大,實際情況得實際處理。

4. hash_area_size

手動管理PGA,該參數(shù)用于指定哈希連接的工作區(qū)域大小,同樣建議它的值也很困難。如果過小,那么查詢優(yōu)化器就會高估哈希連接的開銷,偏向于合并連接。

oracle 如何查看pga 修改pga

SQL?alter?system?set?workarea_size_policy=auto?scope=both;

System?altered.

SQL?alter?system?set?pga_aggregate_target=512m?scope=both;

System?altered.

SQL?show?parameter?workarea

NAME?????????????????????????????????TYPE????????VALUE

------------------------------------?-----------?------------------------------

workarea_size_policy?????????????????string??????AUTO?--這個設(shè)置成AUTO

SQL?show?parameter?pga

NAME?????????????????????????????????TYPE????????VALUE

------------------------------------?-----------?------------------------------

pga_aggregate_target?????????????????big?integer?536870912

SQL

如果有疑問,請私信,如已解決,請采納,謝謝!

如何查看oracle當前pga的大小

10g有個關(guān)于pga的參數(shù)。11g就是pga,sga放在一起的。也就是說11g以后的版本是沒辦法查詢的。

如果是10g和以前的版本,那么用 show parameter pga查就可以了。

oracle數(shù)據(jù)庫怎么查看pga

在命令行下使用sqlplus

"/as

sysdba"登陸數(shù)據(jù)庫,然后輸入show

parameter

pga后回車,就可以查出當前數(shù)據(jù)庫的pga大小。

標題名稱:oracle怎么查pga,Oracle怎么查詢
URL鏈接:http://muchs.cn/article22/phjdcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、品牌網(wǎng)站建設(shè)、微信小程序、微信公眾號建站公司、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)