This is RaymondC's Typepad Profile.
Join Typepad and start following RaymondC's activity
Join Now!
Already a member? Sign In
Recent Activity
It is totally ununderstandable. Is this about converting a linq query into a sql query in the client/middle tier? Or is it about a RAM hash table in the database server with the execution plans of already executed queries? So can anyone address MehrdadA's remarks and questions? The hash table with the execution plans is in Oracle a shared resource (all db connection use the same hash table), and because it is shared it is protected with spin locks. When there are many connections those spin locks will become a bottleneck because too many connections want to mutate the hash table and have to wait for a lock to continue. This means that a proper performance benchmark has to be multithreaded benchmark if you want to load test an OLTP application! Has Jeff done a single threaded test or a multi threaded test? So it is better to use parameterized queries in Oracle. Caching sql statements that differ in literals is also possible but you have to set a certain parameter. After setting this parameter, the oracle server will replace all literals with parameters and cache the execution plans. However using parameterized queries is the preffered way in an Oracle based OLTP application. Does Linq2Sql produce queries with parameters or litarals? Do you have to compile those queries if you want parameterized queries? It is also very important to use parameterized queries if you want a good performance when you use Sqlite. Sqlite will become two or three times slower if you don't use parameterized queries, you can't call that a micro optimization. Sqlite doesn't have a setting to chance this behaviour.
Toggle Commented Mar 20, 2010 on Compiled or Bust? at Coding Horror
RaymondC is now following The Typepad Team
Mar 20, 2010