给ToPivotTable和ToPivotList增加几个测试

This commit is contained in:
YHS 2024-01-08 15:42:33 +08:00
parent 98da125373
commit 15f5f79f9b

View File

@ -22,6 +22,10 @@ namespace MySqlTest
db.CodeFirst.SetStringDefaultLength(200).InitTables(typeof(RowToColumn));
Clean();
InitData();
Test1();
Test2();
Test3();
Test4();
Test5();
Test6();
}
@ -66,7 +70,86 @@ namespace MySqlTest
var db = DbHelper.GetNewDb();
db.DbMaintenance.TruncateTable<RowToColumn>();
}
public static void Test1()
{
var db = DbHelper.GetNewDb();
// 创建 Stopwatch 对象并开始计时
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
var s = new DateTime(2023, 2, 1);
var e = new DateTime(2023, 6, 1).AddMilliseconds(-1);
var ls = db.Queryable<RowToColumn>()
.Where(x => x.Date >= s && x.Date <= e)
.GroupBy(x => new { x.Code, x.Date, x.Val, x.T1, x.T2 })
.Select(x => new { x.Code, x.Date, x.T1, x.T2, Val = SqlFunc.AggregateSum(x.Val) })//求和可以自动处理空值
.ToPivotTable(it => it.Code, it => it.T1, it => it.Any() ? it.Sum(x => x.Val) : 0);
// 结束计时并获取经过的时间
stopwatch.Stop();
TimeSpan elapsedTime = stopwatch.Elapsed;
Console.WriteLine("T1:" + elapsedTime);
}
public static void Test2()
{
var db = DbHelper.GetNewDb();
// 创建 Stopwatch 对象并开始计时
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
var s = new DateTime(2023, 2, 1);
var e = new DateTime(2023, 6, 1).AddMilliseconds(-1);
var ls = db.Queryable<RowToColumn>()
.Where(x => x.Date >= s && x.Date <= e)
.GroupBy(x => new { x.Code, x.Date, x.Val, x.T1, x.T2 })
.Select(x => new { x.Code, x.Date, x.T1, x.T2, Val = SqlFunc.AggregateSum(x.Val) })//求和可以自动处理空值
.ToPivotList(it => it.Code, it => it.T1, it => it.Any() ? it.Sum(x => x.Val) : 0);
// 结束计时并获取经过的时间
stopwatch.Stop();
TimeSpan elapsedTime = stopwatch.Elapsed;
Console.WriteLine("T2:" + elapsedTime);
}
public static void Test3()
{
var db = DbHelper.GetNewDb();
// 创建 Stopwatch 对象并开始计时
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
var s = new DateTime(2023, 2, 1);
var e = new DateTime(2023, 6, 1).AddMilliseconds(-1);
var ls = db.Queryable<RowToColumn>()
.Where(x => x.Date >= s && x.Date <= e)
.GroupBy(x => new { x.Code, x.Date, x.Val, x.T1, x.T2 })
.Select(x => new { x.Code, x.Date, x.T1, x.T2, Val = SqlFunc.AggregateSum(x.Val) })//求和可以自动处理空值
.ToPivotTable(it => it.Code, it => it.Date, it => it.Any() ? it.Sum(x => x.Val) : 0);
// 结束计时并获取经过的时间
stopwatch.Stop();
TimeSpan elapsedTime = stopwatch.Elapsed;
Console.WriteLine("T3:" + elapsedTime);
}
public static void Test4()
{
var db = DbHelper.GetNewDb();
// 创建 Stopwatch 对象并开始计时
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
var s = new DateTime(2023, 2, 1);
var e = new DateTime(2023, 6, 1).AddMilliseconds(-1);
var ls = db.Queryable<RowToColumn>()
.Where(x => x.Date >= s && x.Date <= e)
.GroupBy(x => new { x.Code, x.Date, x.Val, x.T1, x.T2 })
.Select(x => new { x.Code, x.Date, x.T1, x.T2, Val = SqlFunc.AggregateSum(x.Val) })//求和可以自动处理空值
.ToPivotList(it => it.Code, it => it.Date, it => it.Any() ? it.Sum(x => x.Val) : 0);
// 结束计时并获取经过的时间
stopwatch.Stop();
TimeSpan elapsedTime = stopwatch.Elapsed;
Console.WriteLine("T4:" + elapsedTime);
}
public static void Test5()
{
var db = DbHelper.GetNewDb();
@ -105,7 +188,7 @@ namespace MySqlTest
stopwatch.Stop();
TimeSpan elapsedTime = stopwatch.Elapsed;
Console.WriteLine("T000:" + elapsedTime);
Console.WriteLine("T6:" + elapsedTime);
}
}