【发布时间】:2018-02-20 07:38:25
【问题描述】:
我在 IIS 中有一个 Asp.net 网站。我在那个网站上有一个链接。因此,如果我单击该链接,我将导航到托管在同一 IIS 中的 MVC 站点主页。
问题: 问题是它非常慢。打开主页花了10多秒 MVC 5 网站。它是一个带有剃须刀的 cshtml,并有 Jquery Datatable 来加载数据。 请让我知道减少延迟的最佳方法是什么
【问题讨论】:
-
您是否在另一台服务器上尝试过?也许这只是您的硬件或环境设置。或者,您可能有一个运行缓慢的查询。或者您可能正试图返回大量数据。或者您编写代码的效率非常低,或者没有正确索引您的数据库表。我们无法修复我们看不到的东西,所以我们只能猜测。
-
感谢 Adyson,您说它从 DB 返回的数据量很大,大约 1.3 MB,我们从复杂的 sql 查询中返回了它。那么最好选择更快地加载如此大量的数据。因为我无法增加 IIS 已经在 32 GB RAM 上运行的硬件
-
这不是一个荒谬的数据量,尽管对于单个网页来说它是一个中等数量的数据。我无法建议您如何更快地加载它,因为我看不到您的代码,而且您还没有确定瓶颈在哪里。您需要调查并确定减速发生的位置。是 SQL 查询(或相关的东西,例如索引),还是 C# 代码,还是 Razor 代码,还是 DataTables 渲染过程?您需要从查询开始测试流程的每个部分,并计算出每个部分需要多少时间,以了解堆栈中性能最差的位置。
-
您还需要按照我的建议(如果可以)并切换组件,例如在另一个网络服务器上运行,然后在另一个数据库服务器上运行,另一个浏览器/O/S/设备(对于最终用户),看看这是否是任何这些环境中的配置问题。还要检查所涉及的所有不同机器(客户端 -> IIS 服务器 -> SQL Server)之间是否存在任何网络带宽问题。对此没有唯一的正确答案,但在我们开始考虑解决方案之前,您需要了解应用程序的架构,然后将其分解以隔离问题区域。
-
Adyson 我在多个服务器或客户端网络中也尝试过。但延迟仍然相同。它是一个带有实体框架的存储库模式架构..
标签: asp.net asp.net-mvc datatable razorengine