示例#1
2
        protected void Page_Load(object sender, EventArgs e)
        {
            PerformanceTest pt = new PerformanceTest();
            pt.SetCount(10000);//设置循环次数
            Models.Student ss = new Models.Student() { id=1 };
            pt.Execute(i =>
            {
                ResolveExpress r = new ResolveExpress();
                Expression<Func<Models.InsertTest, bool>> func = x => x.id>ss.id;
                r.ResolveExpression(r,func);

            }, m => { }, "lambda");

         
            //输出测试页面
            GridView gv = new GridView();
            gv.DataSource = pt.GetChartSource();
            gv.DataBind();
            Form.Controls.Add(gv);
        }
示例#2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            PerformanceTest pt = new PerformanceTest();
            pt.SetCount(1000);
            using (SqlSugarClient db = new SqlSugarClient(System.Configuration.ConfigurationManager.ConnectionStrings["sqlConn"].ToString()))
            {


                //ado.GetDataTable
                pt.Execute(i =>
                {
                    db.GetDataTable(@"select * from dbo.Student s inner join dbo.School sc on sc.id=s.sch_id 
left join dbo.Subject sb on sb.sid=s.id");

                }, m => { }, "ado.DateTable 纯SQL写法");


                //dapper
                var conn = db.GetConnection();
                pt.Execute(i =>
                {
                    conn.Query<Models.Student>(@"select * from dbo.Student s inner join dbo.School sc on sc.id=s.sch_id 
left join dbo.Subject sb on sb.sid=s.id").ToList();

                }, m => { }, "dapper 纯SQL写法");

                //sqlSugar
                pt.Execute(i =>
                {
                    db.Sqlable().Form("Student", "s")
                        .Join("School","sc","sc.id","s.sch_id",JoinType.INNER)
                        .Join("subject","sb","sb.sid","s.id",JoinType.LEFT).SelectToList<Models.Student>("*");

                }, m => { }, "sqlSugar SQL语法糖");
                //sqlSugar
                pt.Execute(i =>
                {
                    db.SqlQuery<Models.Student>(@"select * from dbo.Student s inner join dbo.School sc on sc.id=s.sch_id 
left join dbo.Subject sb on sb.sid=s.id").ToList();

                }, m => { }, "sqlSugar 纯SQL写法");


            }

            using (WebTest.TestLib.SqlSugarTestEntities db = new TestLib.SqlSugarTestEntities())
            {
                //EF
                pt.Execute(i =>
                {
                    db.ExecuteStoreQuery<WebTest.TestLib.Student>(@"select * from dbo.Student s inner join dbo.School sc on sc.id=s.sch_id 
left join dbo.Subject sb on sb.sid=s.id");

                }, m => { }, "EF4.0+sql05 纯SQL写法");
            }
            GridView gv = new GridView();
            gv.DataSource = pt.GetChartSource();
            gv.DataBind();
            Form.Controls.Add(gv);
        }
示例#3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            PerformanceTest pt = new PerformanceTest();
            pt.SetCount(10000);
            int id = 1;
            using (SqlSugarClient db = new SqlSugarClient(System.Configuration.ConfigurationManager.ConnectionStrings["sqlConn"].ToString()))
            {
               
              

                //ado.GetDataTable
                pt.Execute(i =>
                {
                    db.GetDataTable("select * from Student WHERE ID>@id", new SqlParameter("@id", id));

                }, m => { }, "ado.DateTable 纯SQL写法");


                //dapper
                var conn = db.GetConnection();
                pt.Execute(i =>
                {
                    conn.Query<Models.Student>("select * from Student where id>@id", new { id = id}).ToList();

                }, m => { }, "dapper 纯SQL写法");


                //sqlSugar
                pt.Execute(i =>
                {

                    db.Queryable<Models.Student>().Where(c => c.id == id).ToList();

                }, m => { }, "sqlSugar 拉姆达");

            }

            using (WebTest.TestLib.SqlSugarTestEntities db = new TestLib.SqlSugarTestEntities())
            {
                //EF
                pt.Execute(i =>
                {
                    db.Student.Where(c => c.id == id).ToList();

                }, m => { }, "EF4.0+sql05 拉姆达");
            }
            GridView gv = new GridView();
            gv.DataSource = pt.GetChartSource();
            gv.DataBind();
            Form.Controls.Add(gv);
        }
示例#4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            
            PerformanceTest pt = new PerformanceTest();
            pt.SetCount(1100);//设置循环次数
            using (SqlSugarClient db = new SqlSugarClient(System.Configuration.ConfigurationManager.ConnectionStrings["sqlConn"].ToString()))
            {

                TuncateTable(db);
                AddTest(pt, db);

                //sqlSugar
                pt.Execute(i =>
                {
                    db.Delete<Models.InsertTest>(it=>it.id==i);

                }, m => { }, "sqlSugar");


                TuncateTable(db);
                AddTest(pt, db);

                //ado.net
                pt.Execute(i =>
                {
                    db.ExecuteCommand("delete InsertTest where id=@id", new SqlParameter("@id", i));

                }, m => { }, "ado.net");


                TuncateTable(db);
                AddTest(pt, db);

                //dapper
                pt.Execute(i =>
                {
                    db.GetConnection().Execute("delete InsertTest where id=@id", new { id=i});

                }, m => { }, "dapper");
            }

            //输出测试页面
            GridView gv = new GridView();
            gv.DataSource = pt.GetChartSource();
            gv.DataBind();
            Form.Controls.Add(gv);

        }
示例#5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            PerformanceTest pt = new PerformanceTest();
            pt.SetCount(10000);
            using (SqlSugarClient db = new SqlSugarClient(System.Configuration.ConfigurationManager.ConnectionStrings["sqlConn"].ToString()))
            {


                //ado.GetDataTable
                pt.Execute(i =>
                {
                    db.GetDataTable("select * from(select *,row_number() over(order by id) as r from Student where id>@id) t where t.r between @b and @e", new SqlParameter("@id","0"), new SqlParameter("@b", 11), new SqlParameter("@e", 20));

                }, m => { }, "ado.DateTable  纯SQL写法");


                //dapper
                var conn = db.GetConnection();
                pt.Execute(i =>
                {
                    conn.Query<Models.Student>("select * from(select *,row_number() over(order by id) as r from Student where id>@id) t where t.r between @b and @e", new { id = 0,b=11,e=20 }).ToList();

                }, m => { }, "dapper  纯SQL写法");

                //sqlSugar
                pt.Execute(i =>
                {
                    db.Queryable<Models.Student>().Where(c => c.id > 0).OrderBy("id").ToPageList(2, 10);

                }, m => { }, "sqlSugar 拉姆达");


            }

            using (WebTest.TestLib.SqlSugarTestEntities db = new TestLib.SqlSugarTestEntities())
            {
                //EF
                pt.Execute(i =>
                {
                    db.Student.Where(c => c.id == 2).OrderBy(c=>c.id).Skip(10).Take(10).ToList();

                }, m => { }, "EF4.0+sql05 拉姆达");
            }
            GridView gv = new GridView();
            gv.DataSource = pt.GetChartSource();
            gv.DataBind();
            Form.Controls.Add(gv);
        }
