2011-12-21 36 views
8

Chúng tôi có một vài bảng nằm trong Azure lưu trữ bảng (không Azure SQL bảng), và tôi không thể tìm thấy một cách dễ dàng để cho tôi một số của số hàng trong một bảng.Bảng Windows Azure - Đếm hàng?

Tôi đã thử gọi .CreateQuery.Count(), nhưng điều đó chỉ đơn giản là trả về:

<?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> 

Trả lời

8

Nếu bạn thực sự muốn đếm tất cả các hàng bạn cần để thực hiện yêu cầu phân trang. Mỗi trang trả về tối đa 1000 hàng. Sau khi tải tất cả trong bộ nhớ, bạn có thể làm một đơn giản LINQ Count().

Bạn chỉ có thể đếm số trang và số hàng của trang cuối cùng. Điều này sẽ giúp bạn tiết kiệm rất nhiều bộ nhớ.

Nhưng hãy cẩn thận, mọi yêu cầu trang có hàng tối đa được trả về bằng một giao dịch. Hiệu suất khôn ngoan, bạn sẽ thực sự tải toàn bộ bảng trong bộ nhớ có thể là "uh-oh".

Liên kết với mẫu mã: http://scottdensmore.typepad.com/code/Continuation.zip

0

Có một công cụ mà có thể nhận được kích thước bảng hoặc tổ chức đếm cho bạn. Azure Storage Manager

  1. Chọn một bảng lưu trữ trong khung cây bên trái
  2. Bấm nút 'tài sản'
  3. Bấm nút 'Calc' trên các thuộc tính bảng thoại
  4. Chờ một vài khoảnh khắc, đến nút 'Calc' trở nên có sẵn một lần nữa.