ASP MVC Project with many database tables deployed in IIS first launch takes extremely long time(more than 10 mins)

StackOverflow https://stackoverflow.com/questions/22130541

  •  19-10-2022
  •  | 
  •  

Question

problem: I use ASP MVC Code First One Base Model With 50 fields 100 SubModels extend from Base Model Base Model:

public class SPBase
{
    public int Id { get; set; }

    public string ttt { get; set; }
    public string s1 { get; set; }
    public decimal d1 { get; set; }
    public DateTime t1 { get; set; }
    public int i1 { get; set; }
    public string s2 { get; set; }
    public decimal d2 { get; set; }
    public DateTime t2 { get; set; }
    public int i2 { get; set; }
    public string s3 { get; set; }
    public decimal d3 { get; set; }
    public DateTime t3 { get; set; }
    public int i3 { get; set; }
    public string s4 { get; set; }
    public decimal d4 { get; set; }
    public DateTime t4 { get; set; }
    public int i4 { get; set; }
    public string s5 { get; set; }
    public decimal d5 { get; set; }
    public DateTime t5 { get; set; }
    public int i5 { get; set; }
    public string s6 { get; set; }
    public decimal d6 { get; set; }
    public DateTime t6 { get; set; }
    public int i6 { get; set; }
    public string s7 { get; set; }
    public decimal d7 { get; set; }
    public DateTime t7 { get; set; }
    public int i7 { get; set; }
    public string s8 { get; set; }
    public decimal d8 { get; set; }
    public DateTime t8 { get; set; }
    public int i8 { get; set; }
    public string s9 { get; set; }
    public decimal d9 { get; set; }
    public DateTime t9 { get; set; }
    public int i9 { get; set; }
    public string s10 { get; set; }
    public decimal d10 { get; set; }
    public DateTime t10 { get; set; }
    public int i10 { get; set; }
    public string s11 { get; set; }
    public decimal d11 { get; set; }
    public DateTime t11 { get; set; }
    public int i11 { get; set; }
    public string s12 { get; set; }
    public decimal d12 { get; set; }
    public DateTime t12 { get; set; }
    public int i12 { get; set; }
    public string s13 { get; set; }
    public decimal d13 { get; set; }
    public DateTime t13 { get; set; }
    public int i13 { get; set; }
    public string s14 { get; set; }
    public decimal d14 { get; set; }
    public DateTime t14 { get; set; }
    public int i14 { get; set; }
    public string s15 { get; set; }
    public decimal d15 { get; set; }
    public DateTime t15 { get; set; }
    public int i15 { get; set; }
    public string s16 { get; set; }
    public decimal d16 { get; set; }
    public DateTime t16 { get; set; }
    public int i16 { get; set; }
    public string s17 { get; set; }
    public decimal d17 { get; set; }
    public DateTime t17 { get; set; }
    public int i17 { get; set; }
    public string s18 { get; set; }
    public decimal d18 { get; set; }
    public DateTime t18 { get; set; }
    public int i18 { get; set; }
    public string s19 { get; set; }
    public decimal d19 { get; set; }
    public DateTime t19 { get; set; }
    public int i19 { get; set; }
    public string s20 { get; set; }
    public decimal d20 { get; set; }
    public DateTime t20 { get; set; }
    public int i20 { get; set; }
    public string s21 { get; set; }
    public decimal d21 { get; set; }
    public DateTime t21 { get; set; }
    public int i21 { get; set; }
    public string s22 { get; set; }
    public decimal d22 { get; set; }
    public DateTime t22 { get; set; }
    public int i22 { get; set; }
    public string s23 { get; set; }
    public decimal d23 { get; set; }
    public DateTime t23 { get; set; }
    public int i23 { get; set; }
    public string s24 { get; set; }
    public decimal d24 { get; set; }
    public DateTime t24 { get; set; }
    public int i24 { get; set; }
    public string s25 { get; set; }
    public decimal d25 { get; set; }
    public DateTime t25 { get; set; }
    public int i25 { get; set; }
    public string s26 { get; set; }
    public decimal d26 { get; set; }
    public DateTime t26 { get; set; }
    public int i26 { get; set; }
    public string s27 { get; set; }
    public decimal d27 { get; set; }
    public DateTime t27 { get; set; }
    public int i27 { get; set; }
    public string s28 { get; set; }
    public decimal d28 { get; set; }
    public DateTime t28 { get; set; }
    public int i28 { get; set; }
    public string s29 { get; set; }
    public decimal d29 { get; set; }
    public DateTime t29 { get; set; }
    public int i29 { get; set; }
    public string s30 { get; set; }
    public decimal d30 { get; set; }
    public DateTime t30 { get; set; }
    public int i30 { get; set; }
    public string s31 { get; set; }
    public decimal d31 { get; set; }
    public DateTime t31 { get; set; }
    public int i31 { get; set; }
    public string s32 { get; set; }
    public decimal d32 { get; set; }
    public DateTime t32 { get; set; }
    public int i32 { get; set; }
    public string s33 { get; set; }
    public decimal d33 { get; set; }
    public DateTime t33 { get; set; }
    public int i33 { get; set; }
    public string s34 { get; set; }
    public decimal d34 { get; set; }
    public DateTime t34 { get; set; }
    public int i34 { get; set; }
    public string s35 { get; set; }
    public decimal d35 { get; set; }
    public DateTime t35 { get; set; }
    public int i35 { get; set; }
    public string s36 { get; set; }
    public decimal d36 { get; set; }
    public DateTime t36 { get; set; }
    public int i36 { get; set; }
    public string s37 { get; set; }
    public decimal d37 { get; set; }
    public DateTime t37 { get; set; }
    public int i37 { get; set; }
    public string s38 { get; set; }
    public decimal d38 { get; set; }
    public DateTime t38 { get; set; }
    public int i38 { get; set; }
    public string s39 { get; set; }
    public decimal d39 { get; set; }
    public DateTime t39 { get; set; }
    public int i39 { get; set; }
    public string s40 { get; set; }
    public decimal d40 { get; set; }
    public DateTime t40 { get; set; }
    public int i40 { get; set; }
    public string s41 { get; set; }
    public decimal d41 { get; set; }
    public DateTime t41 { get; set; }
    public int i41 { get; set; }
    public string s42 { get; set; }
    public decimal d42 { get; set; }
    public DateTime t42 { get; set; }
    public int i42 { get; set; }
    public string s43 { get; set; }
    public decimal d43 { get; set; }
    public DateTime t43 { get; set; }
    public int i43 { get; set; }
    public string s44 { get; set; }
    public decimal d44 { get; set; }
    public DateTime t44 { get; set; }
    public int i44 { get; set; }
    public string s45 { get; set; }
    public decimal d45 { get; set; }
    public DateTime t45 { get; set; }
    public int i45 { get; set; }
    public string s46 { get; set; }
    public decimal d46 { get; set; }
    public DateTime t46 { get; set; }
    public int i46 { get; set; }
    public string s47 { get; set; }
    public decimal d47 { get; set; }
    public DateTime t47 { get; set; }
    public int i47 { get; set; }
    public string s48 { get; set; }
    public decimal d48 { get; set; }
    public DateTime t48 { get; set; }
    public int i48 { get; set; }
    public string s49 { get; set; }
    public decimal d49 { get; set; }
    public DateTime t49 { get; set; }
    public int i49 { get; set; }
    public string s50 { get; set; }
    public decimal d50 { get; set; }
    public DateTime t50 { get; set; }
    public int i50 { get; set; }
}