示例#6
0
        public void AddTest(PerformanceTest pt, SqlSugarClient db)
        {
            //sqlSuagr
            pt.Execute(i =>
            {
                db.Insert<Models.InsertTest>(GetData());

            }, m => { }, "添加记录");

        }
示例#7
0
        public static void Execute(int count, string title, Action fun)
        {
            PerformanceTest ptef = new PerformanceTest();
            ptef.SetCount(count);//执行count次
            ptef.Execute(
                        i =>
                        {
                            fun();

                        },
                        res =>
                        {
                            Console.WriteLine(string.Format("执行{0}次,{1}{2}",count,title,res));
                        });
        }
示例#8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            PerformanceTest pt = new PerformanceTest();
            pt.SetCount(10000);
            using (SqlSugarClient db = new SqlSugarClient(System.Configuration.ConfigurationManager.ConnectionStrings["sqlConn"].ToString()))
            {


                //ado.GetDataTable
                pt.Execute(i =>
                {
                    db.GetDataTable(@"select * from (select  s.*,row_number() over (order by s.id asc,s.name desc) r from dbo.Student s inner join dbo.School sc on sc.id=s.sch_id 
left join dbo.Subject sb on sb.sid=s.id where  s.id>@id1 and  s.id>@id2) t where  t.r between @b and @e", new SqlParameter("@id1", "1"), new SqlParameter("@id2", "2"), new SqlParameter("@b", "11"), new SqlParameter("@e", "20"));

                }, m => { }, "ado.DateTable 纯SQL写法");


                //dapper
                var conn = db.GetConnection();
                pt.Execute(i =>
                {
                    conn.Query<Models.Student>(@"select * from (select s.*,row_number() over (order by s.id asc,s.name desc) r from dbo.Student s inner join dbo.School sc on sc.id=s.sch_id 
left join dbo.Subject sb on sb.sid=s.id where  s.id>@id1 and  s.id>@id2) t where   t.r between @b and @e", new { id1 = 1, id2 = 2, b = 11, e = 20 }).ToList();

                }, m => { }, "dapper 纯SQL写法");

                //sqlSugar
                pt.Execute(i =>
                {
                    db.Sqlable().Form("Student", "s")
                        .Join("School", "sc", "sc.id", "s.sch_id", JoinType.INNER)
                        .Join("subject", "sb", "sb.sid", "s.id", JoinType.LEFT).Where("s.id>@id1").Where("s.id>@id2")
                        .SelectToPageList<Models.Student>("s.*", "s.id asc,s.name desc", 2, 10, new { id1=1,id2=2 });

                }, m => { }, "sqlSugar SQL语法糖");
            }
            using (WebTest.TestLib.SqlSugarTestEntities db = new TestLib.SqlSugarTestEntities())
            {
                //EF
                pt.Execute(i =>
                {
                    var reval = (from s in db.Student
                                join sc in db.School on s.sch_id equals sc.id
                                join sb in db.Subject on s.id equals sb.sid
                                into ssb
                                from sb2 in ssb.DefaultIfEmpty()
                                select new {
                                s.id,
                                s.name,
                                s.sch_id,
                                s.sex
                                }).Where(c=>c.id>1).Where(c=>c.id>2).OrderBy(c=>c.id).ThenByDescending(c=>c.name).Skip(10).Take(10).ToList();




                }, m => { }, "EF4.0+sql05  LINQ TO SQL");
            }
            GridView gv = new GridView();
            gv.DataSource = pt.GetChartSource();
            gv.DataBind();
            Form.Controls.Add(gv);
        }
