Changed the code a little, i'm now creating one session, and one
factory on the Load. However i use a button_click to trigger the
actual querying..

First time i click el button it's slow (both the msgbox timer shows 21
seconds and profiler tells me 19 seconds) but the second time i hit
the button (even after clearing th SQL Cache) it runs in less then 5
seconds.

So it clearly has something to do with the creating of objects or
something. I'm kind of clueless as to what i'm doing wrong to cause
the horrible performance i'm having on the first calling

On 12 aug, 14:15, "F.B. ten Kate" <[email protected]> wrote:
> Ow, little extra info, it's 390000 Records i'm querying, which
> obviously is kinda alot.
>
> On 12 aug, 14:12, "F.B. ten Kate" <[email protected]> wrote:
>
> > Like i said, the "timer" is in SQL Profiler. In otherwords not in the
> > code, but i also have the following bits in there to compare.
>
> >             DateTime start = DateTime.Now;
> >             IList<Debiteur> lijst = session.CreateCriteria(typeof
> > (Debiteur)).List<Debiteur>();
> >             DateTime stop = DateTime.Now;
> >             dataGridView1.DataSource = lijst;
>
> >             MessageBox.Show((stop-start).Seconds +"."+ (stop-
> > start).Milliseconds);
>
> > Meaning i start the timer AFTER the session has been created, and
> > start the "query" if i am getting this. the NHibernate project atm
> > takes 26 seconds to do this (this is with another enitity added with
> > Lazyloading, without this entitity it was +- 21 seconds) EF does the
> > same action in +- 5 seconds. Which leads me to believe the problem
> > lies in the execution of the SQL.
>
> > On 12 aug, 14:07, Paco Wensveen <[email protected]> wrote:
>
> > > The sql is not executing slowly, the building of the sessionfactory is
> > > slow. Start your timer after buildsessionfactory and compare again.
>
> > > On Wed, Aug 12, 2009 at 2:01 PM, F.B. ten Kate<[email protected]> wrote:
>
> > > > Yes i am atm, since it's just a quit check to run a query, but would
> > > > this explain the SQL executing this slowly?
>
> > > > I know i'm not using any "best" practises and things, this is the
> > > > first thing im doing with both NHibernate and EF.
>
> > > > Here is the code running it.
>
> > > >            Configuration cfg = new Configuration();
> > > >            cfg.Configure();
> > > >            cfg.AddAssembly(typeof(Debiteur).Assembly);
>
> > > >            ISessionFactory factory = cfg.BuildSessionFactory();
> > > >            ISession session = factory.OpenSession();
>
> > > >            IList<Debiteur> lijst = session.CreateCriteria(typeof
> > > > (Debiteur)).List<Debiteur>();
>
> > > >            dataGridView1.DataSource = lijst;
>
> > > > On 12 aug, 13:22, Kim Johansson <[email protected]> wrote:
> > > >> Are you creating a new SessionFactory each run? (SLOOOOOOOOOOOW!!!)
>
> > > >> You should use a single instance SessionFactory and just create new
> > > >> sessions.
>
> > > >> F.B. ten Kate wrote:
> > > >> > Hello there, im currently looking at some differences between both
> > > >> > ORM's and to get a good feel for both i try to query from one table
> > > >> > and simply drop all the data in a DataGridView.
>
> > > >> > Easy as pie right?
>
> > > >> > Now here is the different SQL's beeing generated
>
> > > >> > NHibernate:
>
> > > >> > "SELECT this_.Debiteur_ID as Debiteur1_0_0_, this_.Debiteurnaam as
> > > >> > Debiteur2_0_0_, this_.Entiteit_ID as Entiteit3_0_0_, 
> > > >> > this_.Sorteernaam
> > > >> > as Sorteern4_0_0_, this_.DatumWijziging as
> > > >> > DatumWij5_0_0_, this_.Actief_NeeJa as Actief6_0_0_ FROM tbl_Debiteur
> > > >> > this_"
>
> > > >> > Enitity Framework:
>
> > > >> > "SELECT
> > > >> > [Extent1].[Actief_NeeJa] AS [Actief_NeeJa],
> > > >> > [Extent1].[DatumWijziging] AS [DatumWijziging],
> > > >> > [Extent1].[Debiteur_ID] AS [Debiteur_ID],
> > > >> > [Extent1].[Debiteurnaam] AS [Debiteurnaam],
> > > >> > [Extent1].[Entiteit_ID] AS [Entiteit_ID],
> > > >> > [Extent1].[Sorteernaam] AS [Sorteernaam]
> > > >> > FROM [dbo].[tbl_Debiteur] AS [Extent1]"
>
> > > >> > Okay, so sofar EF wins in readability atleast but i dont intend to
> > > >> > actually look at the queries so i'm not worried.
>
> > > >> > I noticed that NHibernate was ALOT slower then EF, the reasons seemed
> > > >> > like a mistery to me so i ran SQL Profiler.
>
> > > >> > When i run the NHibernate project the query runs for a duration of
> > > >> > 19369 (milliseconds)
>
> > > >> > Then i run Enitity frame work which runs for a duration of 3621
> > > >> > (milliseconds)
>
> > > >> > (I clear caches between the different queries)
>
> > > >> > I then run the query in SQL Management Studio, The NHibernate has a
> > > >> > duration of 4291 (milliseconds)
> > > >> > I do the same for the Enitity framework which has a duration of 4291
> > > >> > (milliseconds)
>
> > > >> > Can anyone explain to me these durations? mostly the NHibernate time
> > > >> > when running it from application code is HUGE. Eventhough the SQL is
> > > >> > exactly the same...
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to