关于.net操作sql server数据库的性能问题

有袁人 2016-10-18 08:43:41
有个小项目,大致流程是:
1. 从数据库的表A获取一些数据,放在内存中(如:500条记录)
2. 遍历处理每一条数据
2.1 根据这条数据中的某些字段,从数据库的表B中查一条其他数据
2.2 组合出一条新的数据写入数据库中的另外一张表C,有则更新。

使用LINQ To SQL操作,profiler监测:2600条sql指令约耗时12s.

问:这个效率正常吗?怎么可以提高一下?
...全文
942 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
估计N+1了吧,你要看执行了多少次请求,或者是不是生成的sql有性能问题
有袁人 2016-10-19
  • 打赏
  • 举报
回复
引用 1 楼 q107770540 的回复:
12s长了些 为何要放到内存中处理呢? LINQ2SQL有延迟查询的啊
因为有五六个功能方法来处理这500条数据,不放在内存里会多次访问数据库取这些数据。
  • 打赏
  • 举报
回复
那你这个不是N+1问题,是多次连接数据库问题,对于这种连接多次的问题,一般都是通过批量执行的方式
q107770540 2016-10-19
  • 打赏
  • 举报
回复
12s长了些 为何要放到内存中处理呢? LINQ2SQL有延迟查询的啊
有袁人 2016-10-19
  • 打赏
  • 举报
回复
引用 3 楼 starfd 的回复:
估计N+1了吧,你要看执行了多少次请求,或者是不是生成的sql有性能问题
N+1是什么呀? 遍历1600条数据,每次遍历执行3条或4条请求。全部完成需要12s。

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