示例#9
0
        protected void Page_Load(object sender, EventArgs e)
        {

            PerformanceTest pt = new PerformanceTest();
            pt.SetCount(10000);//设置循环次数
            using (SqlSugarClient db = new SqlSugarClient(System.Configuration.ConfigurationManager.ConnectionStrings["sqlConn"].ToString()))
            {
         

                //ef
                using (WebTest.TestLib.SqlSugarTestEntities ef = new TestLib.SqlSugarTestEntities())
                {
                    pt.Execute(i =>
                    {
                        var datas = ef.InsertTests.Where(c => c.id == 1 || c.id > 1000);
                        foreach (var r in datas)
                        {
                            r.v1 = "new11";
                            r.v2 = "newv22";
                            r.v3 = "new33";
                        }
                        ef.SaveChanges();


                    }, m => { }, "EF4.0+sql05 Linq语法");
                }

                //ado.net
                pt.Execute(i =>
                {

                    db.ExecuteCommand(@" UPDATE InsertTest SET  v1 =@v1  , v2 =@v2  , v3 =@v3   WHERE  1=1   and ((id =@id1) Or (id >@id1000))",new SqlParameter[]{
                      new SqlParameter("@v1","new11"),
                      new SqlParameter("@v2","new22"),
                      new SqlParameter("@v3","new33"),
                      new SqlParameter("@id1","1"),
                      new SqlParameter("@id1000","1000")
                    });

                }, m => { },"ado.net");

                //dapper
                var sqlConn=db.GetConnection();
                pt.Execute(i =>
                {

                    sqlConn.Execute(@" UPDATE InsertTest SET  v1 =@v1  , v2 =@v2  , v3 =@v3   WHERE  1=1   and ((id ='1') Or (id >'1000'))", 
                      new { v1 = "newv11", v2 = "newv22", v3 = "newv33",id1=1,id1000=1000 } );

                }, m => { }, "dapper");

                //sqlSugar
                pt.Execute(i =>
                {
                    //更新10000次
                    db.Update<Models.InsertTest>(new { v1 = "newv11", v2 = "newv22", v3 = "newv33" }, it => it.id == 1 || it.id > 1000);

                }, m => { }, "sqlSugar");


            }

            //输出测试页面
            GridView gv = new GridView();
            gv.DataSource = pt.GetChartSource();
            gv.DataBind();
            Form.Controls.Add(gv);
        }
示例#10
0
        protected void Page_Load(object sender, EventArgs e)
        {

            PerformanceTest pt = new PerformanceTest();
            pt.SetCount(10000);//设置循环次数
            using (SqlSugarClient db = new SqlSugarClient(System.Configuration.ConfigurationManager.ConnectionStrings["sqlConn"].ToString()))
            {
                var sqlconn = db.GetConnection();

                TuncateTable(db);//清空

                //sqlSuagr
                pt.Execute(i =>
                {
                    db.Insert<Models.InsertTest>(GetData());

                }, m => { }, "sqlSuagr");




          
                TuncateTable(db);


                //ef4.0+Sql05
                using (TestLib.SqlSugarTestEntities ef = new TestLib.SqlSugarTestEntities())
                {
                    pt.Execute(i =>
                    {
                        ef.InsertTests.AddObject(GetEFData());
                        ef.SaveChanges();

                    }, m => { }, "ef4.0+Sql05");
                }


                TuncateTable(db);

                //dapper
                pt.Execute(i =>
                {
                    sqlconn.Execute("insert into InsertTest (v1,v2,v3,int1,d1,txt ) values(@v1,@v2,@v3,@int1,@d1,@txt);select @@identity;", GetData());

                }, m => { }, "dapper");


                TuncateTable(db);

                //ado.net
                pt.Execute(i =>
                {
                    db.GetScalar("insert into InsertTest (v1,v2,v3,int1,d1,txt ) values(@v1,@v2,@v3,@int1,@d1,@txt);select @@identity;", new SqlParameter[]{
                   new SqlParameter("@d1", DateTime.Now),
                   new SqlParameter("@int1",11),
                   new SqlParameter("@txt","哈另一个txt"),
                   new SqlParameter("@v1","v1sdfasdas"),
                   new SqlParameter("@v2","v2sdfasfas"),
                   new SqlParameter("@v3","v3adfasdf"),
                   new SqlParameter("@id",1)
                    });

                }, m => { }, "ado.net");


            }

            //输出测试页面
            GridView gv = new GridView();
            gv.DataSource = pt.GetChartSource();
            gv.DataBind();
            Form.Controls.Add(gv);



        }