none
Nhibnate操作数据慢那 RRS feed

  • 问题

  • foreach (StationInfo temp in listInfo) { 慢 var StationGroup = MyFramework.SNH.DaoService.GetService<Model.StationGroup>().Get(p => p.GroupName == temp.Lng); temp.Lng = null; temp.GroupId = StationGroup.Id; 慢 MyFramework.SNH.DaoService.GetService<Model.StationInfo>().Add(temp); }

    200条数据,加粗的部分速度慢,怎么解决?


    please verify my account



    • 已编辑 lctk 2016年10月25日 3:30
    2016年10月25日 3:23

全部回复

  • 你好,

    根据你的代码来看,首先你处理的数据非常多,这个造成你运行速度慢的主要原因。

    其次,你使用了foreach来添加查询数据并且添加,这个操作本身就十分慢。

    因为你需要打开数据库然后关闭它,然后再打开它再关闭它。

    这个过程很耗时。

    我建议你可以一次查询出所有的值,然后再对这些查询的值进行处理。

    另外,我觉得你group表中应该有索引值,如果能够查询索引而不是查询栏目名的话,会更快。


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年10月27日 2:21
  • 你好,

    根据你的代码来看,首先你处理的数据非常多,这个造成你运行速度慢的主要原因。

    其次,你使用了foreach来添加查询数据并且添加,这个操作本身就十分慢。

    因为你需要打开数据库然后关闭它,然后再打开它再关闭它。

    这个过程很耗时。

    我建议你可以一次查询出所有的值,然后再对这些查询的值进行处理。

    另外,我觉得你group表中应该有索引值,如果能够查询索引而不是查询栏目名的话,会更快。


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    使用了foreach来添加查询数据并且添加,这个操作本身就十分慢,

    是不用foreach,具体来说用什么那?怎么改那?




    please verify my account

    2016年10月27日 4:26
  • 你好,

    简单点来讲,最快的查询方法就是使用SQL语句来查。

    我的意思是,你可以先找出所有你想要的值通过拼接SQL查询语句来查。

    然后对结果的table进行insert操作。这样最快。

    至于如何优化的你ORM的架构,这个的话,就像我说的,可以优先使用索引来进行查询。


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年10月31日 8:50
  • 你好,我不同意你的观点

    我认为应该用parallel.foreach那


    please verify my account

    2016年11月1日 0:28