Операторы LINQ для хранения таблиц в Windows Azure - PullRequest
4 голосов
/ 12 мая 2010

В настоящее время Table Storage поддерживает From, Where, Take и First.

Планируется ли поддержка каких-либо других 29 операторов?

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

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

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

Ответы [ 2 ]

4 голосов
/ 26 мая 2010

Райан,

Как сказал Стив, агрегаты разрешаются "на стороне клиента", что может привести к плохой производительности, если ваши наборы данных слишком велики.

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

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

3 голосов
/ 12 мая 2010

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

...