예제 #1
0
        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);
        }
예제 #2
0
 public VfpLinguist(VfpLanguage language, IQToolkit.Data.Common.QueryTranslator translator)
     : base(language, translator)
 {
     this.language = language;
 }
예제 #3
0
        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);
        }