SubModels:

public class SP2 : SPBase { }
public class SP3 : SPBase { }
public class SP4 : SPBase { }
public class SP5 : SPBase { }
public class SP6 : SPBase { }
public class SP7 : SPBase { }
public class SP8 : SPBase { }
public class SP9 : SPBase { }
public class SP10 : SPBase { }
public class SP11 : SPBase { }
public class SP12 : SPBase { }
public class SP13 : SPBase { }
public class SP14 : SPBase { }
public class SP15 : SPBase { }
public class SP16 : SPBase { }
public class SP17 : SPBase { }
public class SP18 : SPBase { }
public class SP19 : SPBase { }
public class SP20 : SPBase { }
public class SP21 : SPBase { }
public class SP22 : SPBase { }
public class SP23 : SPBase { }
public class SP24 : SPBase { }
public class SP25 : SPBase { }
public class SP26 : SPBase { }
public class SP27 : SPBase { }
public class SP28 : SPBase { }
public class SP29 : SPBase { }
public class SP30 : SPBase { }
public class SP31 : SPBase { }
public class SP32 : SPBase { }
public class SP33 : SPBase { }
public class SP34 : SPBase { }
public class SP35 : SPBase { }
public class SP36 : SPBase { }
public class SP37 : SPBase { }
public class SP38 : SPBase { }
public class SP39 : SPBase { }
public class SP40 : SPBase { }
public class SP41 : SPBase { }
public class SP42 : SPBase { }
public class SP43 : SPBase { }
public class SP44 : SPBase { }
public class SP45 : SPBase { }
public class SP46 : SPBase { }
public class SP47 : SPBase { }
public class SP48 : SPBase { }
public class SP49 : SPBase { }
public class SP50 : SPBase { }
public class SP51 : SPBase { }
public class SP52 : SPBase { }
public class SP53 : SPBase { }
public class SP54 : SPBase { }
public class SP55 : SPBase { }
public class SP56 : SPBase { }
public class SP57 : SPBase { }
public class SP58 : SPBase { }
public class SP59 : SPBase { }
public class SP60 : SPBase { }
public class SP61 : SPBase { }
public class SP62 : SPBase { }
public class SP63 : SPBase { }
public class SP64 : SPBase { }
public class SP65 : SPBase { }
public class SP66 : SPBase { }
public class SP67 : SPBase { }
public class SP68 : SPBase { }
public class SP69 : SPBase { }
public class SP70 : SPBase { }
public class SP71 : SPBase { }
public class SP72 : SPBase { }
public class SP73 : SPBase { }
public class SP74 : SPBase { }
public class SP75 : SPBase { }
public class SP76 : SPBase { }
public class SP77 : SPBase { }
public class SP78 : SPBase { }
public class SP79 : SPBase { }
public class SP80 : SPBase { }
public class SP81 : SPBase { }
public class SP82 : SPBase { }
public class SP83 : SPBase { }
public class SP84 : SPBase { }
public class SP85 : SPBase { }
public class SP86 : SPBase { }
public class SP87 : SPBase { }
public class SP88 : SPBase { }
public class SP89 : SPBase { }
public class SP90 : SPBase { }
public class SP91 : SPBase { }
public class SP92 : SPBase { }
public class SP93 : SPBase { }
public class SP94 : SPBase { }
public class SP95 : SPBase { }
public class SP96 : SPBase { }
public class SP97 : SPBase { }
public class SP98 : SPBase { }
public class SP99 : SPBase { }
public class SP100 : SPBase { }

