2016-09-25 4 views
1

この質問に最適なトラブルがありましたSQL Azureのページングの最適化

Azureテーブルストレージでは、パーティション、rownumの固定キーがあります。彼らはサイズと操作数に基づいて課金します。

は、LAN文書がWPFクライアントとアズールにそれを取るSQLデータベース

でアプリケーションを管理していると私は

ほとんどのアプリケーションが100,000ドキュメント
ようしかし、ハイエンドになり、コストを最小限にしたいです400万の文書になる可能性があります

ほとんどのSQL検索は安価(0.1秒)ですが、高価(たとえば60秒)のものもあります。

LAN版では、100の詳細が返されますが、生の識別子は10,000になります。クライアントが次のページの詳細を必要とするので、次の100のための識別子(int)と詳細のための非常に安価なクエリを返します。私は前のページの詳細を保持していないし、あまりにも多くのクライアントメモリを使用します。 10,000に達すると、次の10,000の検索を実行します。

Azure環境では、それを変更する必要がありますか?私は帯域幅を払っていますが、intはかなり小さいです。私はSQL CPUとIOも支払っています。何かがあれば、クライアントに100,000の識別子を送ることを考えています。

私はテーブルストレージを検討しましたが、100人のクライアントが1日に100回の検索を行い、100,000,000回が返された場合、トランザクションコストが合計され(700ドル以上)、テーブルストレージの挿入が比較的遅くなります。データベースはわずか15ドルです。

私はSQLテーブルの結果
ユーザーID(SMALLINT)を格納することができ、たrowNum(int型)、docIdentifier(INT)ユーザーIDにフィルファクター50と
クラスタ化インデックス、たrowNum
私の問題4,000,000書類があります1,000ログインでは、私はそのテーブルだけで16GBに入れられるかもしれない

私はクライアントに一度に100,000 intを送ると思っています。
優れたデザインはありますか?

答えて

0

私はAzure Table Storageが最も安いソリューションだと言います。要は、まさにあなたのユーザーに何を返すのでしょうか? 100.000の量のたびに100レコード、私はあなたのユーザーがすべてのページを参照するかわからない。たぶん、情報を報告する別の方法を検討する必要があります。

+0

正確には、すべてのページを読み込むのが好きではありませんが、すべての結果をAzureテーブルストレージにコピーする必要があります。私が述べたように、トランザクションコストは増加し、テーブルストレージは比較的低速です。 – Paparazzi

1

Azureを使用する利点の1つは、データを格納するために複数の選択肢があることです。 Azureテーブルから、Document DBまで、SQL DBとSQL DWまで。各サービスには、どのように異なるかを説明する偉大なドキュメントがあります。

選択肢があるので、おそらくAzureで最も安いストレージオプションを選択したいと思うでしょう。それはテーブルです。しかし、あなたが正しいことを指摘すると、もっとも安価なものが検索するのが最も簡単なわけではなく、通常はSQLに利点があります。 SQLからのデータの検索/選択は、しばしば簡単です。

したがって、ストレージコスト、データスループット、およびアクセス/プログラミングの容易さのトレードオフです。