I have noticed that when using SQL Query Analyzer some of my queries will use 100% CPU on my PC and next to nothing on the SQL server, while other Queries require 100% CPU on SQL server and do next to nothing on my PC. Does anyone know what determines this??
Right now I can produce this by executing two very similar T-SQL selects. The one that runs on the server only has one additional join - a very simply join at that. If I can change my SQL to make it run client side in some situations, that would be VERY HELPFUL!
No, MSDE is not involved. If I run a query with one join through SQL Query Analyzer on my PC, and against my production 7.0 sql server, it will use 100% of my PC's processor. If I execute a query with two inner joins in it, still from query analyzer and against the same SQL box, the query uses 100% of the server's processor and does not use the client PC processor.
I guess this would probably be occurring based on some decision made by the SQL optimizer, but I am trying to find out if anyone is familiar enough with such a situation that they know tricks to writing queries so that processing occurs on the client side.
I have some users that require atypical adhoc query support. When possible, I would like to write queries for them in such a way that I can place most of the processor requirements on the client PC.
I don't think it's possible. ALL processing is done on the server. Unless you're talking about firing queries through MS Access that "claims" to be able to do data processing itself. But even then, whatever statement ends up going to the server from the Jet, - gets processed entirely by the SQL engine, the client just reads the results either from the named pipe file, or from TCP/IP packets (virtual file.)