C# 什么';在SQLCe数据库中存储对象最有效的方法是什么?

C# 什么';在SQLCe数据库中存储对象最有效的方法是什么?,c#,.net,serialization,compact-framework,sql-server-ce,C#,.net,Serialization,Compact Framework,Sql Server Ce,我需要提高compact framework应用程序的性能,该应用程序使用SQLCe数据库在应用程序会话之间持久化缓存对象。目前,对象被序列化为XML并存储在SQLCe数据库中,但在运行了分析工具之后,这样做似乎有相当大的开销。我曾考虑将其更改为二进制序列化程序,但有人知道存储这些对象以便快速检索的更有效的方法吗?谢谢 更新:刚刚发现compact framework中不支持二进制序列化,因此没有选项。首先,您需要确定时间花在哪里。它是在序列化中还是在实际的数据插入中?如果不知道这一点,你就无法

我需要提高compact framework应用程序的性能,该应用程序使用SQLCe数据库在应用程序会话之间持久化缓存对象。目前,对象被序列化为XML并存储在SQLCe数据库中,但在运行了分析工具之后,这样做似乎有相当大的开销。我曾考虑将其更改为二进制序列化程序,但有人知道存储这些对象以便快速检索的更有效的方法吗?谢谢


更新:刚刚发现compact framework中不支持二进制序列化,因此没有选项。

首先,您需要确定时间花在哪里。它是在序列化中还是在实际的数据插入中?如果不知道这一点,你就无法有效地尝试改进行动。并且,仅供参考,提供二进制序列化。

导致开销的是实际的序列化本身,插入和选择相对较快。我正在使用EQATEC Profiler(),它可以分解执行时间。我来看看proto buf,谢谢。所以真正的问题不是如何有效地存储数据,而是如何加速序列化。嗯,不一定。我的问题是我需要在会话之间持久化数据。序列化对象并将其粘贴到数据存储中是一种方法,但我没有特别询问序列化问题,因为人们可能有更好的建议。我开始认为当前的实现方式是错误的,也许数据库中应该有一个合适的模式,而不是存储一个序列化的blob?您是如何对XML进行序列化的?