CSVファイルに保存されているAzureテーブルを保存して読み取るプログラムを作成しています。私が入手したのは、さまざまな数の列、および3kから50kの行を持つことができるCSVファイルです。私がする必要があるのは、Azureテーブルにそのデータをアップロードすることです。これまでのところ、データのアップロードと取得の両方を行うことができました。私はRESTAPIを使用しており、アップロードには、リクエストごとに100行のXMLバッチリクエストを作成しています。アップロードに少し時間がかかることを除けば、これで問題なく動作します。3k行の場合、約30秒かかります。それをスピードアップする方法はありますか?ReadToEnd()
(コマンドの)応答を処理するのに最も時間がかかることに気づきました。プロキシをnullに設定すると役立つとどこかで読んだことがありますが、私の場合はあまり効果がありません。
また、XMLリクエスト全体をblobにアップロードし、そこから実行できることもどこかで見つかりましたが、そのための例は見つかりませんでした。
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(content, 0, content.Length);
}
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
Stream dataStream = response.GetResponseStream();
using (var reader = new StreamReader(dataStream))
{
String responseFromServer = reader.ReadToEnd();
}
}
Azureテーブルからデータを取得する場合、リクエストごとに1000個のエンティティを取得できました。それに関しては、3k行のCSの場合は約9秒かかります。また、ストリームから読み取る場合にもほとんどの時間がかかります。私がコードのこの部分を(再びReadToEnd()
)呼んでいるとき:
response = request.GetResponse() as HttpWebResponse;
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string result = reader.ReadToEnd();
}
任意のヒント?