【问题标题】:SQL Server database and AndroidSQL Server 数据库和安卓
【发布时间】:2013-07-15 01:18:21
【问题描述】:

我正在使用 Android 设备连接到 SQL Server 数据库。是的,我知道这不是很可取,但一切都很好,除了......它很慢。

这是我的工作:

  • 打开连接
  • 从服务器数据库逐表下载我需要的数据(使用我在网上找到的连接器)
  • 逐个表插入sqlite

我只选择我需要的;大约有 12 张桌子,有些桌子有 300 件左右

然后我将一些数据发送到服务器数据库(从 2 个表中选择)

如何在不使用网络服务的情况下让事情更快地运行? (如果可能)

如果我使用网络服务会更快吗?

提前非常感谢

PS:我知道以在这种情况下不相关的方式访问数据库存在风险。

【问题讨论】:

    标签: android sql-server database


    【解决方案1】:

    您真的需要在 Android 上复制相同的架构吗?尝试将其缩小到仅基本数据,并可能为 Android 应用程序创建一个新的“轻”模式。不要使用select *,只获取您需要的列。即使这样,第一次同步也可能会相对较慢。同步一次后,您只能获得最新的项目,因此应该会更快。

    如果您想使用网络服务,您将不得不重新考虑您的模型:您将使用实体(客户、订单等),而不是同步表与行。如果传输相同数量的数据,Web 服务不会更快,甚至会更慢。 Web 服务的好处是您不必知道服务器上的确切架构,因此如果应用程序发生更改,您无需更改应用程序(当然,只要它具有您需要的所有数据) ;并且从服务的角度思考将使您只使用您需要的数据,从而使整个交互更快。而且,它当然可以在 Web 上运行,因此它可以与代理、NAT 等一起使用。

    【讨论】:

    • 使用 Web 服务“与实体合作”是什么意思?我已经在检索数据时使用了对象,我将它们放在对象的数组列表中,然后使用这些对象插入到 sqlite DB 中。这是错的吗?还有其他方法吗?
    • 通过“在实体中工作”,我的意思是使用 Web 服务,您将传输 10 个产品的列表(编码为 JSON、XML 或其他),而不是 10 行和 5 Product 表中的列。由于您使用 Java,因此您自然会在代码中使用对象,这与 Web 服务和/或数据库无关。
    【解决方案2】:

    初始同步后,您可以编写您的 Android 应用程序以将数据保留在 sqllite 中,并且仅在下一次连接时下载差异/更改。

    根据您的数据在服务器上的变化程度,此方法可以减少您的同步时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 1970-01-01
      相关资源
      最近更新 更多