public decimal GetDeleteTimeStatisticsAddRangeWithDbContextRecycle(bool useDbSetToSave) { var fifteenThousandAddressWithoutId = MakeFifteenThousandAddress(generateIncrementalId: false); var amazonAddressInsertLabMapper = new AmazonAddressInsertLabMapper(); var amazonAddressDeleteLabMapper = new AmazonAddressDeleteLabMapper(); var fiveThousandUpdatesTimes = new List <decimal>(); using (var amazonCodeFirstContext = new AmazonCodeFirstDbContext()) { amazonAddressInsertLabMapper.CleanAddressData(amazonCodeFirstContext); } amazonAddressInsertLabMapper.InsertAddressWithDbSetWithAddRange(fifteenThousandAddressWithoutId); for (int i = 0; i < 3; i++) { var fiveThousandAddress = MakeFiveThousandAddress((i * 5000) + 4); using (var amazonCodeFirstContext = new AmazonCodeFirstDbContext()) { var fiveThousandUpdateTime = useDbSetToSave ? amazonAddressDeleteLabMapper.DeleteAddressWithDbSetWithAddRange(amazonCodeFirstContext, fiveThousandAddress) : amazonAddressDeleteLabMapper.DeleteAddressWithDbContextWithAddRange(amazonCodeFirstContext, fiveThousandAddress); fiveThousandUpdatesTimes.Add(fiveThousandUpdateTime); } } var fiveThousandUpdateTimeAverage = Enumerable.Average(fiveThousandUpdatesTimes); var insertTime = decimal.Divide(fiveThousandUpdateTimeAverage, 5_000); return(insertTime); }
public decimal GetDeleteTimeWithBulkOperation() { var fifteenThousandAddressWithoutId = MakeFifteenThousandAddress(generateIncrementalId: false); var fifteenThousandAddressIlist = MakeFifteenThousandAddressIlist(); var amazonAddressInsertLabMapper = new AmazonAddressInsertLabMapper(); var amazonAddressDeleteLabMapper = new AmazonAddressDeleteLabMapper(); amazonAddressInsertLabMapper.CleanAddressData(); amazonAddressInsertLabMapper.InsertAddressWithDbSetWithAddRange(fifteenThousandAddressWithoutId); var deleteTimeAllRecords = amazonAddressDeleteLabMapper.DeleteAddressWithBulkOperation(fifteenThousandAddressIlist); var deleteTime = decimal.Divide(deleteTimeAllRecords, fifteenThousandAddressIlist.Count()); return(deleteTime); }
public decimal GetDeleteTimeStatisticsAddRange(bool useDbSetToSave) { var fifteenThousandAddressWithoutId = MakeFifteenThousandAddress(generateIncrementalId: false); var fifteenThousandAddress = MakeFifteenThousandAddress(generateIncrementalId: true); var amazonAddressInsertLabMapper = new AmazonAddressInsertLabMapper(); var amazonAddressDeleteLabMapper = new AmazonAddressDeleteLabMapper(); using (var amazonCodeFirstContext = new AmazonCodeFirstDbContext()) { amazonAddressInsertLabMapper.CleanAddressData(amazonCodeFirstContext); amazonAddressInsertLabMapper.InsertAddressWithDbSetWithAddRange(fifteenThousandAddressWithoutId); var deleteTimeAllRecords = useDbSetToSave ? amazonAddressDeleteLabMapper.DeleteAddressWithDbSetWithAddRange(fifteenThousandAddress) : amazonAddressDeleteLabMapper.DeleteAddressWithDbContextWithAddRange(fifteenThousandAddress); var deleteTime = decimal.Divide(deleteTimeAllRecords, fifteenThousandAddress.Count()); return(deleteTime); } }
public DeleteTimeStatistics GetDeleteTimeStatisticsWithDbContextRecycle(bool useDbSetToSave) { var deleteTimeStatistics = new DeleteTimeStatistics(); var rowsDeleted = 0; var fifteenThousandAddressWithoutId = MakeFifteenThousandAddress(generateIncrementalId: false); var fifteenThousandAddress = MakeFifteenThousandAddress(generateIncrementalId: true); var rowCutOffToEmptyTable = Faker.RandomNumber.Next(5, 100); var rowCutOffToTableWithFiveThousandRows = Faker.RandomNumber.Next(6_000, 9_000); var rowCutOffToTableWithTenThousandRows = Faker.RandomNumber.Next(11_000, 14_000); var tenDeleteTimes = new List <long>(); var amazonAddressInsertLabMapper = new AmazonAddressInsertLabMapper(); var amazonAddressDeleteLabMapper = new AmazonAddressDeleteLabMapper(); amazonAddressInsertLabMapper.CleanAddressData(); amazonAddressInsertLabMapper.InsertAddressWithDbSetWithAddRange(fifteenThousandAddressWithoutId); foreach (var address in fifteenThousandAddress) { var deleteTime = useDbSetToSave ? amazonAddressDeleteLabMapper.DeleteAddressWithDbSet(address) : amazonAddressDeleteLabMapper.DeleteAddressWithDbContext(address); rowsDeleted++; if (IsRowToBeComputed(rowsDeleted, rowCutOffToEmptyTable)) { tenDeleteTimes.Add(deleteTime); if (tenDeleteTimes.Count == _tenRegisters) { var deleteTimesAverage = Enumerable.Average(tenDeleteTimes); deleteTimeStatistics.MillisecondsAverageBasedOnTenDeletesWithEmptyTable = deleteTimesAverage; tenDeleteTimes.Clear(); } } if (IsRowToBeComputed(rowsDeleted, rowCutOffToTableWithFiveThousandRows)) { tenDeleteTimes.Add(deleteTime); if (tenDeleteTimes.Count == _tenRegisters) { var deleteTimesAverage = Enumerable.Average(tenDeleteTimes); deleteTimeStatistics.MillisecondsAverageBasedOnTenDeletesWithTableWithFiveThousandsRows = deleteTimesAverage; tenDeleteTimes.Clear(); } } if (IsRowToBeComputed(rowsDeleted, rowCutOffToTableWithTenThousandRows)) { tenDeleteTimes.Add(deleteTime); if (tenDeleteTimes.Count == _tenRegisters) { var deleteTimesAverage = Enumerable.Average(tenDeleteTimes); deleteTimeStatistics.MillisecondsAverageBasedOnTenDeletesWithTableWithTenThousandsRows = deleteTimesAverage; tenDeleteTimes.Clear(); } } } return(deleteTimeStatistics); }