普通參數:也就是Oracle系統正常使用的一些參數,
公司主營業務:成都網站制作、網站建設、移動網站開發等業務。幫助企業客戶真正實現互聯網宣傳,提高企業的競爭能力。成都創新互聯是一支青春激揚、勤奮敬業、活力青春激揚、勤奮敬業、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創新互聯推出廣昌免費做網站回饋大家。
非凡參數:包括三種,過時參數、強調參數和隱藏參數。
隨著Oracle數據庫新版本的發布,相應每次都會增加或者刪除一些參數。下面具體介紹如何查詢當前系統版本中的各種參數情況。
一、過時參數 和 強調參數
Oracle 數據庫中,系統提供了幾個視圖可以查看系統參數的情況。視圖 V$OBSOLETE_PARAMETER 中含有所有的過時 (obsolete) 和強調 (underscored) 參數。
這里首先說明一下什么是 Oracle 的過時 (obsolote) 和強調 (underscored) 參數,過時參數,顧名思義就是在 Oracle 以前的版本中存在,但在新版本中已經淘汰了的參數,已經不再使用;而強調參數,是指那些在新版本中保留了下來,但是除非非凡需要不希望用戶使用的那些參數。在視圖 V$OBSOLETE_PARAMETER 中,包含這些參數的名稱和一個標志字 ISSPECIFIED ,該標志字用來指出這個參數是否在 init.ora 文件中已實際設置。 下面的 SQL 腳本列出了當前系統中所有的過時參數名稱以及它們是否在當前系統中設定。
您好,我在別的論壇也看到了您的提問,很高興為您解答:
查看oracle參數是靜態或者是動態[@more@]
select name,value,ISSYS_MODIFIABLE from v$parameter where ISSYS_MODIFIABLE ='IMMEDIATE' order by name ;--動態參數
select name,value,ISSYS_MODIFIABLE from v$parameter where ISSYS_MODIFIABLE ='FALSE' order by name ; ----靜態參數,需要重啟數據庫參數才有效
select name,value,ISSYS_MODIFIABLE from v$parameter where ISSYS_MODIFIABLE ='DERERRED' order by name ;--延遲,當前會話不生效,后續的會話有效
如果我的回答沒幫助到您,請繼續追問。
查詢優化器參數
1. optimizer_mode
查詢優化器是為了找一個最高效的執行計劃,這個參數用來定義什么是“高效”,比如是更快還是占用資源更少。在oracle10g中只支持兩個參數值:
all_rows:提供全部數據
first_rows(n):n為大于0的自然數,表示盡快傳輸前面n條數據(比如分頁查詢的時候,我第一次只查詢前面10條數據)
oracle10g默認為all_rows,可以再數據庫級別,會話級別,或者執行SQL的時候修改該參數的值。
數據庫級別: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是最好的方式,如果確實是只要查詢小部分數據,可以在sql級別加上提示,看是否能提高性能。
2. db_file_multiblock_read_count
在多塊讀的情況下(比如全表掃描),該參數說明一次最多可讀取的數據塊數目。設置得太小的話,效率低。設置得太高也不見得就好(太高,會受I/O最大吞吐量限制。比如設置成一次最多讀取1024塊,但I/O最大吞吐量只允許32塊,那一次最多也只讀取32塊。而且一次讀取很多塊,開銷會偏高。)應該通過測試,才能知道應該把該參數設置成哪一個值。
測試過程:
1. 創建一張大表,比如上千萬行級別的數據
2. 循環設置該參數的值,查看全表掃描的速度。類似于以下語句:
[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后,走索引掃描的開銷越高,從而使得查詢優化器更加傾向于使用全表掃描。相反,小于100,索引掃描的開銷就越低,從而使得查詢優化器更加傾向于使用索引掃描。從下面索引掃描開銷計算公式可以看出:
io_cost=(blevel+(leaf_blocks+culstering_factor)*selectivity) *optimizer_index_cost_adj/100.
一般是默認值不需要修改,但是如果發現本應該走索引掃描結果走了全表掃描,可以適當調低該值,但是,這個值不應該設置過低,因為,過低的話,如果兩個索引掃描的開銷不同,可能通過該公式一算,開銷就變成一樣的了。總之,不建議修改該參數的值。
PGA參數
1. workarea_size_policy
管理工作區域內存(PGA)的方式,
auto:oracle10g默認方式,委托給內存管理器自動管理(建議不需要修改)
manual:oracle9i默認方式,oracle9i沒有自動管理功能。
2. pga_aggregate_target
如果是自動管理PGA,那么該參數用于指定實例可用的PGA的大小,默認是SGA的20%。即使今后用的內存超過了設置的值,也沒有關系,oracle會自動增大PGA的值。比如該參數設置的是200M,今后某一時刻,需要300M,也是沒問題的,會自動增長。
3. sort_area_size
手動管理PGA,該參數指定分配多大的內存用于排序操作,過小的話,會影響性能,過大的話浪費空間。很難說一個合適的默認值,因為用戶場景變化非常大,實際情況得實際處理。
4. hash_area_size
手動管理PGA,該參數用于指定哈希連接的工作區域大小,同樣建議它的值也很困難。如果過小,那么查詢優化器就會高估哈希連接的開銷,偏向于合并連接。
select *
from x$ksppi a, x$ksppcv b
where a.indx = b.indx
order by ksppinm
你查看的是初始化文件initorcl.ora,initorcl.ora記錄了控制文件的路徑。所以內容是正確的
。
你可以
create
pfile='e:\oracle\aaa.ora'
from
spfile;
然后查看e:\oracle\aaa.ora文件
這里記錄就是你的參數,可以修改
接著通過pfile文件生成spfile文件
create
spfile
from
pfile=='e:\oracle\aaa.ora';
啟動數據庫就可以了
pfile是文本的,可以修改,但修改后數據庫必須重新啟動才生效。
spfile是二進制的,不可以手工修改,可以在線修改參數,不需要重新啟動數據庫。
名稱欄目:如何查詢oracle參數,oracle函數參數類型
文章轉載:http://vcdvsql.cn/article40/dsdgdeo.html
成都網站建設公司_創新互聯,為您提供App開發、App設計、虛擬主機、面包屑導航、做網站、網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