2011-12-21 3 views
8

У нас есть несколько таблиц, которые находятся в таблицах хранения Azure (NOT Azure SQL Tables), и я не могу найти простой способ подсчета количества строк в таблице.Таблицы Windows Azure - количество строк?

Я попытался назвать .CreateQuery.Count(), но это просто возвращает:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> 
    <code>InvalidInput</code> 
    <message xml:lang="en-US">One of the request inputs is not valid. 
RequestId:c74f8b4c-4277-42f6-bb5d-0db187358e43 
Time:2011-12-21T10:34:12.5379616Z</message> 
</error> 

ответ

9

Это происходит потому, что нет никакой операции Count для таблицы услуг: http://msdn.microsoft.com/en-us/library/windowsazure/dd179423.aspx Вы могли бы (но я я не уверен на 100%), чтобы получить счетчик, если вы указали хотя бы ключ раздела или больше критериев.

8

Если вы действительно хотите сосчитать все строки, вам нужно будет выполнить запросы подкачки. Каждая страница возвращает максимум 1000 строк. После загрузки всех в памяти вы можете сделать простой Linq Count().

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

Но будьте осторожны, каждый запрос страницы с максимальным количеством строк возвращает одну транзакцию. Производительность мудрая, вы будете загружать целую таблицу в памяти, которая может быть «uh-oh».

Ссылка на пример кода: http://scottdensmore.typepad.com/code/Continuation.zip

0

Существует инструмент, который может получить размер таблицы или считать объекты для вас. Azure Storage Manager

  1. Выберите таблицу для хранения в панели слева дерево
  2. Щелкните кнопку «свойство»
  3. Нажмите кнопку «Calc» на свойства таблицы диалогового
  4. Подождите несколько момента, пока кнопка «Calc» снова становится доступным.
Смежные вопросы