作者:失---- | 来源:互联网 | 2023-06-16 10:21
SimpleSQLiteSELECTqueryonWindowsPhoneisveryslowonahigh-enddevice(Lumia930).WindowsP
Simple SQLite SELECT query on Windows Phone is very slow on a high-end device (Lumia 930).
Windows Phone上的简单SQLite SELECT查询在高端设备上非常慢(Lumia 930)。
select * from tableName
It's fetching around 15000 records (yeah, I need them all) and normally I'd expect it to not be this slow. However, it takes around 12-13 seconds to get all the records. I'm using SQLite.Net-PCL client.
它取得了大约15000条记录(是的,我需要它们全部)并且通常我希望它不会这么慢。但是,获取所有记录大约需要12-13秒。我正在使用SQLite.Net-PCL客户端。
What could be causing it? Is it true that it's due to the very slow wrapper? Is there a workaround, any way to improve it?
可能是什么原因造成的?是不是因为封装速度非常慢?是否有解决方法,有任何改进方法吗?
EDIT: I tried using SQLite PCL from Microsoft Open Technologies and I manually mapped property by property and I got much better results. So it seems that the count of rows, count of columns and the reflection, all combined, cause things to slow down. I am now working on trying to expose a similar functionality through SQLite.NET-PCL, the library which I'm using, to see how that would go.
编辑:我尝试使用Microsoft Open Technologies的SQLite PCL,我按属性手动映射属性,我得到了更好的结果。因此,似乎行数,列数和反射数都会导致事情变慢。我现在正在尝试通过SQLite.NET-PCL(我正在使用的库)公开类似的功能,以了解它将如何发展。
EDIT2: I marked Peter's answer as answer to my question as I was able to improve performance dramatically by manually mapping type by type using Prepare call and stepping through row by row.
EDIT2:我将Peter的答案标记为我的问题的答案,因为我能够通过使用Prepare调用和逐行逐步手动映射类型来显着提高性能。
2 个解决方案