LINQ vs. SQL teljesítmény
Az előző cikkemmel csak az volt a célom, hogy megmutassam, hogyan lehet megírni ugyanazt a lekérdezést kétféle módon, a teljesítményüket nem is vizsgátam, mivel érzésre egyik se volt túl lassú.
Laci kommentjében a teljesítmény kérdésre hívta fel a figyelmem, hát megnéztem, mi itt a helyzet. Nos, megúszta a LINQ, pedig nem akartam neki reklámot csinálni. Pontosan ugyanolyan teljesítményű lett a két megoldás, ami nem csoda, hisz pontosan ugyanaz az SQL végrehajtási tervet eredményezik! Egyetlen különbség, hogy a sorszámozást LINQ esetén csak procedurálisan tudtam megcsinálni, így a LINQ sql-es kódjában az nem szerepel, de ennek költsége nem is jelent meg a tiszta SQL megoldás végrehajtási tervében, annyira kicsi.
A lényeg tehát, hogy a LINQ nem feltétlenül lassú, sőt, teljesen egyenértékű lehet a hagyományos SQL-es megoldással. De miért is lenne más? Hisz egyszerűen arról van szó, hogy másképp írom le ugyanazt a specifikációt, az egész hatékonysága azon múlik, mennyire okos a LINQ to SQL sqlgenerátora. A jelek szerint egyszerűbb lekérdezésekre tökéletes.
Aki nem hiszi amit írok, nézze meg az alábbi képet (rákattintva nagyban).
February 12th, 2008 at 1:28 pm
Nem magának az SQL futási teljesítményére gondoltam, elnézést ha félreérthető voltam… Én komplett webes alkalmazás felépítésénél teszteltem a linq-t a “hagyományos” tárolt eljárás, IDataReader stb. változattal szemben. Itt vesztett magasan a Linq. Az XLinq-val olyan tapasztalatom volt, hogy bizonyos node-szám után brutális lassulást mutatott a rajta végzett művelet.
February 12th, 2008 at 1:29 pm
+ tényleg csak a preview változattal teszteltem, azóta jelentősen javulhatott a helyzet.
February 12th, 2008 at 2:13 pm
Ez a sorozat sok mindent megmagyaráz:
http://blogs.msdn.com/ricom/archive/2007/06/22/dlinq-linq-to-sql-performance-part-1.aspx
Sokat húztak rajta út közben.
February 12th, 2008 at 2:23 pm
Én még tavaly tavasszal teszteltem, azóta nem követtem a változásokat. Ha jól emléxem, akkor a CompiledQuery még csak pletyka volt:-)
February 12th, 2008 at 2:42 pm
Pedig attól gyors :)