public void TestStandardQuery() { int iterations = 100; var query = db.OrderDetails.Where(d => d.OrderID > 10).Take(n); var qtran = new IQToolkit.Data.Common.QueryTranslator(this.provider.Language, this.provider.Mapping, this.provider.Policy); var expr = ((IQueryable)query).Expression; var tran = qtran.Translate(expr); var plan = this.provider.GetExecutionPlan(query.Expression); var exec = Expression.Lambda <Func <IEnumerable <OrderDetail> > >(plan).Compile(); var overall = RunTimedTest(iterations, i => { var results = query.ToList(); }); var tranTime = RunTimedTest(iterations, i => { var qt = new IQToolkit.Data.Common.QueryTranslator(this.provider.Language, this.provider.Mapping, this.provider.Policy); var tr = qt.Translate(expr); }); var buildTime = RunTimedTest(iterations, i => { var qt = new IQToolkit.Data.Common.QueryTranslator(this.provider.Language, this.provider.Mapping, this.provider.Policy); var result = qt.Police.BuildExecutionPlan(query.Expression, Expression.Constant(this.provider, typeof(IQueryProvider))); }); var compileTime = RunTimedTest(iterations, i => { var result = Expression.Lambda <Func <IEnumerable <OrderDetail> > >(plan).Compile(); }); var execTime = RunTimedTest(iterations, i => { var result = exec().ToList(); }); Console.WriteLine("Overall : {0} sec", overall); Console.WriteLine("translation : {0} ", tranTime); Console.WriteLine("build : {0} ", buildTime); Console.WriteLine("compilation : {0} ", compileTime); Console.WriteLine("execution : {0} ", execTime); }
public VfpLinguist(VfpLanguage language, IQToolkit.Data.Common.QueryTranslator translator) : base(language, translator) { this.language = language; }
public void TestStandardQuery() { int iterations = 100; var query = db.OrderDetails.Where(d => d.OrderID > 10).Take(n); var qtran = new IQToolkit.Data.Common.QueryTranslator(this.GetProvider().Language, this.GetProvider().Mapping, this.GetProvider().Policy); var expr = ((IQueryable)query).Expression; var tran = qtran.Translate(expr); var plan = this.GetProvider().GetExecutionPlan(query.Expression); var exec = Expression.Lambda<Func<IEnumerable<OrderDetail>>>(plan).Compile(); var overall = RunTimedTest(iterations, i => { var results = query.ToList(); }); var tranTime = RunTimedTest(iterations, i => { var qt = new IQToolkit.Data.Common.QueryTranslator(this.GetProvider().Language, this.GetProvider().Mapping, this.GetProvider().Policy); var tr = qt.Translate(expr); }); var buildTime = RunTimedTest(iterations, i => { var qt = new IQToolkit.Data.Common.QueryTranslator(this.GetProvider().Language, this.GetProvider().Mapping, this.GetProvider().Policy); var result = qt.Police.BuildExecutionPlan(query.Expression, Expression.Constant(this.GetProvider(), typeof(IQueryProvider))); }); var compileTime = RunTimedTest(iterations, i => { var result = Expression.Lambda<Func<IEnumerable<OrderDetail>>>(plan).Compile(); }); var execTime = RunTimedTest(iterations, i => { var result = exec().ToList(); }); Console.WriteLine("Overall : {0} sec", overall); Console.WriteLine("translation : {0} ", tranTime); Console.WriteLine("build : {0} ", buildTime); Console.WriteLine("compilation : {0} ", compileTime); Console.WriteLine("execution : {0} ", execTime); }