DBContext:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {
    }

    public DbSet<SP2> SP2 { get; set; }
    public DbSet<SP3> SP3 { get; set; }
    public DbSet<SP4> SP4 { get; set; }
    public DbSet<SP5> SP5 { get; set; }
    public DbSet<SP6> SP6 { get; set; }
    public DbSet<SP7> SP7 { get; set; }
    public DbSet<SP8> SP8 { get; set; }
    public DbSet<SP9> SP9 { get; set; }
    public DbSet<SP10> SP10 { get; set; }
    public DbSet<SP11> SP11 { get; set; }
    public DbSet<SP12> SP12 { get; set; }
    public DbSet<SP13> SP13 { get; set; }
    public DbSet<SP14> SP14 { get; set; }
    public DbSet<SP15> SP15 { get; set; }
    public DbSet<SP16> SP16 { get; set; }
    public DbSet<SP17> SP17 { get; set; }
    public DbSet<SP18> SP18 { get; set; }
    public DbSet<SP19> SP19 { get; set; }
    public DbSet<SP20> SP20 { get; set; }
    public DbSet<SP21> SP21 { get; set; }
    public DbSet<SP22> SP22 { get; set; }
    public DbSet<SP23> SP23 { get; set; }
    public DbSet<SP24> SP24 { get; set; }
    public DbSet<SP25> SP25 { get; set; }
    public DbSet<SP26> SP26 { get; set; }
    public DbSet<SP27> SP27 { get; set; }
    public DbSet<SP28> SP28 { get; set; }
    public DbSet<SP29> SP29 { get; set; }
    public DbSet<SP30> SP30 { get; set; }
    public DbSet<SP31> SP31 { get; set; }
    public DbSet<SP32> SP32 { get; set; }
    public DbSet<SP33> SP33 { get; set; }
    public DbSet<SP34> SP34 { get; set; }
    public DbSet<SP35> SP35 { get; set; }
    public DbSet<SP36> SP36 { get; set; }
    public DbSet<SP37> SP37 { get; set; }
    public DbSet<SP38> SP38 { get; set; }
    public DbSet<SP39> SP39 { get; set; }
    public DbSet<SP40> SP40 { get; set; }
    public DbSet<SP41> SP41 { get; set; }
    public DbSet<SP42> SP42 { get; set; }
    public DbSet<SP43> SP43 { get; set; }
    public DbSet<SP44> SP44 { get; set; }
    public DbSet<SP45> SP45 { get; set; }
    public DbSet<SP46> SP46 { get; set; }
    public DbSet<SP47> SP47 { get; set; }
    public DbSet<SP48> SP48 { get; set; }
    public DbSet<SP49> SP49 { get; set; }
    public DbSet<SP50> SP50 { get; set; }
    public DbSet<SP51> SP51 { get; set; }
    public DbSet<SP52> SP52 { get; set; }
    public DbSet<SP53> SP53 { get; set; }
    public DbSet<SP54> SP54 { get; set; }
    public DbSet<SP55> SP55 { get; set; }
    public DbSet<SP56> SP56 { get; set; }
    public DbSet<SP57> SP57 { get; set; }
    public DbSet<SP58> SP58 { get; set; }
    public DbSet<SP59> SP59 { get; set; }
    public DbSet<SP60> SP60 { get; set; }
    public DbSet<SP61> SP61 { get; set; }
    public DbSet<SP62> SP62 { get; set; }
    public DbSet<SP63> SP63 { get; set; }
    public DbSet<SP64> SP64 { get; set; }
    public DbSet<SP65> SP65 { get; set; }
    public DbSet<SP66> SP66 { get; set; }
    public DbSet<SP67> SP67 { get; set; }
    public DbSet<SP68> SP68 { get; set; }
    public DbSet<SP69> SP69 { get; set; }
    public DbSet<SP70> SP70 { get; set; }
    public DbSet<SP71> SP71 { get; set; }
    public DbSet<SP72> SP72 { get; set; }
    public DbSet<SP73> SP73 { get; set; }
    public DbSet<SP74> SP74 { get; set; }
    public DbSet<SP75> SP75 { get; set; }
    public DbSet<SP76> SP76 { get; set; }
    public DbSet<SP77> SP77 { get; set; }
    public DbSet<SP78> SP78 { get; set; }
    public DbSet<SP79> SP79 { get; set; }
    public DbSet<SP80> SP80 { get; set; }
    public DbSet<SP81> SP81 { get; set; }
    public DbSet<SP82> SP82 { get; set; }
    public DbSet<SP83> SP83 { get; set; }
    public DbSet<SP84> SP84 { get; set; }
    public DbSet<SP85> SP85 { get; set; }
    public DbSet<SP86> SP86 { get; set; }
    public DbSet<SP87> SP87 { get; set; }
    public DbSet<SP88> SP88 { get; set; }
    public DbSet<SP89> SP89 { get; set; }
    public DbSet<SP90> SP90 { get; set; }
    public DbSet<SP91> SP91 { get; set; }
    public DbSet<SP92> SP92 { get; set; }
    public DbSet<SP93> SP93 { get; set; }
    public DbSet<SP94> SP94 { get; set; }
    public DbSet<SP95> SP95 { get; set; }
    public DbSet<SP96> SP96 { get; set; }
    public DbSet<SP97> SP97 { get; set; }
    public DbSet<SP98> SP98 { get; set; }
    public DbSet<SP99> SP99 { get; set; }
    public DbSet<SP100> SP100 { get; set; }
}

It takes more than 10mins to launch when deploy to iis and even more time to launch when debug in Visual Studio 2013

I'v made some testing, seems the time cost is depending on the numbers of Models

So any suggestion is appreciated

Was it helpful?

Solution 2

Finally Solved! Trick is: upgrade the EntityFramework from 6.0.0.0 to 6.1.0

OTHER TIPS

You can try changing the database initializer in the Application_start method in the Global.asax.cs file.

Something along the lines of:

protected void Application_Start() { Database.SetInitializer(new DropCreateDatabaseIfModelChanges<ApplicationDbContext>()); ... }

but you should remember that this particular example would destroy all your data if you change the database model. If this proves to be efficient and works you could enable migrations and create a custom migration migration configuration and use it to update the db without losing all the data. For more info on migrations you could take a look here: http://www.codeproject.com/Articles/674760/Code-First-Migration-and-Extending-Identity-Accoun

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top