Databases Reference
In-Depth Information
NOTE
You can configure Analysis Services to issue a single SQL query to relational database
to process all dimension attributes. This mode is useful if your dimension has many
attributes, and the same dimensional table is the basis for most of them. To enable
this mode, you can use the EnableTableGrouping server configuration property.
However, we recommend that you experiment before using this property in production:
On large dimensions, setting this property inappropriately can cause degradation in
performance.
Process Data Job After Analysis Services fills the first read buffer, it passes the buffer to
the Process Data thread. The main task of the processing thread is to convert data from
the relational database format to the internal Analysis Services format. During this phase,
Analysis Services creates and populates the main attribute data structures, such as the key
store, properties store, and so on. For more information about data structures, see Chapter
20, “The Physical Data Model.”
During the first stage of processing, the Process Data thread reads records from the read
buffer and, for each record, retrieves the value from the columns that contain the key or
keys of the attribute. The Process Data thread uses a hash table of the key store to detect
whether a key already exists. If the key doesn't exist, it is added to the key store. If the key
already exists, Analysis Services can either ignore the record with the duplicate key or
report an error and stop attribute processing. By default, Analysis Services ignores dupli-
cate keys during attribute processing. We recommend changing the configuration settings
of the processing command so that Analysis Services reports the error. Ignoring duplicate
keys simply hides problems with the relational database.
During the second stage, the Process Data thread creates data structures for storing
member names, translations, BLOBs (binary large objects), and custom member formulas.
During the third stage, the Process Data thread looks up members related to the current
member in the related attributes. This lookup is required to build the Related Attribute
Map data structure. To look up related members, the Process Data thread has to obtain the
keys of all related attributes. The Process Data thread reads the fields that contain the keys
of related attributes from the buffer record and tries to match them in the key store hash
table of the related attribute. To perform related attribute key matching, Analysis Services
has to load the key hash tables for all related attributes in memory. Having many attrib-
utes related to a single attribute might strain memory resources. You should look at the
design of your dimensions and make sure to build efficient attribute relationships that
don't resolve in many attributes related to a single attribute.
After the Process Data job finds the keys for all related attributes, it then reads and stores
their DataID s in the process buffer. If Analysis Services cannot find a related attribute key,
it must decide whether to proceed and ignore the missing key, or report the missing key as
an error and stop processing. By default, Analysis Services ignores the fact that it didn't
find a related attribute key and proceeds with processing. We recommend that you change
the processing command options to report such errors (we discuss processing options later
in this chapter) so that you can validate the correctness of your data. Ignoring errors
Search WWH ::




Custom Search