After creating a SAP BW Accelerator index, the data is available on the BW accelerator server's file server. The data is loaded to the main memory when you execute a query for the first time or start a special load program. The data remains in the main memory until it is replaced or is removed from the main memory when a special delete program is started. It may be necessary to execute a special delete program, for example if there is not enough memory on the BW accelerator server for all BW accelerator indexes, and you need to load data from certain InfoCubes, but not from others.
Table data is stored in the main memory in columns. Vertically segmenting data tables in this way is more efficient than saving row-based data in conventional relational database systems. In a conventional database, the system has to search all the data in the table if a predefined aggregate is not available for a query. BW Accelerator engine specifically accesses relevant data columns only. It sorts the columns individually and puts the required entry at the beginning. This improves performance considerably because the data flows are smaller. It also significantly reduces the input and output load and the main memory consumption.
Data is available on the BW accelerator server in a read-optimized format. BW Accelerator Engine uses dictionary-based compression. Integers are used to represent text or values in table cells. Using integers allows efficient numeric coding and intelligent caching strategies.
If a column has a thousand rows and some of the cells contain long texts for example, efficiency is significantly increased by using a ten-bit binary number to identify the texts during processing and a dictionary to call them again afterwards. The datasets that have to be transferred and temporarily stored during the different processing steps are reduced on average by a factor of ten.
This means that you can perform the entire query processing in the main memory and reduce network traffic between separate landscapes.
Divided (Split) Indexes
BW Accelerator Engine can process huge datasets without exceeding the limits of the installed memory architecture. You can split large tables (fact tables and large X and Y tables) horizontally, save them on different servers and process them quickly in parallel. The maximum table size before the system splits the index depends on the BW accelerator server's hardware. Data is distributed to the subindexes in a round-robin procedure. Write, optimize and read accesses are parallelized on the BW accelerator server.
This scalability allows users to make use of sophisticated adaptive computing infrastructures such as blade servers and grid computing.
The following index types are available:
Normal: In standard cases, the system creates BW accelerator indexes on the BW accelerator server for all the tables in the InfoCube star schema.
Flat: An exception arises if the InfoCube star schema has been deconstructed, for example because one (or more) dimension tables have become very large (> 20% of the InfoCube). Instead of creating dimension tables, the system then de-normalizes the appropriate part of the InfoCube star schema (fact and dimension tables).
This value is set for the entire system using global parameter QUERY_ERROR_ALERT. To do this, choose on the SAP NetWeaver BW Accelerator Monitor screen (transaction RSDDBIAMON2). The Maintain BWA Index Parameters screen appears. More information: Tab: Memory Settings.
When indexing individual InfoCubes on the BW Accelerator server, you can set the Create BWA Index Flat/Not Flat parameter. More information: Tab: Memory Management.