Many clients need to get schema information several times during the course of a session with the server. It is strongly recommended that clients cache the schema information from all schema rowsets. However, do not cache the MEMBERS rowset. All other schema rowsets are typically orders of magnitude smaller than the MEMBERS rowset.) Although caching of schema rowset information results in a slightly larger working set for the application, the gain in performance far outweighs the increase in working set.
Applications should not attempt to cache the MEMBERS schema rowset. Typically, this rowset has hundreds of thousands of rows. There is seldom any need for all the members. It is more common to need a very restricted subset of the members under certain conditions — specifically, when rendering an axis of a dataset. However, the axis rowsets are designed to contain most of the information that an application might need; that is, most of the columns in an axis rowset are the same as the columns in the MEMBERS rowset. If the application needs additional information — for example, additional columns from the MEMBERS rowset are required for those members on the axis — the application can use DIMENSION PROPERTIES clause in the MDX statement that created the dataset. This puts these additional columns on the axis rowset.
For more information on axis rowsets, see “Axis Rowsets” in this chapter. For more information on the DIMENSION PROPERTIES clause, see “Retrieving Member Properties” in this chapter.