diff --git a/FreeSql.Tests.PerformanceTests/MySqlAdoTest.cs b/FreeSql.Tests.PerformanceTests/MySqlAdoTest.cs index 1d1f5754..5e953aa0 100644 --- a/FreeSql.Tests.PerformanceTests/MySqlAdoTest.cs +++ b/FreeSql.Tests.PerformanceTests/MySqlAdoTest.cs @@ -18,7 +18,7 @@ namespace FreeSql.Tests.PerformanceTest { time.Restart(); List dplist1 = null; using (var conn = g.mysql.Ado.MasterPool.Get()) { - dplist1 = Dapper.SqlMapper.Query(conn.Value, "select * from song").ToList(); + dplist1 = Dapper.SqlMapper.Query(conn.Value, "select * from song limit 1").ToList(); } time.Stop(); sb.AppendLine($"Elapsed: {time.Elapsed}; Query Entity Counts: {dplist1.Count}; ORM: Dapper"); @@ -59,6 +59,70 @@ namespace FreeSql.Tests.PerformanceTest { } + [Fact] + public void QueryLimit10() { + var sb = new StringBuilder(); + var time = new Stopwatch(); + + time.Restart(); + List dplist1 = new List(); + for (var a = 0; a < 10000; a++) { + using (var conn = g.mysql.Ado.MasterPool.Get()) { + dplist1.AddRange(Dapper.SqlMapper.Query(conn.Value, "select * from song limit 10").ToList()); + } + } + time.Stop(); + sb.AppendLine($"Elapsed: {time.Elapsed}; Query Entity Counts: {dplist1.Count}; ORM: Dapper"); + + time.Restart(); + List<(int, string, string)> dplist2 = new List<(int, string, string)>(); + for (var a = 0; a < 10000; a++) { + using (var conn = g.mysql.Ado.MasterPool.Get()) { + dplist2.AddRange(Dapper.SqlMapper.Query<(int, string, string)>(conn.Value, "select * from song limit 10").ToList()); + } + } + time.Stop(); + sb.AppendLine($"Elapsed: {time.Elapsed}; Query Tuple Counts: {dplist2.Count}; ORM: Dapper"); + + time.Restart(); + List dplist3 = new List(); + for (var a = 0; a < 10000; a++) { + using (var conn = g.mysql.Ado.MasterPool.Get()) { + dplist3.AddRange(Dapper.SqlMapper.Query(conn.Value, "select * from song limit 10").ToList()); + } + } + time.Stop(); + sb.AppendLine($"Elapsed: {time.Elapsed}; Query Dynamic Counts: {dplist3.Count}; ORM: Dapper"); + + + + + time.Restart(); + List t3 = new List(); + for (var a = 0; a < 10000; a++) { + t3.AddRange(g.mysql.Ado.Query("select * from song limit 10")); + } + time.Stop(); + sb.AppendLine($"Elapsed: {time.Elapsed}; Query Entity Counts: {t3.Count}; ORM: FreeSql*"); + + time.Restart(); + List<(int, string, string)> t4 = new List<(int, string, string)>(); + for (var a = 0; a < 10000; a++) { + t4.AddRange(g.mysql.Ado.Query<(int, string, string)>("select * from song limit 10")); + } + time.Stop(); + sb.AppendLine($"Elapsed: {time.Elapsed}; Query Tuple Counts: {t4.Count}; ORM: FreeSql*"); + + time.Restart(); + List t5 = new List(); + for (var a = 0; a < 10000; a++) { + t5.AddRange(g.mysql.Ado.Query("select * from song limit 10")); + } + time.Stop(); + sb.AppendLine($"Elapsed: {time.Elapsed}; Query Dynamic Counts: {t3.Count}; ORM: FreeSql*"); + + } + [Fact] public void ToList() { var sb = new StringBuilder();