oracle 學習筆記---效能優化(2)
5.怎麼樣根據OS程式快速獲得DB程式資訊與正在執行的語句
有些時候,我們在OS上操作,象TOP之後我們得到的OS程式,怎麼快速根據OS資訊獲得DB資訊呢?
我們可以編寫如下指令碼:
$more whoit.sh
#!/bin/sh
sqlplus /nolog 100,cascade=> TRUE);
dbms_stats.gather_table_stats(User,TableName,degree => 4,cascade => true);
這是對命令與工具包的一些總結
<1>、對於分割槽表,建議使用DBMS_STATS,而不是使用Analyze語句。
a) 可以並行進行,對多個使用者,多個Table
b) 可以得到整個分割槽表的資料和單個分割槽的資料。
c) 可以在不同級別上Compute Statistics:單個分割槽,子分割槽,全表,所有分割槽
d) 可以倒出統計資訊
e) 可以使用者自動收集統計資訊
<2>、DBMS_STATS的缺點
a) 不能Validate Structure
b) 不能收集CHAINED ROWS, 不能收集CLUSTER TABLE的資訊,這兩個仍舊需要使用Analyze語句。
c) DBMS_STATS 預設不對索引進行Analyze,因為預設Cascade是False,需要手工指定為True
<3>、對於oracle 9裡面的External Table,Analyze不能使用,只能使用DBMS_STATS來收集資訊。
6.怎麼樣快速重整索引
通過rebuild語句,可以快速重整或移動索引到別的表空間
rebuild有重建整個索引數的功能,可以在不刪除原始索引的情況下改變索引的儲存引數
語法為
alter index index_name rebuild tablespace ts_name
storage(......);
如果要快速重建整個使用者下的索引,可以用如下指令碼,當然,需要根據你自己的情況做相應修改
SQL> set heading off
SQL> set feedback off
SQL> spool d:\index.sql
SQL> SELECT 'alter index ' || index_name || ' rebuild '
||'tablespace INDEXES storage(initial 256K next 256K pctincrease 0);'
FROM all_indexes
WHERE ( tablespace_name != 'INDEXES'
OR next_extent != ( 256 * 1024 )
)
AND wner = USER
SQL>spool off
另外一個合併索引的語句是
alter index index_name coalesce
這個語句僅僅是合併索引中同一級的leaf block,消耗不大,對於有些索引中存在大量空間浪費的情況下,有一些作用。
7.如何使用Hint提示
在select/delete/update後寫/*+ hint */
如 select /*+ index(TABLE_NAME INDEX_NAME) */ col1...
注意/*和+之間不能有空格,如用hint指定使用某個索引
select /*+ index(cbotab) */ col1 from cbotab;
select /*+ index(cbotab cbotab1) */ col1 from cbotab;
select /*+ index(a cbotab1) */ col1 from cbotab a;
其中
TABLE_NAME是必須要寫的,且如果在查詢中使用了表的別名,在hint也要用表的別名來代替表名;
INDEX_NAME可以不必寫,Oracle會根據統計值選一個索引;
如果索引名或表名寫錯了,那這個hint就會被忽略;
8.怎麼樣快速複製表或者是插入資料
快速複製表可以指定Nologging選項
如:Create table t1 nologging
as select * from t2;
快速插入資料可以指定append提示,但是需要注意noarchivelog模式下,預設用了append就是nologging模式的。 在archivelog下,需要把表設定程Nologging模式。
如insert /*+ append */ into t1
select * from t2
注意:如果在9i環境中並設定了FORCE LOGGING,則以上操作是無效的,並不會加快,當然,可以通過如下語句設定為NO FORCE LOGGING。
Alter database no force logging;
是否開啟了FORCE LOGGING,可以用如下語句檢視
SQL> select force_logging from v$database;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/235507/viewspace-670208/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 學習筆記---效能優化學習(1)Oracle筆記優化
- ORACLE學習筆記--效能優化FAQ。Oracle筆記優化
- oracle 學習筆記---效能優化(1)Oracle筆記優化
- oracle 學習筆記---效能優化(3)Oracle筆記優化
- oracle 學習筆記---效能優化(4)Oracle筆記優化
- oracle 學習筆記---效能優化(5)Oracle筆記優化
- oracle 學習筆記---效能優化(6)Oracle筆記優化
- oracle 學習筆記---效能優化(7)Oracle筆記優化
- Oracle效能優化視訊學習筆記-效能優化概念(一)Oracle優化筆記
- Oracle效能優化視訊學習筆記-效能優化概念(二)Oracle優化筆記
- iOS學習筆記-TableView效能優化篇2iOS筆記View優化
- HTTPS 效能優化學習筆記HTTP優化筆記
- 強烈推薦:ORACLE學習筆記--效能優化(ZT)Oracle筆記優化
- ORACLE效能優化筆記Oracle優化筆記
- Oracle效能優化視訊學習筆記-診斷和調優工具Oracle優化筆記
- ORACLE學習筆記--效能最佳化一Oracle筆記
- ORACLE學習筆記--效能最佳化四Oracle筆記
- ORACLE學習筆記--效能最佳化三Oracle筆記
- ORACLE學習筆記--效能最佳化二Oracle筆記
- Oracle效能優化視訊學習筆記-動態調整SGAOracle優化筆記
- Nginx效能優化(學習筆記二十五)Nginx優化筆記
- iOS學習筆記-TableView效能優化篇1iOS筆記View優化
- Oracle學習筆記2Oracle筆記
- 斜率優化學習筆記優化筆記
- mysql優化學習筆記MySql優化筆記
- oracle 學習總結(效能優化)Oracle優化
- oracle statpack優化學習(2)Oracle優化
- Mysql 優化(學習筆記二十)MySql優化筆記
- oracle筆記整理13——效能調優之SQL優化Oracle筆記SQL優化
- Web 效能優化筆記Web優化筆記
- Oracle效能優化順序表名稱來選擇最有效的學習筆記Oracle優化筆記
- Oracle效能優化視訊學習筆記-資料庫配置和I/O問題Oracle優化筆記資料庫
- 強化學習-學習筆記2 | 價值學習強化學習筆記
- MySQL優化學習筆記之索引MySql優化筆記索引
- MySQL優化學習筆記之explainMySql優化筆記AI
- Android卡頓優化學習筆記Android優化筆記
- Linux 效能優化筆記Linux優化筆記
- Android效能優化 筆記Android優化筆記