2009-02-07 117 views
2

我正在用C#开发Asp.Net 3.5上的电子商务项目。我使用3层(Data + Business + UI)结构来访问数据库中的数据(Msql 2005)。Asp.net电子商务表现

有存储过程和一切从这些事。(CRUD方法)

这里有一个性能问题,项目是这样运行缓慢。我在交易模型中找不到任何问题。

也是该项目是在海外country.Database服务器和Web服务器的共享主机上运行不同的machines.Database服务器上运行有近1000数据库。

如何测试和了解问题出在哪里?

+0

谁是托管..是它arvixe :) – 2016-03-02 08:59:26

回答

5

既然有向上1000个数据库的共享资源,我会采取可能是您的问题刺伤....如果你连接到数据库,它需要5秒钟运行一个简单的查询,那么你可以想这个问题。

我想补充一些秒表功能添加到您的Web服务器上运行的“testpage”。这应该给你的基本信息,看看是否有一个“瓶颈”在等待数据库返回您的查询。如果你已经做到了这一点,那么我会怀疑它会是你的网络服务器。

你最后的选择将是建立一个简单的低规格的机器与DB和它的Web服务器和公正的测试。根据您的网站获得的流量,您应该能够很好地了解其响应时间。

工具如YSlow也可能有一定的帮助然而这些通常更多地用于微调。

+0

非常感谢你。我会尝试这个建议。 – Jack 2009-02-07 18:54:12

1

既然你是一个共享的主机服务运行,我猜这就是你的问题。您正在与这些服务器上的每个其他网站和数据库竞争服务器资源。

为了确保,我会设置一个模仿您的生产环境的本地环境。然后执行一些标准压力测试,看看它是如何执行的。如果它执行您期望的方式,那么它可能是您的托管解决方案。

通过共享的托管解决方案,您确实可以获得您所支付的费用。如果这是一个需要更多速度的系统,那么您应该看看专用的托管解决方案。

0

我开发的一个快速解决方案,可以帮助您在此处保存我的web应用程序的性能日志。我有一台运行类似声音应用程序的Web服务器和数据库服务器。我编写了一个运行“基准测试”存储过程并返回运行时间的Web服务。我编写了一个在我的开发服务器上运行的win应用程序,该服务器调用Web服务,将它传递给要运行的存储过程的名称,以及整个请求需要多长时间。 win应用程序将数据写入日志文件并按计划任务每​​10分钟运行一次。额外的铃声和哨声包括连续三次超出指定阈值,连接失败以及慢速恢复正常表演时的自动发送给团队成员的电子邮件。

这提供了用户在网站上的体验如何在任何给定时间的一般指示,并作为团队的警告铃。这并不是最好的解决方案,但是我几个月前在几个小时内完成了它的编写,并且使用它创建的用于多次故障排除的数据。