Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.

February 12, 2008 / by Zsolt Soczó

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).

LINQ vs SQL teljesítmény

Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.

LEAVE A COMMENT

5 COMMENTS

  • Laci February 12, 2008

    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.

  • Laci February 12, 2008

    + tényleg csak a preview változattal teszteltem, azóta jelentősen javulhatott a helyzet.

  • Soczó Zsolt February 12, 2008

    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.

  • Laci February 12, 2008

    É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:-)

  • Soczó Zsolt February 12, 2008

    Pedig attól gyors :)