In a multi-system partioned database, the database is split between the multiple systems and a facility is provided to support the shipping of function requests among the systems. Two alternate levels of function requests, called IO request shipping and database call shipping, are analyzed and compared. The analysis is based on traces from large mainframe systems running IBM's IMS database management systems. A methodology is presented for deriving optimal database partitions and transaction assignment so as to minimize the average system response time. The methodology decomposes the optimization problem into an integer linear programming problem for partitioning the databases and a simplex reflection method for probabilistic transaction routing. The issues addressed include the effectiveness of routing and the limits of partitioning. The IO request shipping approach is preferable when high communications bandwidth is available as in a machine room. Furthermore, IO request shipping can take advantage of probabilistic routing to enhance its performance, while database call shipping gains little from probabilistic routing as compared to fixed routing. However, IO request shipping is more susceptible to lock contention which may become a problem for an environment with a high transaction rate. For systems with lower communications bandwidth spread beyond the machine room, the database call shipping approach is the method of choice. © 1989.