2011-08-19 36 views
7

Tôi đang làm việc với Azure Table Storage và cố gắng tìm ra cách tốt nhất để tăng hiệu suất. Các truy vấn mà tôi thực hiện rất đơn giản - hoặc chọn chính xác bằng cách sử dụng khóa phân vùng và khóa hàng hoặc mệnh đề where có danh sách (ví dụ: WHERE x == 1 hoặc x == 2 hoặc x == 3, v.v ...). Khi tôi lấy lại dữ liệu, tôi không theo dõi nó trong ngữ cảnh dữ liệu (không cần theo dõi thay đổi, vv). Lưu dữ liệu cũng vậy, vì vậy tôi chỉ thêm nó vào ngữ cảnh để cho phép lưu.Hiệu suất lưu trữ bảng Azure - REST so với StorageClient

Hiện tại, tôi đang sử dụng thư viện .NET (trình khách lưu trữ). Vì tôi không sử dụng theo dõi thay đổi và các tính năng khác của TableServiceContext, tôi đang nghĩ về việc sử dụng API HTTP trực tiếp. Có ai đã thử cả hai tùy chọn? Nếu có, bạn thấy loại hiệu suất nào?

Xin cảm ơn, Erick

Trả lời

10

Bảng lưu trữ có thể là một chút của một con thú hay thay đổi để tối ưu hóa hiệu suất. Có nhiều yếu tố sẽ tác động đến nó. Dưới đây chỉ là một vài điều trên đỉnh đầu của tôi:

  1. Sử dụng khóa phân vùng trong mọi truy vấn là phải. Nếu bạn không làm điều này, bạn đang làm sai. Nếu bạn sử dụng PK đơn và RK đơn (và chỉ có hai RK), nó không còn là truy vấn nữa, nhưng một tài nguyên GET và phải tương đối tức thời.
  2. Không sử dụng truy vấn dựa trên OR. Điều này sẽ gây ra một bảng quét đầy đủ và hiệu suất của bạn sẽ là khủng khiếp. Thay vào đó, hãy song song các truy vấn đó trong câu lệnh OR.
  3. Chiến lược phân vùng sẽ có tác động lớn. Có bao nhiêu phân vùng bạn có và tần suất bạn nhấn chúng (để làm ấm chúng và khiến các máy chủ phân vùng nằm bên dưới tải cân bằng) sẽ gây ra những khác biệt đáng kể. Kích thước của phân vùng cũng tạo ra một tác động lớn ở đây. Các khóa phân vùng tuần tự thường là một ý tưởng tồi.
  4. Yêu cầu nhỏ có thể hưởng lợi từ việc tắt tính năng nagling (như đã đề cập trước đó).
  5. Tắt theo dõi ngữ cảnh và 100 tiếp tục (see here) cũng có thể trợ giúp.

Có nhiều điều tôi cho là phụ thuộc vào ứng dụng của bạn. Tuy nhiên, những cái tôi đề cập đến thường là thứ tôi bắt đầu.

Các vấn đề liên quan