【问题标题】:Data modelling: techniques to handle lots of data?数据建模:处理大量数据的技术?
【发布时间】:2011-07-31 03:33:55
【问题描述】:

所以我有一个相对较小的网站,其数据量不断增长 - 增长最快的表格是综合浏览量,因为我们自己进行所有分析。该网站是使用 VB.Net、SQL Server 2008 和 jQuery 制作的。我仅限于 .net 2.5。

我目前使用具有属性列表的对象处理所有数据和验证。每个属性都具有特定的数据类型,并在为其提供新值时具有验证功能。如果数据没有验证,那么它甚至不会更新数据库并将错误反馈给用户。目前我有“Manager”类和“Item”类 - 项目由特定的 Manager 类管理,例如用户由 UserManager 管理,因此要获取所有用户,我只需调用 UserManager.Items。这些 Manager 类存储在缓存中并根据需要创建 - 但是一旦引用 Manager 类,它就会在其中创建 所有 项。现在这变得相当缓慢,因为公司正在快速发展。加载第一页(首次请求数据最多的页面)需要 2 - 3 秒,但我对这次不满意。之后几乎是即时的。

现在我看到它有 3 个选项来加快网站速度:

  • 保持原样,但尝试通过其他技术使其更高效;
  • 更改为在每次页面加载时创建所有这些对象,希望它太慢,因为我使用缓存来存储大量数据(至少大约 10 MB 左右);
  • 忘记使用面向对象的技术,只使用直接 SQL 查询和循环记录。

有人对我应该使用哪种方法有任何建议吗?如果我错过了任何选项,请提出建议。

谢谢。

问候,

理查德

【问题讨论】:

  • 我不明白These Manager classes are stored in the cache and are created as needed。如果您将它们存储在缓存中,则不需要在第一页上重新加载它们。缓存是应用程序和会话范围的,只会被清除 f.e.如果所有会话都超时。还是您指定了缓存策略?
  • 对不起,我没有很好地解释这一点。我知道缓存在所有用户之间共享 - 但基本上服务器上存在一些问题,它在大约 5 分钟后回收应用程序 - 所以在大约 5 分钟不活动后,缓存被清空,因此下一个页面浏览(任何人)将为任何请求的经理重新加载所有数据。我找不到回收问题的根源 - 但是,它在我的待办事项清单上!
  • 我建议您将其移至列表顶部!试试事件日志,还要检查应用程序是否被简单地配置为每 5 分钟重启一次...

标签: asp.net sql-server vb.net database-design data-modeling


【解决方案1】:

我认为对于您的网站,您不能使用“直接访问属性”的概念:UserManager.Items。

如果您有越来越多的数据,您应该为您的管理器类设置一个“间接访问属性”,那就是像 UserManager.GetItems() 这样的方法。因为当您创建 UserManager 类的新实例时,.NET 会计算 Proprieties (UserManager.Items)...

简历:删除 UserManager.Items 属性并创建方法 UserManager.GetItems()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 2011-10-30
    • 2015-01-25
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多