2017-01-13 15 views
0

Xamarin FormsアプリケーションでRefitを使用してWeb APIを呼び出そうとしていますが、エミュレータではうまく機能しているようです(2〜5秒)。実際のアンドロイド携帯電話でほとんどの時間がクラッシュするか、まれにしか戻ってこない場合があります。私はAzureで基本的な5 DTU SQLデータベースを使用しています。これはAzure Web APIが電話で遅くなりますが、Androidのエミュレータでうまく動作します

enter image description here

理由だろう私は、デバイスから2つの呼び出しを行うことを試みたと上記グラフのスパイクはそれの結果です。最初のクエリには少し時間がかかり、返されると(今度は返信を受け取りました)、私は の遅延の後にも返す2番目の呼び出しを行います。私はすべてのインデックスを使用する必要がありますか?

Performance Overview - SQL Database

+0

データベースの負荷はどれくらいですか? 電話で照会しようとしているデータを処理するのに適切なスループットを得ていますか?私はモバイルネットワークがあなたのデータベースへの接続に導入する可能性のある遅延に精通していません。 –

答えて

0

私はAzureの上の基本的な5 DTUのSQLデータベースを使用しています。これが理由である可能性があります

はい - データベースの層を変更することによって問題が解決される可能性はあります。グラフは、そのクエリがその5DTUの制限を大きく超えていることを示しています。クエリが複雑であるか、データセットのサイズが大きい場合は、S-tierデータベースのパフォーマンスが向上する可能性があります。 (S0またはS1を試して、より良いパフォーマンスが得られるかどうかを確認してください)

インデックスをすべて使用する必要がありますか?

実行しているクエリの種類によっては、インデックスがデータベースのパフォーマンスに大きな影響を与える場合があります。 (パフォーマンスをこのように最適化できるかどうかは確かに調べる必要があります)Azure SQLデータベースのいくつかの機能は、クエリのパフォーマンスを調べたり改善したりするのに役立ちます。SQL Database Advisor & SQL Query Store

+0

返信Danのおかげで、私はEFコードをまず使用していますが、それが原因であるかどうかはわかりませんが、まだAndroid用のVisual Studioエミュレータでうまくいく理由は説明されていません。何らかの認証問題である可能性があります。 – tribal

+0

あなたの問題は、あなたのテストが5dtuを超える可能性のあるローカルテストデータベースをスピンアップさせるかもしれないということかもしれません。あなたは同じデータベースに対してテストをしていますか? –

関連する問題