In transaction RSDDB it is possible to create a 'snapshot' of the data of a 'Query as Infoprovider'. If the QueryProvider (QPROV) is e.g. used in a DTP, the snapshot can be used by the system (provided the index is up-to-date). If the data in the provider (the query is based on) has changed and the index(snapshot) has not been updated, the system does not use the index but executes the query. See documentation and example below:
SAP Online Documentation
Obsolete in SAP BW/4HANA
See SAP Note 2442781 - BW4SL - VirtualProvider and Query Snapshots. The Transaction RSDDB and query snapshots in analytical indices do not exist anymore.
With SAP BW/4HANA QueryProvider snapshots should be persisted into an aDSO with transformation and DTP for later reuse in Bex queries or other processes.
The following simple example should help to understand the technical details:
- System: BW75 on Hana
- Query: STPE_QUERY_QPROV is based on Infocube
- RSRT - 'Query Properties' for STPE_QUERY_QPROV: 'Query is used as Infoprovider' is active
Query as QueryProvider
Creation Of HANA Index
We now create a Hana Index for this QueryProvider with the help of transcation RSDDB:
You can see that two time stamps are relevant. If the timestamp of the index creation is not older than the time of the last data load to the Infoprovider, the system can use the index.
On the tab 'Index Info' you can find the technical name of the table which is used to store the query result:
In the Hana Studio you can see (schema SAP'SID') that in addition to the table also a column view was created. It also contains the joins with all corresponding SID tables and is used by the system.
The data in the table fits to the query result(see above):
Usage of HANA Index by a Query
You can see that the column view is used! If you load new data into the provider(in our case STPE_DBIF), you need to create a new Index.
Usage of QueryProvider in DTP
The QueryProvider is used in a DTP where the traget is a InfoCube
Transformation is simple:
In the DTP you can use the function Simulate in order to check the extracted data and the statement which was used to read the data:
If you use the following breakpoint you can check the statement:
HANA Index is used:
In the monitor you can check the data which was read from the QueryProvider: