一次LINQ性能研究
来源:互联网 发布:youtube翻墙软件 编辑:程序博客网 时间:2024/06/05 18:13
[Obsolete] public virtual string UpdateBySecondOld(string secondID, IEnumerable<string> firstIDs) { //Stopwatch sw = new Stopwatch(); //sw.Start(); TDataContext context = new TDataContext(); TEntity t = new TEntity(); var olds = context.GetTable<TEntity>().Where(t.SecondIDEquals(secondID)); context.GetTable<TEntity>().DeleteAllOnSubmit(olds); List<TEntity> urList = new List<TEntity>(); foreach (string firstID in firstIDs) { TEntity ur = new TEntity(); ur.ID = Guid.NewGuid().ToString(); ur.FirstID = firstID; ur.SecondID = secondID; urList.Add(ur); } context.GetTable<TEntity>().InsertAllOnSubmit(urList); context.SubmitChanges(); //sw.Stop(); //TimeSpan ts = sw.Elapsed; return Constances.ErrorMassage.SUCCEED; } public virtual string UpdateBySecond(string secondID, IEnumerable<string> firstIDs) { //Stopwatch sw = new Stopwatch(); //sw.Start(); TDataContext context = new TDataContext(); TEntity t = new TEntity(); string sql = "delete from " + TableName + " where " + t.SecondIDName + "='" + secondID + "'"; string sqlInsert = "insert into " + TableName + "(id," + t.FirstIDName + "," + t.SecondIDName + ") values({0},{1},{2})"; context.Connection.Open(); DbTransaction trans = context.Connection.BeginTransaction(); context.Transaction = trans; try { context.ExecuteCommand(sql); foreach (string firstID in firstIDs) { string guid = Guid.NewGuid().ToString(); context.ExecuteCommand(sqlInsert, guid, firstID, secondID); } context.Transaction.Commit(); //sw.Stop(); //TimeSpan ts = sw.Elapsed; return Constances.ErrorMassage.SUCCEED; } catch { context.Transaction.Rollback(); return Constances.ErrorMassage.FAILED; } }
如上,UpdateBySecondOld為LINQ函數,UpdateBySecond後來用ADO.NET改寫的ADO.NET的函數。
分別傳入18個firstID,分別測試10次,結果如下:
可見,ADO.NET速度是LINQ的兩倍。
這主要是因為LINQ的更新,刪除,都不是直接的,而是先要獲取數據,這樣就降低了效率。
用LINQ查詢,因該差別不大。
- 一次LINQ性能研究
- LINQ体系的研究
- LINQ 性能分析
- 一次性能测试总结
- 一次性能测试
- Linq to sql性能探讨
- WEP安全性能研究
- WEB性能测试研究
- 内存池性能研究
- 【转】webservice性能研究
- apache服务器性能研究
- ruby 性能研究
- DataReader 性能研究
- 专题:前端性能研究
- Redis性能测试研究
- LINQ : 在LINQ TO SQL中关闭ObjectTrackingEnabled提高性能
- 一次JQuery性能优化实战
- 一次sqlldr性能测试案例
- Flex 图片调整(Matrix 矩阵)(放大/放小/左旋转/右旋转/上移/下移/左移/右移/还原/调整 ...
- C# BP神经网络 类与实例
- 利用ACE日志策略进行日志运行时配置管理
- net user 用户名 密码 /add 建立用户
- Ubuntu 如何使用 Putty
- 一次LINQ性能研究
- Rsync 服务器搭建
- LED驱动程序
- 数学之美:GOOGLE新闻归类算法与余弦定理
- 基础加强 (一)
- android listView 更改simpleAdapter中布局layout中textView颜色
- mysql(1) 安装与基本命令
- BizTalk Server 事务机制
- 寻找生存的勇气