The AVM passes the ProDataSet by value, by default. This is similar to how temp-tables are passed as parameters. That is, the AVM copies the ProDataSet definition and all the data in its temp-tables from one procedure to the other. This is true whether the call is to another procedure in the same OpenEdge session, or in a separate OpenEdge session on the other side of an application server connection. For a call to a procedure in the same OpenEdge session, you may avoid this overhead by passing it BY-REFERENCE instead. See Pass a ProDataSet with BY-REFERENCE or BIND for more information.