ajax - 特定表(在 SQL Server 中)的记录数对 C# MVC 中的 LINQ 查询响应时间有什么影响
问题描述
我对我的主题标题进行了一些谷歌搜索,但没有找到有用的答案。大多数问题是关于表列数对查询性能的影响,而我需要知道表行数对 C# MVC 项目中 linq 查询响应时间的影响。实际上,我有一个 Web MVC 项目,在该项目中我尝试使用来自服务器的 ajax 调用设置警报,并将它们显示在客户端的 Web 网格中。每个 ajax 调用在使用 setTimeOut 方法创建的循环中每 60 秒执行一次。警报表(在 SQL Server 数据库中)中的行数逐渐增加,一周后达到数千行。刚开始项目时,我可以在浏览器(Chrome)的 DevTools 中看到,每个 ajax 调用所用的时间大约是 1 秒左右。但是这个时间每天都在逐渐增加,一周后每个成功的ajax调用需要2分钟以上。这导致大约 5 个 ajax 调用始终处于待处理队列中。我确信客户端(JQuery)和服务器(C#)端代码都没有内存泄漏,所以我怀疑的唯一罪魁祸首是在警报表上执行的 SELECT Query 响应时间。我很感激任何建议。
解决方案
检查在数据库中执行的查询。有两种选择:
- 您的 Linq 查询从数据库中获取所有数据并在本地处理它们。在这种情况下,表中的行数非常重要。您需要修复您的 Linq 查询并确保它仅从数据库中获取相关行。然后你可以点击选项2。
- 您的 Linq 查询仅从数据库中获取相关行,但表中没有相关索引,并且每个查询都会扫描表中的所有数据。
但是,由于您的表中只有几千行,我怀疑扫描该表需要 2 分钟,因此选项 1 更可能是导致速度变慢的原因。
推荐阅读
- file - Cordova File Plugin - 文件保存在哪里
- kubernetes - Complex Ingress Nginx Config(由 Kubernetes 维护的 Nginx Ingress)
- regex - 根据 Postgres 中的多个分隔符将一列拆分为多行
- python - 根据另一列中的值创建新列
- ruby-on-rails - 文章中的 NoMethodError #new undefined method `errors' for nil:NilClass in rails
- c++ - GCC 未能使用预编译的标头(通过 CMake)遵守 #pragma
- amazon-web-services - 将 Elastic BeanStalk 日志从 Windows EC2 实例流式传输到 Cloud watch
- mysql - 当它的 WHERE 只指定一个时,为什么这个 UPDATE 会影响 2 行?
- python-3.x - 父对象包含大数据时多处理速度慢
- ruby-on-rails - Rails 6 和 Puma 是否仍需要在工作启动时建立连接?