2011-09-12 8 views
0

Androidデバイスを使用してSQL Serverデータベースに接続しています。はい、私は非常にお勧めはありませんが、すべてが正常に動作していないことを知っている...まあそれは遅いです。ここでSQL ServerデータベースとAndroid

は、私が何をすべきかです:

  • オープンたっは
  • ダウンロードテーブルテーブルで、私は(私はオンラインで見つけるコネクタ付き)サーバデータベース
  • から必要なデータをsqliteのにテーブルでテーブルを挿入します

私は必要なものだけを選択します。どのように私は事は、Webサービスを使用せずに高速に動作させることができ

が約12のテーブルがあり、一部には、300の項目

ようにそれから私は(2つのテーブルから選択)をサーバーデータベースにいくつかのデータを送ってきましたか? (可能であれば)

ウェブサービスを使用すると高速になりますか?

事前にどうもありがとう

PS:私はDBに彼らがこの場合は関係ありませんその方法へのアクセスについてのリスクがあることを知っています。

答えて

0

本当にAndroidで同じスキーマを複製する必要がありますか?必要なデータのみに絞り込み、Androidアプリ用の新しい「軽い」スキーマを作成してみましょう。 select *を使用しないでください。必要な列のみを取得してください。これでも、最初の同期はおそらく比較的遅いでしょう。一度同期した後は、最新のアイテムしか取得できないため、速く進む必要があります。

Webサービスを使用する場合は、モデルを再考する必要があります。テーブルを行と同期させるのではなく、エンティティ(顧客、注文など)で作業します。同じ量のデータを転送すると、Webサービスは高速にならず、速度も遅くなることがあります。 Webサービスのメリットは、サーバー上の正確なスキーマを知る必要がないため、変更されたアプリケーションを変更する必要はない(もちろん、必要なすべてのデータがある限り) ;サービスという観点から考えれば、必要なデータだけを使用できるようになり、インタラクション全体をより速くすることができます。もちろん、Web上で動作するので、プロキシ、NATなどと連携して動作します。

+0

webserviceで「エンティティを使って作業する」とはどういう意味ですか?私はすでにオブジェクトを扱っていますが、データを取得してオブジェクトのarraylistに入れ、そのオブジェクトを使ってsqlite DBに挿入します。違いますか?別の方法がありますか? – vallllll

+0

「エンティティで作業する」とは、Webサービスでは、「Product」テーブルから5列の10行ではなく、10個の製品(JSON、XMLなどでエンコードされたもの)のリストを転送することを意味します。 Javaを使用するので、自然にコード内のオブジェクトを使用しますが、これはWebサービスやデータベースとは関係ありません。 –

0

最初の同期の後で、Androidアプリをコード化してsqlliteでデータを保持し、次回の接続時にのみ差分や変更をダウンロードできます。

データがサーバー上でどのように変更可能かによって、この方法では同期時間が短縮される可能性があります。

関連する問題