Databases Reference
In-Depth Information
Querying Remote Partitions and Linked Measure Groups
Two features in Analysis Services enable you to store data on another machine and retrieve
it during query execution: remote partitions and linked dimensions and measure groups.
Querying the Remote Partitions
When the storage engine subsystem gets an internal request for data, it analyzes the parti-
tions that contain data. The partition slice of remote partitions is stored on the master
server; therefore, Analysis Services can detect whether a remote partition contains
requested data without communicating with the remote server.
Then Analysis Services creates a MapQuery object and generates an internal XML/A request
inside of which it serializes the content of the MapQuery object. When the remote server
receives such a request, it deserializes the MapQuery object and looks up data in the cache.
If the cache doesn't contain the requested data, the remote server executes the request
following the algorithm used by a master server for local partitions. The remote server
creates a Datacache object that contains the requested data from all the remote partitions
located on that server. It serializes content of the Datacache object into an XML/A
response and sends it back to the master server.
When the master server receives the response from the remote server, it retrieves the
Datacache object and passes it to the MapQuery object to aggregate with the Datacache
objects from local partitions and partitions from other remote servers.
NOTE
If your measure group has a DISTINCT_COUNT measure, all the partitions in the same
distinct value range are scanned simultaneously. If possible, avoid situations in which
partitions from the same distinct value range group are located on different server,
because this will cause multiple round trips between the master and remote machines.
The query execution will be very efficient if you place partitions from a single distinct
value range group on the same machine.
Querying Linked Measure Groups
When the storage engine subsystem receives a request for data stored in a linked measure
group, it generates an internal XML/A request inside of which it serializes the content of
the request subcube. When the publisher server receives the request, it deserializes the
request subcube and looks up data in the cache registry. If the cache doesn't contain the
requested data, the publisher server executes the request following the algorithm we
discussed earlier. The publisher server creates a Datacache object that contains requested
data from all the partitions in this measure group and serializes it into an XML/A response
to the subscriber server.
NOTE
The resulting Datacache object is cached in the cache registry of both the publisher
and subscriber servers.
 
Search WWH ::




Custom Search