Tableストレージを設計する際のポイントとして、「性能要件が厳しいデータアクセスに対しては、同一のPartition Keyを割り当てよ」という項目があります。
これは、Azureストレージの構造上の制約によるもので、同一Tableに含まれるデータであってもPartition Keyが異なると、物理的な配置が変わるということに起因しています。
これはファブリックコントローラーが自動的に配置するものであり、ユーザが任意に設定することはできません。
この性質を逆に利用し、同一のPartition Keyを割り当てておくと、すべてのデータが同じ物理領域に配置されます。
ではどれくらいの差が出るのでしょうか。
実際にやってみました。
データのInsertでは大きな差はありませんでしたが、QueryとDeleteで差が出ました。
実測値でだいたい3倍程度の差が出ています。
なお、コンピュートサービス、ストレージサービスともにUS Anywhereを選択しています。そのため、200件のデータを作成するだけでもかなりの時間が掛かっています。
そこで、コンピュートサービスとストレージサービスのホスティングデータセンタを同じにしておくというのもパフォーマンス上重要になるようです。

Comments are closed here.