ITPub博客

首页 > Linux操作系统 > Linux操作系统 > index

index

原创 Linux操作系统 作者:golden_zhou 时间:2011-08-05 16:06:42 0 删除 编辑
索引管理的指導方針:
1 裝載數據后建立索引
建議使用Oracle工具SQL Loader,impdp,imp載入數據后,再建立索引.
2 索引正確的表和列
索引應該建立在where子句經常飲用的表列上.如果在大表上頻繁使用某列或某幾列作為條件執行檢索操作,並且檢索行數低於總行數的15%.那麼應該考慮在這些列上建立索引;爲了提高多表連接的性能,應該在連接列上建立索引;不要在小表上建立索引;如果驚顫需要基於某列或某幾列執行排序操作,那麼通過在這些列上建立索引,可以加快數據排序的速度.
3 限制表的索引個數.
4 刪除不再需要的索引
5 指定索引塊空間使用參數
當為索引塊添加數據時,Oracle會在索引塊上預留部份空間(按照pctfree確定),該預留空間是為將來的insert操作準備的.需要注意的是,在建立索引時不能指定pctused參數.
6 指定索引所在的表空間.建議將表和索引部署到不同的表空間,提升訪問性能.
7 考慮並行建立索引 可以加快索引的建立速度,但是可能會佔用更多的磁盤空間.
8 使用nologging選項建立索引 使用nologging選項可以最小化重做日誌,具有以下優點:節省重做日誌空間,降低索引建立時間,提高索引並行建立的性能.


一般語法:
create index indexname on tablename(columnname) pctfree 30 tablespace tablespacename;

B*-樹索引建立在重複值很少的列上,而位圖索引建立在重複值很多,不同值相對固定的列上.在不同值相對固定的列上,使用位圖索引可以節省大量磁盤空間.
位圖索引語法:
create bitmap index indexname on tablename(columnname);
初始化參數create_bitmap_area_size用於指定建立位圖索引時分配的位圖區尺寸,該數值越大,建立位圖索引的速度越快.
alter system set create_bitmap_area_size =8888888 scope=spfile;(需要重啟數據庫)

對於B*-樹索引來說,使用or謂詞效率很低;使用位圖索引時,因為可以執行位圖合併,所以使用and,or或not謂詞的效率很高.
初始化參數bitmap_merge_area_size用於指定合併位圖時分配的內存區尺寸,默認為1M.該參數值越大,位圖合併速度就越快.
alter system set bitmap_merge_area_size=2048000 scope=spfile;(需要重啟數據庫)

反向索引時索引列值按照相反順序存放的索引.在順序遞增的列上建立普通的B*-樹索引時,如果表的數據量非常龐大,將導致索引數據分佈不均.此時就需要建立反向索引.
另外需要注意的是,普通B*-樹索引既適用於範圍查詢頁適用於等值查詢,而反向索引只適用於等值查詢.
如果在ID列上建立反向索引時,列值7369在索引中為9637,而列值7521在索引中則為1257.
建立反向索引的語句是:
create index indexname on tablename(columnname) reverse;
如果在某個欄位上已經存在B*-樹索引了,那麼可以使用alter index修改成反向索引
alter index indexname rebuild reverse;

如果索引段佔用了過多的空間,而實際所需空間很小的時候,可以使用alter index命令釋放多餘空間
alter index indexname deallocate unused;
重建索引時 如果需要在線重建,
語法為:alte index indexname rebuild online;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25198367/viewspace-704238/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Table
下一篇: constraint
请登录后发表评论 登录
全部评论

注册时间:2011-03-09

  • 博文量
    238
  • 访问量
    301908