Performance Considerations in the Orders System

The configuration of your site affects the performance of the orders system. This topic presents information about how to improve performance of the orders system in your Commerce Server Core Systems application.

Suggest How Business Users Search Orders Data

The Customer and Orders Manager application and your Commerce Server Core Systems Web application access the same database. Therefore, the way that business users use the Customer and Orders Manager can affect the performance of the Web site.

All the properties of a PurchaseOrder object and its nested objects that you map to the database are searchable, except weakly typed indexer properties. However, not all these properties are indexed. If multiple people use the Customer and Orders Manager at the same time, and if they search for data that is not indexed, the performance of your Commerce Server Core Systems Web site might decrease. You should inform the business users which searches have high impact on system performance, and encourage them to use lower-impact searches when it is possible.

Enable Caching

Commerce Server Core Systems can cache catalog, orders, marketing, and profile information. To improve the performance of the orders system, enable caching by configuring the caches element in your application's Web.config file and in the Web.config file for the orders Web service.

For more information about caching, see Understanding Core Systems Caching and caches Element.

Limit the Number of Results a Search Returns

You can configure how many records a search operation returns by using the searchResultsLimit attribute of the ordersWebService element in the Web.config file. Returning fewer results improves the performance of database searches.

For more information about the SearchResultsLimit attribute, see ordersWebService Element.

Map Fewer Properties to the Database

It is faster to serialize data and store it in the database as part of a binary large object (BLOB) than it is to map data to specific database columns. You can improve the performance of Commerce Server Core Systems by mapping fewer properties of a purchase order to the database. If you will not search the database on a property, do not map the property to the database.

For more information about how to map the properties of a purchase order to the database, see Mapping Purchase Orders to the Database.

Map Fewer Properties to Pipeline Dictionaries

When you run a pipeline on a basket, Commerce Server Core Systems copies certain properties of the basket to entries in a dictionary. You specify which properties Commerce Server Core Systems copies in the OrderPipelineMappings.xml file. You can improve the performance of your Commerce Server Core Systems application by mapping only the properties that the pipeline components read or write.

For more information about how to map the properties of a basket to a pipeline dictionary, see How to Modify the OrderPipelineMappings.xml File. For more information about which properties each pipeline component reads and writes, see the topic about the pipeline component in the Pipeline Component Reference section.

Minimize the Number of Pipelines

Running a pipeline involves a significant amount of overhead. Do not create a separate pipeline for a pipeline component if you could add the pipeline component to an existing pipeline instead.

See Also

Other Resources

Monitoring Performance Counters

Developing with the Orders System