471,316 Members | 1,449 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,316 software developers and data experts.

LINQ To SQL

Why is it so slow? I really like
that queries but using DataReader
i have done my task's much more faster
than ising LINQ...
Jul 25 '08 #1
4 1866
Define slow? It depends on what your queries are, and whether you have
caused it to do multiple round-trips (for sub-data) rather than
loading data early, and whether you've filtered things at the right
point [in the composable query, rather than downstream]. In general,
the (fixed) network IO vastly outweighs any client implementation
details like LINQ, but you might need to be more specific to get a
sensible answer...

Marc
Jul 25 '08 #2
LINQ does 10-15 other steps before generating the actual query, which makes
LINQ slow. But it might be good if you have a multi processor system, because
LINQ is degined to take multi processor to make the things fast.

regards,
Pankaj
http:\\a2zdotnet.com

"Jacek Jurkowski" wrote:
Why is it so slow? I really like
that queries but using DataReader
i have done my task's much more faster
than ising LINQ...
Jul 25 '08 #3
LINQ does 10-15 other steps before generating the actual query, which makes
LINQ slow.
Care to be more specific? What steps are you referring to? Note that
you can use a few tricks to speed things up; for example (I haven't
used it myself) compiled queries:
http://msdn.microsoft.com/en-us/libr...qtosql_topic14

You might also wish to disable object tracking if you don't need it,
and write your query (or use load options) such that any sub-data you
need is retrieved in the first query rather than lazily. Again, you
really need to give some indication of what you are seeing as "slow"
to disuss them sensibly. You say there are 10-15 other steps: which of
them, exactly, is offending you?
But it might be good if you have a multi processor system, because
LINQ is degined to take multi processor to make the things fast.
I'm not aware of LINQ-to-SQL doing anything so exotic; you may be
thinking of "Parallel Extensions"

Marc
Jul 25 '08 #4
Jacek Jurkowski wrote:
Why is it so slow? I really like
that queries but using DataReader
i have done my task's much more faster
than ising LINQ...
Read this series and you might start thinking otherwise:
http://blogs.msdn.com/ricom/archive/...ce-part-1.aspx

There's a cost, obviously, and you will never get faster than using a raw
DataReader, but the performance overhead can be brought down considerably.
Did you use CompiledQuery and time multiple executions?

If the problem is not in the reflection and code generation of LINQ, you may
want to have a look at what SQL output you're actually generating. It may
not be optimal for a variety of reasons. LINQ abstracts considerably over
queries so you don't have to, but it's not perfect, and it can especially
break down if you mix in other constructs with LINQ to Objects. You can use
a tool like LINQPad (http://www.linqpad.net/) to see what your LINQ queries
are actually compiling to.

Finally, the ease of use of LINQ mean that it'll help you speed up
development even if you don't use LINQ to generate the actual queries. LINQ
works just as well with stored procedures, so if you have a particularly
tough query that needs careful optimization, you can stick it in a sproc and
use a few lines of declarative code (or a drag and drop from the Server
Explorer) to get a strongly-typed method for it.

--
J.
Jul 25 '08 #5

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by Dave Johnson | last post: by
9 posts views Thread by =?Utf-8?B?cmF1bGF2aQ==?= | last post: by
reply views Thread by =?Utf-8?B?SHlwZXJjb2Rlcg==?= | last post: by
4 posts views Thread by =?Utf-8?B?RXJpYyBGYWxza2Vu?= | last post: by
14 posts views Thread by thj | last post: by
9 posts views Thread by Cirene | last post: by
3 posts views Thread by =?Utf-8?B?UGF1bCBQcmV3ZXR0?= | last post: by
4 posts views Thread by George | last post: by
reply views Thread by rosydwin | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.