oracle效能調整的九大要點:七應用最佳化

來源:互聯網
上載者:User
1、概念
    為了提高效能,可以使用下列資料存取方法:
    A、Clusters
    B、Indexes
    -B-tree(normal or reverse key)
    -bitmap
    -function-based
    C、Index-organized tables
    D、Materialized views

    索引的層次越多,效率越低,如果索引中含有許多已刪除的行,這個索引也會變得低效,如果索引資料的15%已經被刪除,應該考慮重建索引。

    2、應用問題
    A、使用可聲明的約束而不是通過代碼限制
    B、代碼共用
    C、使用綁定變數而不是文字來最佳化共用sql
    D、調整cursor_sharing的值(EXACT/SIMILAR/FORCE)

    八、提升block的效率

    1、避免動態分配的缺陷
    建立本地管理的資料表空間;
    合理設定segment的大小;
    監控將要擴充的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建立的時候設定在segment的起始位置,當記錄被插入的時候以5個block的增量增加,truncate可以重設high water mark的位置,但delete不能。
    在full table scan中,oracle會讀取high water mark以下的所有的資料區塊,所以high water mark以上的塊也許會浪費儲存空間,但不會降低效能。

    可以通過下列方法收回表中high water mark以上的塊:
    Alter table_name deallocate unused;
    對於high water mark以下的塊:
    使用import/export工具:export資料;drop或truncate表;import資料。或者利用alter table tanle_name move命令去移動表的儲存位置(此時需要重建索引)。

    3、表統計
    用analyize命令產生表統計,然後到dba_table查詢相關資訊。
    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
    通過下列方法可以最小化block的訪問次數:
    使用更大的block size;緊密壓縮行;阻止行鏡像。後兩者存在衝突,越多的行被壓縮在一個block裡,越容易產生鏡像。Block size 在資料庫建立的時候設定,不能被輕易改變,是讀取資料檔案時最小的IO單元,大小範圍是2K-64K,應該設定成OS塊的整數倍,小於或等於OS IO時能讀取的儲存地區。

    較小的block size的優點:極少block競爭;有利於較小的行和隨機訪問。缺點是存在相當高的成本,每個block的行數更少,可能需要讀取更多的index塊。Block size的選擇影響系統的效能,在一個OLTP環境中,較小的block size更合適,而在DSS環境中,適宜選擇較大的block size。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.