diff --git a/benchmarks/ShardingCoreBenchmark/EFCoreCrud.cs b/benchmarks/ShardingCoreBenchmark/EFCoreCrud.cs index 7c385e23..04b48f7e 100644 --- a/benchmarks/ShardingCoreBenchmark/EFCoreCrud.cs +++ b/benchmarks/ShardingCoreBenchmark/EFCoreCrud.cs @@ -64,76 +64,75 @@ namespace ShardingCore6x .UseSqlServer(connection) ) //.AddDefaultDataSource("ds0", "server=127.0.0.1;port=3306;database=db2;userid=root;password=L6yBtV6qNENrwBy7;") - //.AddDefaultDataSource("ds0", "Data Source=localhost;Initial Catalog=db2;Integrated Security=True;") - .AddDefaultDataSource("ds0", "Data Source=localhost;Initial Catalog=db1;Integrated Security=True;") + .AddDefaultDataSource("ds0", "Data Source=localhost;Initial Catalog=db2;Integrated Security=True;") .AddShardingTableRoute(op => { - //op.AddShardingTableRoute(); + op.AddShardingTableRoute(); }).End(); var buildServiceProvider = services.BuildServiceProvider(); buildServiceProvider.GetRequiredService().Start(); - //ICollection orders = new LinkedList(); + ICollection orders = new LinkedList(); - //using (var scope = buildServiceProvider.CreateScope()) - //{ - // var defaultShardingDbContext = scope.ServiceProvider.GetService(); - // defaultShardingDbContext.Database.EnsureCreated(); - // if (!defaultShardingDbContext.Set().Any()) - // { - // var begin = DateTime.Now.Date.AddDays(-8); - // var now = DateTime.Now; - // var current = begin; - // int i = 0; - // var x = new OrderStatusEnum[] { OrderStatusEnum.Failed, OrderStatusEnum.NotPay, OrderStatusEnum.Succeed }; - // while (current < now) - // { - // orders.Add(new Order() - // { - // Id = i.ToString(), - // Amount = i, - // Body = $"今天购买了的东西呀:{i}", - // CreateTime = current, - // Remark = $"这是我的备注哦备注哦备注哦:{i}", - // Payer = Guid.NewGuid().ToString("n"), - // OrderStatus = x[i % 3] - // }); - // i++; - // current = current.AddMilliseconds(100); - // } - // var sp = Stopwatch.StartNew(); - // defaultShardingDbContext.BulkInsert(orders.ToList()); - // sp.Stop(); - // Console.WriteLine($"批量插入订单数据:{orders.Count},用时:{sp.ElapsedMilliseconds}"); - // } + using (var scope = buildServiceProvider.CreateScope()) + { + var defaultShardingDbContext = scope.ServiceProvider.GetService(); + defaultShardingDbContext.Database.EnsureCreated(); + if (!defaultShardingDbContext.Set().Any()) + { + var begin = DateTime.Now.Date.AddDays(-8); + var now = DateTime.Now; + var current = begin; + int i = 0; + var x = new OrderStatusEnum[] { OrderStatusEnum.Failed, OrderStatusEnum.NotPay, OrderStatusEnum.Succeed }; + while (current < now) + { + orders.Add(new Order() + { + Id = i.ToString(), + Amount = i, + Body = $"今天购买了的东西呀:{i}", + CreateTime = current, + Remark = $"这是我的备注哦备注哦备注哦:{i}", + Payer = Guid.NewGuid().ToString("n"), + OrderStatus = x[i % 3] + }); + i++; + current = current.AddMilliseconds(100); + } + var sp = Stopwatch.StartNew(); + defaultShardingDbContext.BulkInsert(orders.ToList()); + sp.Stop(); + Console.WriteLine($"批量插入订单数据:{orders.Count},用时:{sp.ElapsedMilliseconds}"); + } - //} - //using (var scope = buildServiceProvider.CreateScope()) - //{ - // var defaultShardingDbContext = scope.ServiceProvider.GetService(); - // if (!defaultShardingDbContext.Set().Any()) - // { - // var sp = Stopwatch.StartNew(); - // var bulkShardingEnumerable = defaultShardingDbContext.BulkShardingTableEnumerable(orders.ToList()); - // foreach (var keyValuePair in bulkShardingEnumerable) - // { - // keyValuePair.Key.BulkInsert(keyValuePair.Value.ToList()); - // } - // sp.Stop(); - // Console.WriteLine($"批量插入订单数据:{orders.Count},用时:{sp.ElapsedMilliseconds}"); - // } - //} + } + using (var scope = buildServiceProvider.CreateScope()) + { + var defaultShardingDbContext = scope.ServiceProvider.GetService(); + if (!defaultShardingDbContext.Set().Any()) + { + var sp = Stopwatch.StartNew(); + var bulkShardingEnumerable = defaultShardingDbContext.BulkShardingTableEnumerable(orders.ToList()); + foreach (var keyValuePair in bulkShardingEnumerable) + { + keyValuePair.Key.BulkInsert(keyValuePair.Value.ToList()); + } + sp.Stop(); + Console.WriteLine($"批量插入订单数据:{orders.Count},用时:{sp.ElapsedMilliseconds}"); + } + } _defaultDbContext = ShardingContainer.GetService(); _defaultShardingDbContext = ShardingContainer.GetService(); - //_virtualTableManager = ShardingContainer.GetService>(); - //_virtualTable = _virtualTableManager.GetVirtualTable(); - //_routeTailFactory = ShardingContainer.GetService(); - //_streamMergeContextFactory = - // ShardingContainer.GetService>(); - //_actualConnectionStringManager = new ActualConnectionStringManager(); - //_virtualDataSource = ShardingContainer.GetService>(); - // _dataSourceRouteRuleEngineFactory = ShardingContainer.GetService>(); - // _tableRouteRuleEngineFactory = ShardingContainer.GetService>(); + _virtualTableManager = ShardingContainer.GetService>(); + _virtualTable = _virtualTableManager.GetVirtualTable(); + _routeTailFactory = ShardingContainer.GetService(); + _streamMergeContextFactory = + ShardingContainer.GetService>(); + _actualConnectionStringManager = new ActualConnectionStringManager(); + _virtualDataSource = ShardingContainer.GetService>(); + _dataSourceRouteRuleEngineFactory = ShardingContainer.GetService>(); + _tableRouteRuleEngineFactory = ShardingContainer.GetService>(); }