【问题标题】:Out of memory in SQLite using nhibernate使用休眠的 SQLite 内存不足
【发布时间】:2015-01-29 11:45:49
【问题描述】:

我想知道是否有办法驱逐/清除会话,即使我使用 SQLite。

我有很多数据要保存,并在一个事务中提交。 每次保存后我都使用 session.flush() 然后 session.evict() ,但是内存仍然升起并且有溢出。

有什么想法吗? 非常感谢。

【问题讨论】:

    标签: c# sqlite nhibernate


    【解决方案1】:

    由于以下原因,您在 Session.Abandon 之前需要 Session.Clear()

    Session.Clear() 将清除所有键的值,但不会触发会话结束事件。

    Session.Abandon() 不会清除当前请求的值。如果请求另一个页面,则该页面的值将消失。但是,放弃将引发事件。

    使用 Session.Clear() 而不是使用 Session.Abandon() 会更好,因为在调用 Session.Abandon() 之后值仍然存在于会话中,但在调用 Session.Clear() 之后会被删除。

    【讨论】:

    • 我没有使用 asp,会话是一个 isession 对象,所以我没有放弃功能。我还需要从会话中删除所有内容以防止内存 ezxception。
    • 会有帮助吗? stackoverflow.com/questions/189280/…@OrCohen
    • 这篇文章对我有什么帮助?
    【解决方案2】:

    您应该在插入大量记录时使用IStatelessSession。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2011-09-02
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多