热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用LINQtoSQL将ASP.NETWeb窗体应用程序迁移到SQLServer2016后的性能问题

我一直在使用ASP.NETWeb窗体,VB.NET以及使用LINQ-to-SQL进行数据访问的旧版Web应用程序

我一直在使用ASP.NET Web窗体,VB.NET以及使用LINQ-to-SQL进行数据访问的旧版Web应用程序进行一些维护。

我们最近将应用程序从SQL Server 2005迁移到了SQL Server2016。此后,以前需要花费几秒钟才能生成的报告现在要花费几分钟。

报表生成的设计有些次优。为了生成单个摘要报告,我们运行了大约100个查询,然后将结果拼写到最终报告的代码中。我本来希望有一个查询可以完成数据库中所有工作的设计。

在测试时,我们让数据库管理员运行了概要分析工具。在他提供的跟踪表中,我看到了大约200个与报告生成相关的条目。使用 sp_executesql (由LINQ-to-SQL生成)的一百多个数据访问查询,每个查询最多仅花费几毫秒。 sp_reset_connection 的调用次数几乎相同,但是数据库管理员断言这没有什么意外的。而且他从自己的跟踪表检查中看不到任何危险信号。

不幸的是,在我们进行测试时,网络服务器的管理员没有可运行的性能分析工具,而且我无法在本地计算机上运行该应用程序来进行自己的性能分析。

有关我们配置的更多详细信息:


  • Windows Server 2016

  • IIS 10

  • .NET Framework 4.6.2

  • SQL Server 2016(13.0.5366.0)

关于如何解决此问题的任何建议?


由于架构错误或加载数据的方法而导致向数据库服务器发送过多请求。
当您使用“延迟加载”(Linq 2 SQL中的默认方法)方法加载数据并尝试在“ foreach”块“发生太多请求”中加载相关数据时。

加载问题的解决方案:急切加载

DataLoadOptions Load = new DataLoadOptions();
Load.LoadWith (d => d.Employees);

有关如何加载数据的详细日志:

dbContext.Log = Response.Output; //

此外,当SQL连接返回到连接池时,会出现“ sp_reset_connection”,这应该不成问题。

了解更多信息:
https://www.c-sharpcorner.com/article/lazy-loading-and-eager-loading-in-linq-to-sql/


推荐阅读
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
  • 磁盘健康检查与维护
    在计算机系统运行过程中,硬件或电源故障可能会导致文件系统出现异常。为确保数据完整性和系统稳定性,定期进行磁盘健康检查至关重要。本文将详细介绍如何使用fsck和badblocks工具来检测和修复文件系统及硬盘扇区的潜在问题。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
author-avatar
玉米猴子_794
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有