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

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

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

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

最终我采取的方案是将所需要的数据经过多个数据表统一放到一个List对象中,也就是放到内存中,在根据LINQ查询其中的每条数据,这样速度会快很多。这样似乎破坏力一个原则,之前我遵循的多表查询最好不要inner join3个以上的表,而这次出现了多次一个sql语句就inner join3个表以上的情况.虽然破坏了这个原则,但是相比速度极慢,连功能都实现不了的情况,显然inner join 也可以让人接受。

相关文章

  • ASP.NET Core中创建中间件的方式汇总

    ASP.NET Core中创建中间件的方式汇总

    ASP.NET Core中间件(Middleware)是用于处理HTTP请求和响应的组件,它们被安排在请求处理管道中,并按顺序执行,这篇文章主要介绍了ASP.NET Core中创建中间件的几种方式,需要的朋友可以参考下
    2024-07-07
  • 在.NET Core类库中使用EF Core迁移数据库到SQL Server的方法

    在.NET Core类库中使用EF Core迁移数据库到SQL Server的方法

    下面小编就为大家分享一篇在.NET Core类库中使用EF Core迁移数据库到SQL Server的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • ASP.NET设计网络硬盘之查看文件夹实现代码

    ASP.NET设计网络硬盘之查看文件夹实现代码

    下面要介绍的实例包括网上硬盘的许多功能,将一步步为大家进行介绍。首先创建工程实例,然后进行主界面的设计,最后对各个功能的实现分别进行介绍
    2012-10-10
  • asp.NET 脏字过滤算法 修改版

    asp.NET 脏字过滤算法 修改版

    我们网站的脏字字典中大概有600多个词,而且会发生变化,因此简单的在数据新增/修改的时候做一次脏字过滤是不够的。在网站从.NET 1.1到2.0改版的时候,对新版的测试发现旧的脏字过滤算法耗费的时间过长,需要做一些优化。
    2009-10-10
  • asp.net(C#)压缩图片,可以指定图片模板高宽

    asp.net(C#)压缩图片,可以指定图片模板高宽

    今天要在web程序处理图片,指定图片的高宽大小。google了一把资料。觉得此方法挺不错的,大家可以借鉴一下,如果小弟写的有不对的地方请大家指点一下:以下代码在winform写的,在web下测试可以使用。
    2010-03-03
  • asp.net通过HttpModule自动在Url地址上添加参数

    asp.net通过HttpModule自动在Url地址上添加参数

    由于项目中有许多页面需要用到cid参数,所以想通过传值cid来获取数据。
    2010-01-01
  • Gridview的链接和删除点击提示的问题探讨

    Gridview的链接和删除点击提示的问题探讨

    Gridview的链接和删除点击提示有利于提醒用户确认下操作是否正确,以免造成不必要的损失,感兴趣的朋友可以参考下,希望对你有所帮助
    2013-04-04
  • EF Core基础入门教程

    EF Core基础入门教程

    这篇文章介绍了EF Core的基础入门教程,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • asp.net跳转页面的三种方法比较

    asp.net跳转页面的三种方法比较

    asp.net下的三种转向页面的方法小结,给使用页面转向的朋友一个参考
    2008-06-06
  • 在Linux上使用OpenCvSharp的过程详解

    在Linux上使用OpenCvSharp的过程详解

    在本次项目中,我们成功实现了在Linux上使用OpenCvSharp,并成功配置了OpenCvSharp依赖库,实现了在.NET 6.0环境下使用C#语言调用OpenCvSharp库,实现的图片数据的读取以及图像色彩转换,并进行了图像展示,感兴趣的朋友跟随小编一起看看吧
    2024-02-02

最新评论