Performance Considerations in the Catalog System

When you are designing your catalog system, there are several factors to consider that affect the performance of the system. This topic describes some of these considerations.

Number of Catalogs

The relationship between the number of catalogs and performance is very complex. However, a basic guideline is that fewer catalogs are better, depending on hardware and your specific scenarios. This guideline is valid up to around 500,000 products per catalog. Beyond that, more advanced configurations may be needed, based on your performance requirements.

Number of Products in a Category

The catalog system does not support more than 10,000 products in a single category. If you must add more than 10,000 products, you should create multiple categories or sub-categories.

Indexing Custom Properties

If you need to search on a custom property, you should add an SQL index to that property. You cannot set an index on a custom property (column) by using the Commerce Server Core Systems. Instead, you must perform this task manually. Take the following guidelines into consideration:

  • If the custom property column has to be removed, you must manually remove the index before the property is removed. You cannot remove it by using the user interface.

  • If you need to modify the property schema, such as reducing the size of the property, you must first remove the index, and then modify the property. You must then rebuild, if necessary, and add the index back.

Materialized Catalogs

A materialized catalog is a snapshot of a catalog. When you materialize a virtual catalog, the virtual catalog data is stored in tables. Materialization improves the run-time performance of the virtual catalog. A materialized catalog has the performance of a base catalog for all search and browse operations.

For more information about materialized catalogs, see What Are the Virtual Catalog Concepts?

Caching

Caching considerations are described in the topic Caching in the Catalog System.

See Also

Other Resources

Developing with the Core Catalog System

An Exception of Type System.ServiceModel.CommunicationException Occurred