浅谈SAP索引
索引是對數據庫表中一列或多列的值進行排序的一種結構,使用索引可快速訪問數據庫表中的特定信息;建立索引的目的是加快對表中記錄的查找或排序。索引是把雙刃劍,有利也有弊,在實際的項目中,是否使用索引,主要還是看利大于弊還是弊大于利.
索引的優缺點,如下:
優點:
顯著提升數據檢索速度;
加速表與表之間的連接;
充分保證數據的唯一性;(注:使用唯一索引)
降低分組和排序的時間;
缺點:
維護索引費時;
占用大量空間;
數據更新變慢;
大多數情況下,使用索引主要是沖著查詢效率來的,這也是使用索引最直接最主要的好處;
SAP?ECC是OLTP系統,每分每秒都有數據更新,非常忙碌,針對一些大表創建索引,開始可能會嘗到些甜頭,當對表中的數據進行增刪改的時候,索引也被動態維護,這樣就降低了數據的更新速度,同時又增加了額外的存儲空間;如果項目中創建了一些索引,結果統計分析發現很少用到,針對這部分索引,應該對其刪除;索引雖然能夠加速查詢,但實際項目中,也有可能使用索引反而使得查詢更慢,這就需要BASIS檢查索引是否丟失;在ECC中能不用索引,盡量不要使用,如果有BW系統,應考慮把ECC中慢的報表搬到BW中實現.
SAP BW是OLAP系統,所以模型中大量使用了索引,創建CUBE的時候,系統自動會針對CUBE創建索引,但是索引會使數據的更新變慢,為了提升數據的更新速度,SAP給出了標準的處理鏈,在更新之前,先將索引刪除,待數據更新之后,在重新創建索引,這樣就縮短了抽數時間,又提升了報表的查詢效率.
SAP?HANA是內存數據庫,簡化了BW系統,消除了默認索引,大大地節省了內存空間,同事HANA也提供手工創建索引功能,來加速查詢.
圖例注解:
1),SAP ECC系統.
Oracle的索引設計
索引占用大量空間,索引建得越多,占的表空間就越大,SAP IDE系統索引size截圖(Per.Index size: 25%):
管理索引
診斷和分析索引是否丟失(索引也可能會丟失,從而會影響報表速度)
2),SAP BW系統.
簡單的事務數據加載過程:
刪除索引 -- > 撈數到CUBE -- > 刪除索引
3),SAP HANA系統.
手工創建索引:
索引的優缺點,如下:
優點:
顯著提升數據檢索速度;
加速表與表之間的連接;
充分保證數據的唯一性;(注:使用唯一索引)
降低分組和排序的時間;
缺點:
維護索引費時;
占用大量空間;
數據更新變慢;
大多數情況下,使用索引主要是沖著查詢效率來的,這也是使用索引最直接最主要的好處;
SAP?ECC是OLTP系統,每分每秒都有數據更新,非常忙碌,針對一些大表創建索引,開始可能會嘗到些甜頭,當對表中的數據進行增刪改的時候,索引也被動態維護,這樣就降低了數據的更新速度,同時又增加了額外的存儲空間;如果項目中創建了一些索引,結果統計分析發現很少用到,針對這部分索引,應該對其刪除;索引雖然能夠加速查詢,但實際項目中,也有可能使用索引反而使得查詢更慢,這就需要BASIS檢查索引是否丟失;在ECC中能不用索引,盡量不要使用,如果有BW系統,應考慮把ECC中慢的報表搬到BW中實現.
SAP BW是OLAP系統,所以模型中大量使用了索引,創建CUBE的時候,系統自動會針對CUBE創建索引,但是索引會使數據的更新變慢,為了提升數據的更新速度,SAP給出了標準的處理鏈,在更新之前,先將索引刪除,待數據更新之后,在重新創建索引,這樣就縮短了抽數時間,又提升了報表的查詢效率.
SAP?HANA是內存數據庫,簡化了BW系統,消除了默認索引,大大地節省了內存空間,同事HANA也提供手工創建索引功能,來加速查詢.
圖例注解:
1),SAP ECC系統.
Oracle的索引設計
索引占用大量空間,索引建得越多,占的表空間就越大,SAP IDE系統索引size截圖(Per.Index size: 25%):
管理索引
診斷和分析索引是否丟失(索引也可能會丟失,從而會影響報表速度)
2),SAP BW系統.
簡單的事務數據加載過程:
刪除索引 -- > 撈數到CUBE -- > 刪除索引
3),SAP HANA系統.
手工創建索引:
總結
- 上一篇: ABAP中的系统变量SY-INDEX与S
- 下一篇: ABAP 查询性能提高之我见