Академический Документы
Профессиональный Документы
Культура Документы
A MultiProvider is a special InfoProvider that combines data from several InfoProviders, providing it
for reporting. The MultiProvider itself does not contain any data. Its data comes exclusively from the
InfoProviders on which it is based. This aspect of MultiProviders makes them very similar to InfoSets;
however, the big difference between InfoSets and MultiProviders is in the technical way the tables
are linked. InfoSets link the underlying providers with database joins, and MultiProviders use a
technically different method called unions.
A MultiProvider can be made up of various combinations of the following InfoProviders:
DataStore Objects
InfoObjects
InfoSets
Simplified design: The MultiProvider concept provides you with advanced analysis options,
without you having to fill new and extremely large InfoCubes with data. You can construct
simpler BasicCubes with smaller tables and with less redundancy
No additional storage
"Logical Partitioning" is possible: For e.g. according to year, region, plan/actual etc.
("partitioning" can also relate to the concept of splitting cubes and DataStore Objects into smaller
ones, perhaps by limited the number of years in each or physical database partitioning of the fact
table. This is covered in more detail in SAP course BW360)
PARALLELIZATION OF SUB-QUERIES:
A query on a MultiProvider is internally spit into sub-queries. There is one sub-query for each
InfoProvider included in the MultiProvider. The resulting sub-queries are processed in parallel by
default. This means that the resulting sub-queries (normally one for each sub-InfoProvider) are
deposited in parallel. The results of these sub-queries are collected at one synchronization point and
consolidated to the overall result
SEQUENTIAL PROCESSING:
For sequential processing, the sub-queries are deposited one by one. In this case, an interim result is
forwarded immediately to the BW OLAP engine. This has the advantage of avoiding an overall result
that may be too large in the main memory of the application server. However, there may be a loss
in performance as a result.
IN THE FOLLOWING CASES, THE SYSTEM CHOOSES SEQUENTIAL (NOT PARALLEL) PROCESSING:
The RSADMIN table contains an entry with the value NOPARALLEL (in the VALUE column).
The MultiProvider query was started from the query monitor (transaction RSRT) using
different debug options (displaying SQL queries, displaying the execution plans among
others).
At the time of execution, there are not sufficient free dialog processes; these are necessary
for parallel processing.
The result of the MultiProvider query should be saved in one file or one table.
to avoid the loss of performance caused by the termination. However, this has the result that all
queries for this MultiProvider are processed sequentially, even those that could be successfully
processed in parallel. You can avoid this disadvantage by using a workaround: Create a copy of the
MultiProvider and run the queries that terminate during parallel processing and deactivate parallel
processing for this MultiProvider copy. The original MultiProvider can keep running the other queries
that can be successfully processed in parallel.
Model the MultiProvider in such a way that the characteristics that you want to use in
reporting are available in all the InfoProviders involved.
Ensure that only relevant data is read when you execute the query by:
Including the 0INFOPROV characteristic when you design the query on the MultiProvider to
enable you to set a filter for one of the InfoProviders.
Use MultiProviders to define a reporting layer. In this way, it is easier to expand reporting
scenarios. If an InfoProvider is subsequently added to a MultiProvider, the technical name of
the previously defined query remains the same.
Do not use more than one InfoCube with non-cumulative key figures in a MultiProvider,
otherwise the numbers in the query may be incorrect.
Do not make any calculations before the aggregation as this may cause incorrect query
results.
Do not combine any InfoProviders that have very heterogeneous data models in one
MultiProvider. Instead, in such a case, use the report-report interface between queries that
are defined on the InfoProviders.
Do not use parts of compound characteristics in InfoProviders. For more information, refer to
SAP Note 702542 on SAP Service Marketplace. Performance of MultiProviders
Use no more than 10 InfoProviders to define a MultiProvider. If more InfoProviders are read
at the same time using a query, the results calculation takes too long.
If a MultiProvider contains an InfoCube with non-cumulative key figures, all sub-queries are
processed sequentially.
The tools of the OLAP for performance optimization (such as caching and aggregation) can
be used for a MultiProvider only if all InfoProviders involved support these tools.
If you want to display only the list of slow-moving items without the products that sell well,
proceed as follows:
1. In the Query Designer, define a condition for the Sales key figure in the structure (you can also
assign this to InfoObject 0MATERIAL, but this step is optional) to evaluate sales = 0.
2. Save the query and execute it.
The system displays all materials that have not sold
If you want to display a list of products that do not sell well, proceed as follows:
1. In the Query Designer, define a condition for the Sales key figure in the structure (you can also
assign this to InfoObject 0MATERIAL, but this step is optional). Specify a value that you want to use
as the upper limit for a bad sale.
2. Save the query and execute it.
The system displays all materials that have not sold or have sold badly.