2010-05-11 2 views
4

В настоящее время поддержка таблиц поддерживает From, Where, Take и First.Windows Azure Table Storage Операторы LINQ

Планируете ли вы поддержать любого из 29 операторов?

Существуют ли архитектурные или дизайнерские приемы в отношении хранения, которые следует соблюдать для реализации таких функций, как COUNT, SUM, GROUP BY и т. Д.?

Если нам нужно кодовое обозначение для них самих, то насколько разница в производительности мы смотрим на что-то подобное через SQL и SQL Server? Понимаете ли вы, что это несколько сопоставимо или будет намного медленнее, если мне нужно сделать граф или сумму или группу по гигантскому набору данных?

Мне нравится платформа Azure и идея облачного хранения. Мне нравится Хранилище таблиц для объема данных, которые он может хранить, и его схемы без ограничений. SQL Azure просто не будет работать из-за высокой стоимости пространства для хранения.

+0

Вы можете проголосовать и оставить комментарий по этому адресу http://windowsazure.uservoice.com/forums/34192-windows-azure-feature-voting/suggestions/397108-make-linq-to-tablestorage?ref=title – CoderDennis

ответ

3

Единственная альтернатива - вытащить все локально и запустить Count() или Sum() над локальными объектами. Поскольку вы должны перенести все содержимое своей таблицы, прежде чем делать счет, это, безусловно, будет намного медленнее, чем делать что-то серверное, как с SQL. Насколько медленнее зависит размер ваших данных.

4

Райан,

Как сказал Стив, агрегация разрешена «сторона клиента», который может kead плохого perfromance если ваши наборы данных слишком велики.

Альтернативой является думать о проблеме по-другому. Возможно, вам захочется предварительно вычислить эти значения, чтобы они были легко доступны. Например, если у вас есть данные мастер-детали (например, пословичный заказ на поставку + позиции), вы можете захотеть сохранить «сумму позиций» в заголовке. Это может показаться «избыточным» (и это так), но де-нормализация - это то, что вам нужно будет рассмотреть.

Эти предварительные вычисления могут быть выполнены «synch» или «asynch». В некоторых ситуациях вы можете позволить себе иметь приближения, поэтому отсрочка вычислений может быть выгодной с точки зрения перфоманса.

+0

Мы попытались пройти этот маршрут и попали в дорожный блок. Скользящая сумма или граф звучат как хорошая идея в теории, но на практике у вас будут кошмары с параллелизмом. Попытка увеличивать одно поле Count на +1 несколько сотен раз в секунду разными ролями Web или Worker. – Vyrotek

Смежные вопросы