long delay on first query with large model

long delay on first query with large model

Postby gkubesch » Thu 03 May 2012 13:34

Hello,
we have an entity model containing about 700 entities.
Unfortunately the database is already existing and has lot's of foreign key
constraints, so we can not realy shrink our model :-(

When we do a simple test like this
Code: Select all
using (Context context = new Context())
//Context does the model creation with about 700 entities
{
  Debug.WriteLine("1 "+DateTime.Now.ToLongTimeString());
  var query = context.G_TABLE1
                     .Where(p => p.EQUI_ID == 3)
                     .ToList();
  Debug.WriteLine("2 " + DateTime.Now.ToLongTimeString());
  query = context.G_TABLE1
                     .Where(p => p.EQUI_ID == 2)
                     .ToList();
  Debug.WriteLine("3 " + DateTime.Now.ToLongTimeString());
}

the gap between output 1 and output 2 is about 5 minutes. 2 to 3 is < 1 sec!
I looked up the session in the database, but is was idle.
The cpu usage went up to 50% (from 5%) while the test was running.
Does anybody know why the first query takes so long and if there is anything we could do abaout this?

Thank you,
George
gkubesch
 
Posts: 4
Joined: Thu 03 May 2012 12:00

Re: long delay on first query with large model

Postby MariiaI » Fri 04 May 2012 12:54

Could you please specify the following:
- the version of your dotConnect for Oracle;
- the data types and approximate number of fields used in your entities;
- whether you are declaring any data load options.

If possible, please send us (http://www.devart.com/company/contact.html) the model you are working with or a sample project with which the issue can be reproduced.
MariiaI
Devart Team
 
Posts: 1472
Joined: Mon 13 Feb 2012 08:17

Re: long delay on first query with large model

Postby gkubesch » Wed 09 May 2012 08:24

the version of your dotConnect for Oracle
we used version 6.60, justed upgraded to 6.80 without any performance improvement

the data types and approximate number of fields used in your entities
we have an average of 17 fields per entity (about 650 entities)
we have mostly simple datatypes (integer, number, string, long) but also blob and xmltypes

whether you are declaring any data load options
no data load options
we create out model like this

Code: Select all
Class Context ...
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
  modelBuilder.Conventions.Remove<ColumnTypeCasingConvention>();
  modelBuilder.Configurations.Add(new XXXMap());
  modelBuilder.Configurations.Add(new YYYMap());
...
}


our entities are created with Entity Framework Power Tools Beta 2


send us the model you are working with
as we have very strict security rules from our customer, we can not send you our model.
gkubesch
 
Posts: 4
Joined: Thu 03 May 2012 12:00

Re: long delay on first query with large model

Postby Pinturiccio » Mon 14 May 2012 11:04

You can improve the first query performance in the Entity Framework by using the Pre-generated views.

You can find detailed information about the Pre-generated views at:
http://msdn.microsoft.com/en-us/library/cc853327.aspx (Entity Framework)
http://msdn.microsoft.com/en-us/data/hh949853 (Entity Framework 5)

The are many other ways to improve the first query performance described in these articles, but we advise you to use Pre-generated views.
Pinturiccio
Devart Team
 
Posts: 1893
Joined: Wed 02 Nov 2011 09:44


Return to dotConnect for Oracle