我使用的是带有Windows嵌入式CE 6.0+SQL Server Compact 3.5的摩托罗拉MC-2180移动设备。数据库是在存储卡金斯敦8GB10类。
问题:数据库有1000000行、一个集群索引和一个非集群索引。当我第一次使用对数据库的查询(查询使用索引)时,查询运行非常慢(~120分钟)。
是否可以加速或组织数据以使查询执行时间快速(约5秒)?
总之:我们希望使用该设备自己的数据库产品对其库存进行盘点。网络访问不是。
谢谢!
您使用的设备没有很好的硬件配置(它只有128到256 MB的RAM)。最好使用MC45或MC3100系列之类的产品。无论如何,你可能想尝试将.sdf文件移动到设备的ROM内存中,这可能会加快你的时间,但忘记了将其设置为5秒。
有没有想过.sdf是否必须具有所有1Mi行。你不能把数据分开吗?
如果你想交流知识,我很乐意把我的经验传授给你!
不幸的是,客户不打算在不久的将来购买更高效的设备。
设备内存有限。数据库大小约为2 GB,每年将增加约500 MB。因此,决定在microSD(类10)上使用raspolojit数据库。
在你放置的日期尝试以下算法:
-
将所有超过1000000行的表划分为行数不超过500000的表。
-
在移动设备功能缓存的软件中实现(数据库中的每个表一个查询)。这虽然很耗时,但仅在快速访问缓存数据之后才需要。
-
使用移动设备执行与远程数据库的同步(以向移动设备的数据库添加新信息)。在这种情况下,不需要缓存——数据库直接在设备上更新。