Databases Reference
In-Depth Information
name of the attribute member. The member name is used to build the hash index, similar
to how the hash index is built for keys. The property store itself contains little or no data
because most of the data is stored in the string store.
The schema of the property store is similar to that of the key store, in which <attribute
ID> represents the identifier of the attribute:
.
A main store file named <attribute ID>.astore
.
A hash store file named <attribute ID>.ahstore
.
A string store file named <attribute ID>.asstore
The maximum size of the string store cannot exceed 8GB; therefore, the size of all strings
should not exceed 8GB. You should try to avoid using long strings as member names
because doing so leads to spending a large amount of resources and slowing name resolu-
tion during the query. The size of the Caption doesn't greatly affect the performance of
the system, but storing it and sending it to the client still takes resources.
When Analysis Services needs to find a member by its name, it uses the hash table of
member names. Unlike keys, members can have nonunique names; therefore, the hash
table can contain duplicate names. When looking for a member with a certain name,
Analysis Services usually takes the first member with that name from the hash table, but
which member it picks is not predictable—you should try to have unique names. The key
store and the property store are separated from each other to increase productivity of
searches by key or by name; the search will be done only on the part of the information
that is currently needed. For example, when Analysis Services searches by keys, it doesn't
need the property store and can swap it out of memory.
Deleted Member Store
Analysis Services never deletes a member—it marks the member as deleted, but it doesn't
physically remove that member from the key store. To store information about deleted
attribute members, each attribute supports a special deleted member store. The deleted
member store is a bit store because it uses only 1 bit for each member to mark it as
deleted. A file with the .hstore extension contains the data for this store.
When a member is deleted, all the information about it, except its keys, is deleted from
the dimension—but the record in all the stores for a member with this DataID is
preserved. The key and DataID for the deleted member are still reserved. All the data
values associated with the deleted member remain in the cube, but now the value of that
member is added to the Unknown member of the attribute related to the current one. For
example, if you delete member Store 12 in the Store attribute, its value is added to the
value of the Unknown member for the City attribute, which is related to the Store
attribute. If an attribute has more than one related attribute, the value of the deleted
member is added to the Unknown members of all related attributes. For example, the value
of Store 12 is also added to the Unknown member of the Store Manager attribute.
When a new member with the same key as the deleted member is added, the deleted
member is recovered, the flag that marked it as deleted is turned off, and the data for this
member is recovered. Even when the member has a new name, or perhaps a different
Search WWH ::




Custom Search