Oracle性能調(diào)整,提升block的效率
在Oracle性能調(diào)整的要點(diǎn)中,·如何提升block的效率也是非常重要的,同樣在提升block的效率中我們也要有一些東西是需要我們注意的。以下的文章就是對(duì)在Oracle性能調(diào)整提升block的效率中需要注意的問(wèn)題的詳細(xì)介紹。
1、避免動(dòng)態(tài)分配的缺陷
創(chuàng)建本地管理的表空間;
合理設(shè)置segment的大小;
監(jiān)控將要擴(kuò)展的segment:
- SELECT owner, table_name, blocks, empty_blocks
FROM dba_tables WHERE empty_blocks /
(blocks+empty_blocks) < .1;
2、high water mark
記錄在segment header block中,在segment創(chuàng)建的時(shí)候設(shè)定在segment的起始位置,當(dāng)記錄被插入的時(shí)候以O(shè)racle性能調(diào)整的十大要點(diǎn)中的提升block的增量增加,truncate可以重設(shè)high water mark的位置,但delete不能。
在full table scan中,oracle會(huì)讀取high water mark以下的所有的數(shù)據(jù)塊,所以high water mark以上的塊也許會(huì)浪費(fèi)存儲(chǔ)空間,但不會(huì)降低性能。
可以通過(guò)下列方法收回表中high water mark以上的塊:
- Alter table_name deallocate unused;
對(duì)于high water mark以下的塊:
使用import/export工具:export數(shù)據(jù);drop或truncate表;import數(shù)據(jù)?;蛘呃胊lter table tanle_name move命令去移動(dòng)表的存儲(chǔ)位置(此時(shí)需要重建索引)。
3、表統(tǒng)計(jì)
用analyize命令生成表統(tǒng)計(jì),然后到dba_table查詢相關(guān)信息。
- ANALYZE TABLE ndls.t_wh_shipping_bill COMPUTE STATISTICS;
- SELECT num_rows, blocks, empty_blocks as empty,avg_space,
chain_cnt, avg_row_len FROM dba_tables WHERE owner =
'NDLS' AND table_name='T_WH_SHIPPING_BILL';- Columns Description
- NUM_ROWS Number of rows in the table
- BLOCKS Number of blocks below the table high-water mark
- EMPTY_BLOCKS Number of blocks above the table high-water mark
- AVG_SPACE Average free space in bytes in the blocks
below high-water mark- AVG_ROW_LEN Average row length, including row overhead
- CHAIN_CNT Number of chained or migrated rows in the table
4、block size
通過(guò)下列方法可以最小化block的訪問(wèn)次數(shù):
使用更大的Oracle性能調(diào)整的十大要點(diǎn)中的提升block size;緊密壓縮行;阻止行鏡像。后兩者存在沖突,越多的行被壓縮在一個(gè)block里,越容易產(chǎn)生鏡像。Oracle性能調(diào)整的十大要點(diǎn)中的提升Block size 在數(shù)據(jù)庫(kù)創(chuàng)建的時(shí)候設(shè)定,不能被輕易改變,是讀取數(shù)據(jù)文件時(shí)最小的IO單元,大小范圍是2K-64K,應(yīng)該設(shè)置成OS塊的整數(shù)倍,小于或等于OS IO時(shí)能讀取的存儲(chǔ)區(qū)域。
較小的block size的優(yōu)點(diǎn):極少block競(jìng)爭(zhēng);有利于較小的行和隨機(jī)訪問(wèn)。缺點(diǎn)是存在相當(dāng)高的成本,每個(gè)block的行數(shù)更少,可能需要讀取更多的index塊。Block size的選擇影響系統(tǒng)的性能,在一個(gè)OLTP環(huán)境中,較小的block size更合適,而在DSS環(huán)境中,適宜選擇較大的block size。
【編輯推薦】