1

我正在编写一个示例程序,它将测试数据库连接性能(MySQL、Oracle、MSSQL)。

所有数据都使用:准备和排队,InsertOnSubmit()然后使用:推送到数据库:

DateTime dbInsertStartTime = DateTime.Now;
db.SubmitChanges() ;
DateTime dbInsertStopTime = DateTime.Now;

我能够以毫秒为单位获得操作时间。

如何获取排队写入数据库的数据大小?

该程序允许用户定义要生成的数据数量(如 10 个数据类型 A、4 个数据类型 B 等),而不是模拟实际工作条件的数量。

因此,我想知道生成了多少数据。

4

1 回答 1

0

DataContext有一个GetChangeSet()方法,它返回一个ChangeSet包含所有已添加、修改或删除的对象的方法——每个对象一个集合。使用更多的 Linq,您可以将它们分成类型并计算它们以查看每种类型的数量。

此外,正如 It'sNotALie 在评论中指出的那样,当您真正应该使用计时操作System.Diagnostics.Stopwatch而不是DateTime; 它具有更好的精度。

笔记:

这个答案是指 Linq-To-SQL 的DataContext. 对于那些使用实体框架的人,DbContext.SaveChanges()返回一个int指示有多少实体受到影响,您可以使用该SavingChanges事件来检查ObjectStateManager并以这种方式获取对象状态。

于 2013-08-08T09:30:59.137 回答