Property optimization

The values of all aggregate properties and all Single Value properties are stored in a BLOB column (the Storage Stream), usually in a compressed form. These properties cannot be retrieved for reports and can slow retrieval and processing in other operations. You can improve reporting and searching performance by optimizing, that is exposing, Single Value properties as distinct columns; however, doing so might slow insert and update operations, depending on your hardware and software.

You can expose a property even after the property has values. You then need to copy values from the BLOB into the new column by using one of the Column Populator tools.

Optimization tools

You can optimize properties in various ways, depending on whether you have a production environment or a development environment. Some tools expose but do not populate the new property with values; other tools expose and populate in one step.

Property Optimization tool

In development systems where you have only a few Single Value, top-level properties to expose, use the Property Optimization tool in Dev Studio. This tool exposes and populates newly exposed columns as a single step. For more information, see Optimizing properties from the user interface.

Modify Schema wizard

To expose properties in a production system, use the Modify Schema wizard in Dev Studio, which exposes the property without immediately populating it with values. After exposing the property, populate it using one of the Column Populator tools.

You can also view schema, increase the size of columns, and generate an SQL text file that defines a table that can be used later to modify the schema. Use this wizard to review the current database table structure, understand class-to-database table mapping, and provide additional context. For more information, see Schema modification using the Modify Schema wizard.

Column Populator tool

After exposing a property with the Modify Schema wizard, populate the new database column using one of the command-line Column Populator tools.

  • Service-enabled Column Populator Utility – This command-line utility populates columns by using a REST service to communicate with the system. It performs the locking that is needed to ensure data integrity in an active system. A running instance of Pega Platform is required. For more information, see Populating properties by submitting a request to an active instance.
  • Database Column Populator Utility – This command-line utility populates columns by communicating directly with the database. Use this utility when all instances that share your database have been stopped. For more information, see Populating properties by using a direct connection to the database.

Planned and actual optimization

The Column Inclusion field on the Property form indicates the opinion of the developer who created or updated the property as to whether the property might need to be exposed. This value does not affect any runtime behavior of the property. For more information, see Property form — Completing the Advanced tab.

Exposed properties that have been fully implemented are shown on the Database Class Mappings tab. For more information, see Database Class Mappings tab and Planning for property optimization.