我们正在使用 Windows azure 表来记录我们在工作角色或 Web 角色中托管的应用程序中的错误。我们在表中记录了足够的信息,以便于识别哪个角色、哪个类的组件记录了错误。
组件 ID(完全限定的类名)用作分区键,随机唯一 Guid 用作行键。
此日志信息显示在 ASP.NET MVC 网站上,管理员可以在其中根据组件 ID、日期范围、角色标识符、严重性等过滤条件搜索此日志。
这工作正常,直到桌子很小。一旦 azure table 包含大量记录(200000 或更多),则在 azure table 上进行过滤会花费太长时间并且超时。我们正在使用 .NET azure storage API 来查询表。
我们还希望对返回的结果集进行分页,但看起来在 azure table 中我们没有得到返回记录的准确计数。
我们尝试使用 azure storage API 来应用过滤器并根据当前页码获取数据,但它不起作用。我知道我们可能需要重新设计我们的表结构,尤其是 partitionkey 和 rowkey,但不知道如何进行。