我使用的是Windows Embedded CE 6.0 + SQL Server Compact 3.5的移动Motorola MC-2180设备。数据库在金士顿8 GB 10级存储卡上。
问题:数据库有1000000行,一个集群索引和一个非集群索引。当我第一次使用查询到数据库时(查询使用的索引) - 查询运行非常缓慢(~120分钟)。
可以加速或组织数据,以便查询执行时间很快(约5秒)?
总结:我们希望使用自己的数据库产品对此设备进行库存盘点。网络访问不是。
谢谢!
答案 0 :(得分:0)
您正在使用的设备没有非常好的硬件配置(它只有128到256 MB的RAM)。更好的是使用 MC45 或 MC3100系列之类的东西。 无论如何,您可能想要尝试将.sdf文件移动到设备的ROM内存中,这可能会加快您的时间,但忘记将其缩短5秒。
曾经想过.sdf必须拥有所有这些1Mi行。你不能隔离数据吗?
如果你想交换知识,我很乐意传递我的经验!
答案 1 :(得分:0)
不幸的是,客户不打算在不久的将来购买更高效的设备。
设备的内存有限。数据库大小约为2 GB,每年将增加大约500 MB。因此,决定使用microSD上的数据库(第10类)。
在您放置的日期,请尝试以下算法:
1000000行以上的所有表格分为表格,行数不超过500000。
在移动设备功能缓存的软件中实现(对数据库中的每个表进行一次查询)。这虽然耗时,但只需要一次,并且在快速访问缓存数据之后。
使用移动设备执行与远程数据库的同步(以向移动设备的数据库添加新信息)。在这种情况下,不需要缓存 - 数据库直接在设备上更新。