【发布时间】:2009-11-02 18:09:29
【问题描述】:
在客户处部署 ASP.NET 应用程序时,我们遇到了巨大的性能问题,该客户的数据库位于远程位置。
我们发现这是因为页面对数据库进行了大量的单独 SQL 查询。这从来不是我们注意到的问题,因为通常,Web 和 DB 在同一个本地网络上(低延迟)。但是在这种(突然的)低延迟配置上,它非常非常慢。
(请注意,每个sql请求本身都很快,问题在于序列的数量和序列性质。
我要求工程团队能够报告和维护“耻辱墙”(或统计数据),告诉我们每个页面的 SQL 请求数量,以便我们将其用作参考。他们声称它很贵..
任何人都可以告诉我如何能够便宜且轻松地维护或获取此类报告?
- 我们使用的是 SQL Server 2005
- 我们混合了自己的数据库访问层和亚音速
- 我知道并使用分析器,但这有点手动。在这里询问是否有关于如何自动化的提示,或者我只是疯了?
【问题讨论】:
-
这个练习在任何设计良好的应用程序中都应该是微不足道的。您可以将其用作确定应用程序代码质量的粗略基准。如果这样的东西“昂贵”,那应该是一个危险信号。
-
这不能回答你的问题,但我有一个建议,可以在这种情况下提高性能。从远程位置使用数据库时,创建和关闭连接可能比平常更昂贵。如果您还没有这样做,请向其中添加一些逻辑,每个页面请求仅打开一个数据库连接。这个想法是使用一个全局连接,当第一次查询时自动打开,当调用 Page.Unload 事件时自动关闭。
标签: asp.net database performance