Hybrid data storage model (pzPVStream BLOB)

Most columns in the database schema correspond to scalar properties of property mode Single Value. The column name is the same as the property name. These columns are known as exposed columns.

For example, the pzInsKey column is the primary key of every table, which corresponds to the value of the @baseclass.pzInsKey property, present in every instance of every class. Similarly, the column named pyStatusWork in the pc_work table corresponds to the property Work-.pyStatusWork.

Properties of many Pega Platform property types, including Text, Identifier, Password, and Decimal, correspond to string (VARCHAR) database data types. Properties of mode Integer, and Double can be stored as NUMBER database data types. Techniques for storing DateTime property values differ by database vendor.

Values of properties with a mode other than Single Value (such as mode Page or Page List ) are stored in a special column named pzPVStream. This column is known as the Storage Stream and has a BLOB (Binary Large Object) data type.

The size of the Storage Stream values can have a significant effect on memory demand, network traffic, and overall performance. To help detect and address issues related to the BLOB size, multiple types of alerts (PEGA0004, PEGA0025, PEGA0039, and PEGA0040) monitor database activity and report exceptional conditions involving Storage Stream values.

You can set up data compression for the BLOB column by using the DeflateStreams setting in the prconfig.xml file or Dynamic System Settings. When enabled, compression and decompression occur on the Pega Platform server using the java.util.ZIP class. See the PDN article How to compress BLOB values in the PegaRULES database.

Note: If you have a table that does not need a BLOB column, you can remove it to improve performance. See the PDN article How to remove an unneeded BLOB column.