There are a number of things you can do to optimize your workflow to run more efficiently.
Remove unnecessary fields
Use the Select tool to remove fields you are not using as early as possible in a stream.
Limit amount of data
Use the Sample tool on large record sets to limit the number of records passing through the workflow.
Eliminate Browse tools
Eliminate the use of Browse tools to reduce the amount of memory used to display the data.
Browse to a data file from a Spatial tool
When using a Spatial Match tool, instead of connecting an Input Data tool to the Universe anchor, select the tool and browse to the universe file and select the spatial object.
Balance file size in the Distance tool
The spatial object selected in the Destination (right side) should be the larger file (more records), while the object selected in the Source (left side) should be the smaller file (less records).
Manage Targets and Inputs in the Spatial Match tool
When working with Polygons, the larger (physically) polygons should be on the Targets side when there are polygons on both sides.
When working with Polygons and Points, configure with the Polygon on the Targets side and the Points on the Universe side.
Ensure local temporary directory space
Make sure the specified temporary directory is local and has plenty of space. This location can be modified from the User Settings tab.