zoukankan      html  css  js  c++  java
  • Castle.ActiveRecord中Save与SaveAndFlush的性能差别

    Castle.ActiveRecord中Save与SaveAndFlush的性能差别

    1.一看就知道两者是有性能差距的,我把Save想成是“延迟写入”。

    2.原来在某次试验的时候,发现主从表的情况下,先把主表SaveAndFlush一下,
    可以获取到相应的Id,但这次测试的结果是,只要Save,就可以获取到Id。
    主键使用的PrimaryKeyType.GuidComb。

    3.如果数据增多,速度减慢的程度不是线性的,最后会相当慢。
    测试结果:
    30条数据只要1-2秒,
    200条记录,对象数400左右的情况下,在一个事务中用SaveAndFlush更新数据几十分钟
    也不能完成,超时,数据库锁表。
    跟踪发现执行时越来越慢,会出现很多OnFlushDirty操作, Flush大量对象;

    因为作了详细的每个对象更新日志保存,SP_LOCK看到10多万个锁。

    4.修改为Save方式,200条数据只需要3秒左右。400条数据7秒左右。

    5.没想到会有这么大的差距,问题暂时解决,没有时间继续研究更多内容。

    另外,StateLessSession据说效率会更高,但我的ActiveRecord找不到这个对象。

  • 相关阅读:
    RDD的基本命令
    python 数据类型
    RDD基础
    sql优化
    python文件操作
    Python之xlsx文件与csv文件相互转换
    ValueError: Some of types cannot be determined by the first 100 rows, please try again with sampling
    python
    python操作dataFrame
    python 列表,元祖,字典
  • 原文地址:https://www.cnblogs.com/nonlyli/p/1403227.html
Copyright © 2011-2022 走看看