2012-03-08 76 views
0

我有一个wpf应用程序,它将项目保存在SQL Server Compact Edition文件中。 该文件是从构成数据上下文的类列表中动态创建的。 当我遇到以下情况时,我遇到了加载时间较慢的问题。增加SQL精简版读取速度

试图进入我的应用程序这个我加载加载包含ItemB

的列表在我的DataContext这个链接表1,链接表从表1为表2和表2

意达的列表来自Sql Server的所有Table1行。 对于每个Table1行的返回,我将任何信息添加到New ItemA。然后,我查找通过链接表链接到当前Table1行的任何Table2行。对于返回的所有Table2行,我将它们转换为ItemB列表并将它们添加到ItemA。

我最终得到了一个ItemA列表,每个对象都包含一个ItemB列表。问题是我正在对数据库进行多次调用,并且在获得几百个项目时推动了加载时间。 没有多次调用,有没有更好的方法呢? 如果不是什么是加快应用程序的最佳方式?我应该缓存ItemA吗?如果是的话,最好的方法是做什么?

+0

根据迄今为止没有答案,事实上,我设法加快应用程序(1分钟加载时间到毫秒)的唯一方法是通过二进制序列化所有对象到磁盘并在加载时回到内存中,我想要彻底抛弃SQL Server CE。我想最终将此应用程序移植到Windows 8 Metro,因为它不支持sql ce,这似乎是一个更令人信服的理由。 - 有没有人有任何建议,我的序列化文件可以增长之前,它开始变得不可行或有任何其他原因,为什么这是一个坏主意? – Oli 2012-03-18 15:13:02

回答

0

没有太多答案,但我相信sql ce对于上面提出的场景来说速度不够快。因此,我将我的后备库更改为内存列表,并按照上面的注释序列化为文件。 经过一个月的测试,我没有遇到任何问题,并大大提高了我的应用程序的速度。