首页 新闻 会员 周边

如何测试两条Linq 语句执行查询所花费的时长。我想比较这两条语句的查询效率。具体语句见博问内容。谢谢

0
悬赏园豆:20 [已解决问题] 解决于 2012-07-31 08:15

如题,今有两条Linq语句,我采用的是Linq to entity ,主要查询DB_TeamTable 表中所有记录,目前有10000条测试数据。

DB_TestEntities db = new DB_TestEntities();

第一条:

   var result = from s in db.DB_TeamTable select s;

第二条:看了PLinq 实现并行查询,就用了下,不知使用正确了没,忘大侠指点。

   var presult = from d in db.DB_TeamTable.AsParallel() select d;

我想测试这两条查询语句,哪个效率更高。并能分别显示他们查询耗时。先谢过了。

-------------------------------------------------------------------------------------

后续:我自己想了个方法,但是观察不到很明显的结果,应该说是错误的。具体实现如下:

      一、 测试第一条耗时,方法内部实现:       

             lblOneTime.Text = string.Empty; 
             DateTime dt3 = DateTime.Now;
             var presult = from s in db.DB_TeamTable select s;
             DateTime dt4 = DateTime.Now;
             lblOneTime.Text = (dt4 - dt3).ToString();

     二、测试第二条耗时,方法内部实现:

             lblTwoTime.Text = string.Empty;

             DateTime dt1 = DateTime.Now;
             var presult = from d in db.DB_TeamTable.AsParallel() select d;
             DateTime dt2 = DateTime.Now;
             lblTwoTime.Text = (dt2 - dt1).ToString();

这种方式感觉不对,没观察到具体结果,而且每次结果也是不稳定的。

      

icyme的主页 icyme | 初学一级 | 园豆:77
提问于:2012-07-28 16:05
< >
分享
最佳答案
1

SQL Profiler 跟踪一下生成的sql语句,看看相关的读写次数!!比你这更直观

收获园豆:10
Angkor--:-- | 小虾三级 |园豆:1086 | 2012-07-28 20:45

朋友能说说具体实现么,SQL Profiler没用过,还有朋友你说说的跟踪一下生成的sql语句,我不知怎么查看我Linq to entity 中写的语句转换成sql 语句在哪里查看。如这句 var presult = (from s in db.DB_TeamTable select s).ToList(); 转换成的sql 语句,我不知在哪里查看。谢谢!

icyme | 园豆:77 (初学一级) | 2012-07-29 17:55

@Technology: 

Angkor--:-- | 园豆:1086 (小虾三级) | 2012-07-29 23:16
其他回答(2)
0

Stopwatch sw = new Stopwatch();
            sw.Start();
            //这里填写要执行的代码
            sw.Stop();
            Console.WriteLine("总运行时间:" + sw.Elapsed);
            Console.WriteLine("测量实例得出的总运行时间(毫秒为单位):" + sw.ElapsedMilliseconds);
            Console.WriteLine("总运行时间(计时器刻度标识):" + sw.ElapsedTicks);
            Console.WriteLine("计时器是否运行:" + sw.IsRunning.ToString());

收获园豆:10
Tom.汤 | 园豆:3028 (老鸟四级) | 2012-07-29 11:31

感谢朋友的热情回答,又让我学习了一个新的类 Stopwatch 。非常感谢,我按照朋友这种方式测试了下,测试结果也不是很“稳定”,就是经常变化。

支持(0) 反对(0) icyme | 园豆:77 (初学一级) | 2012-07-29 17:57
0

楼上正解!

轻狂の书生 | 园豆:1042 (小虾三级) | 2012-07-29 17:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册