Snapshot Tables
Repository records are stored in XML. Accessing or manipulating attribute values requires parsing the XML, which can be time-consuming. Snapshot tables are database tables that are used to store attribute values that need to be accessed quickly. There can only be one snapshot table per repository.
The benefit of using snapshot tables is that data can be manipulated quickly. The downside of using snapshot tables is that when an attribute value change, it must be updated in two places. Additionally, the more attributes added to a snapshot table, the longer it takes to access its attributes.
For an attribute to be included in a repository’s snapshot table, it must be defined as relational. This is done at the repository level so that repositories based on the same profile can have different attribute columns in their snapshot tables. When the first attribute in a repository is defined as relational, the repository’s snapshot table is created. Any additional attributes defined as relational will be added to the snapshot table. If the definition for an included attribute is later changed to not relational, the column will be removed from the snapshot table.