A cursor requires temporary resources to hold its data. These resources can be in the form of RAM, a paging file such as the virtual memory feature of Microsoft Windows, or temporary files or databases. If these resources are stored on the client machine, the cursor is called a client-side cursor. With this type of cursor, the server sends the data that the cursor represents across the network to the client, along with the data required by the cursor itself. The client manages the temporary resources needed by the cursor.
Some server database engines, such as Microsoft SQL Server version 6.0, support an additional type of cursor known as server-side cursors. With this cursor type, the server manages the result set with resources located on the server itself. The server returns only the requested data to the client over the network. Using this type of cursor can result in significant performance improvements compared to client-side cursors, especially in situations where excessive network traffic or inadequate network bandwidth is a problem. However, because RAM and disk space resources are needed at the server, you must plan accordingly and ensure that your server hardware is capable of managing all cursors requested by clients.