We use a 4GL language with SQL 2000 SP3/ODBC. As an example we have a report program which uses a FOREACH cursor to process records and output them to a report. If one instance of this report is running it takes [say] 1 minute to run. If I set off 2 at the same time, I would expect them to take roughly twice as long, but they actually run something like 5-10 times slower. We are using READ UNCOMMITTED and there is no blocking, and this is on a development server with no other apps running. I've posted this on another board, but just got some lectures about some fairly obvious stuff which I've already covered, as well as being told not to use cursors (which isn't an option with our 4GL system). On a purely SQL level, does anyone know why two cursors fetching the same data at the same time might be this much slower?