在 SQLCe 数据库中存储对象的最有效方法是啥?
Posted
技术标签:
【中文标题】在 SQLCe 数据库中存储对象的最有效方法是啥?【英文标题】:What's the most efficient way to store objects in a SQLCe Database?在 SQLCe 数据库中存储对象的最有效方法是什么? 【发布时间】:2009-06-25 10:01:32 【问题描述】:我需要提高紧凑型框架应用程序的性能,该应用程序使用 SQLCe 数据库在应用程序的会话之间持久化缓存对象。目前,对象被序列化为 XML 并存储在 SQLCe 数据库中,但是在运行分析工具后,这样做似乎有相当大的开销。我正在考虑将其更改为二进制序列化程序,但有人知道存储这些对象以快速检索的更有效方法吗?谢谢。
更新:刚刚发现紧凑框架中没有二进制序列化支持,所以不是一个选项。
【问题讨论】:
你是如何序列化到 XML 的? 【参考方案1】:首先,您需要确定时间花在哪里。是在序列化中还是在实际数据插入中?如果不知道这一点,您就无法有效地尝试改进行动。而且,仅供参考,proto-buf 提供二进制序列化。
【讨论】:
实际的序列化本身造成了开销,插入和选择相对较快。我正在使用 EQATEC Profiler (eqatec.com/tools/profiler),它可以缩短执行时间。我去看看 proto-buf,谢谢。 所以真正的问题不在于如何有效地存储数据,而在于如何加快序列化速度。 嗯,不一定。我的问题是我需要在会话之间保留数据。序列化对象并将它们粘贴到数据存储中是一种方法,但我没有专门询问序列化,因为也许人们有更好的建议。我开始认为当前的实现方式是错误的,也许数据库中应该有一个适当的模式而不是存储一个序列化的 blob?以上是关于在 SQLCe 数据库中存储对象的最有效方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
在 Marklogic 数据库中存储名称/值对的最有效方法是啥