【发布时间】: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