添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

asp.net程序优化 尽量减少数据库连接操作

作者:

最近做一个项目,做的比较郁闷,现在把项目经验总结在这里。项目的主要功能就是为第三方程序提供数据,并根据客户端的调用提供数据更新。我的程序属于服务端。服务端以站点形式部署,以Xml的数据格式输出
项目以我自己的设计编码完成,并整合测试。初始化数据时,问题出现了。刚开始体现在客户端接受数据很慢。测试环境环境下,数据库服务器部署在国外,网站部署在公司内部,而且我一直认为我的程序在数据库数据处理这里已经做了足够的优化,包括索引和主键已经做到了合理使用。综上所述,起初的速度问题一直没有引起我的关注。

然而最后问题的关键恰恰出在数据库连接查询方面,频繁查询导致数据初始化速度很慢。刚开始我采取的方法是即用即查:需要数据的时候就从数据库查,有比较多的单表查询返回单个字段的情况。假如我有大概3000条左右的数据集合,我循环取出其中的每一条,再从其它数据表里查询得到需要的字段,这样无故增加了3000多次数据库连接和关闭操作,当网络速度不理想时,程序速度就无法忍耐了。

坚持一条原则:尽量减少数据库连接操作。跟前端开发优化中的尽量少Http请求类似。

最终我采取的方案是将所需要的数据经过多个数据表统一放到一个List对象中,也就是放到内存中,在根据LINQ查询其中的每条数据,这样速度会快很多。这样似乎破坏力一个原则,之前我遵循的多表查询最好不要inner join3个以上的表,而这次出现了多次一个sql语句就inner join3个表以上的情况.虽然破坏了这个原则,但是相比速度极慢,连功能都实现不了的情况,显然inner join 也可以让人接受。
您可能感兴趣的文章:
  • .NET 开源配置组件 AgileConfig的使用简介
    .NET 开源配置组件 AgileConfig的使用简介
    2021-05-05
  • ASP.NET Core快速入门之环境篇
    ASP.NET Core快速入门之环境篇
    2021-04-04
  • net core下链路追踪skywalking安装和简单使用教程
    net core下链路追踪skywalking安装和简单使用教程
    2021-10-10
  • .NET 开源项目Polly的简单介绍
    .NET 开源项目Polly的简单介绍
    2021-06-06
  • ASP.NET Core应用JWT进行用户认证及Token的刷新方案
    ASP.NET Core应用JWT进行用户认证及Token的刷新方案
    2021-06-06
  • 关于.NET6 Minimal API的使用方式详解
    关于.NET6 Minimal API的使用方式详解
    2021-06-06
  • .NET内存泄漏分析Windbg项目实例
    .NET内存泄漏分析Windbg项目实例
    2021-06-06
  • ASP.NET 使用 Dispose 释放资源的四种方法详细介绍
    ASP.NET 使用 Dispose 释放资源的四种方法详细介绍
    2021-06-06
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2024 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号