asp.net程序优化 尽量减少数据库连接操作
2012-05-02 23:26
811 查看
项目以我自己的设计编码完成,并整合测试。初始化数据时,问题出现了。刚开始体现在客户端接受数据很慢。测试环境环境下,数据库服务器部署在国外,网站部署在公司内部,而且我一直认为我的程序在数据库数据处理这里已经做了足够的优化,包括索引和主键已经做到了合理使用。综上所述,起初的速度问题一直没有引起我的关注。
然而最后问题的关键恰恰出在数据库连接查询方面,频繁查询导致数据初始化速度很慢。刚开始我采取的方法是即用即查:需要数据的时候就从数据库查,有比较多的单表查询返回单个字段的情况。假如我有大概3000条左右的数据集合,我循环取出其中的每一条,再从其它数据表里查询得到需要的字段,这样无故增加了3000多次数据库连接和关闭操作,当网络速度不理想时,程序速度就无法忍耐了。
坚持一条原则:尽量减少数据库连接操作。跟前端开发优化中的尽量少Http请求类似。
最终我采取的方案是将所需要的数据经过多个数据表统一放到一个List对象中,也就是放到内存中,在根据LINQ查询其中的每条数据,这样速度会快很多。这样似乎破坏力一个原则,之前我遵循的多表查询最好不要inner join3个以上的表,而这次出现了多次一个sql语句就inner join3个表以上的情况.虽然破坏了这个原则,但是相比速度极慢,连功能都实现不了的情况,显然inner join 也可以让人接受。
然而最后问题的关键恰恰出在数据库连接查询方面,频繁查询导致数据初始化速度很慢。刚开始我采取的方法是即用即查:需要数据的时候就从数据库查,有比较多的单表查询返回单个字段的情况。假如我有大概3000条左右的数据集合,我循环取出其中的每一条,再从其它数据表里查询得到需要的字段,这样无故增加了3000多次数据库连接和关闭操作,当网络速度不理想时,程序速度就无法忍耐了。
坚持一条原则:尽量减少数据库连接操作。跟前端开发优化中的尽量少Http请求类似。
最终我采取的方案是将所需要的数据经过多个数据表统一放到一个List对象中,也就是放到内存中,在根据LINQ查询其中的每条数据,这样速度会快很多。这样似乎破坏力一个原则,之前我遵循的多表查询最好不要inner join3个以上的表,而这次出现了多次一个sql语句就inner join3个表以上的情况.虽然破坏了这个原则,但是相比速度极慢,连功能都实现不了的情况,显然inner join 也可以让人接受。
您可能感兴趣的文章:
- 向asp.Net进发 数据库连接操作
- asp.net Accee数据库连接不稳定解决方案
- ASP.NET2.0 SQL Server数据库连接详解
- asp.net 数据库连接类代码(SQL)
- asp.net LINQ中数据库连接字符串的问题
- asp.net 数据库连接池浅析
- ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法
- 在ASP.NET 2.0中操作数据之六十八:为DataTable添加额外的列
- 在ASP.NET 2.0中操作数据之六十九:处理Computed Columns列
- 在ASP.NET 2.0中操作数据之七十:配置数据库连接和命令等级设置
相关文章推荐
- asp.net程序优化 尽量减少数据库连接操作
- 我的程序优化-尽量减少数据库连接操作
- Asp.net程序性能优化的七个方面之一(数据库操作)
- ASP.NET程序的优化建议(转)一、数据库操作
- asp.net 发布程序到iis后无法连接到oralce数据库问题
- Asp.Net连接Oracle数据库的通用类orahelper.cs并且利用它对数据库查询、汇总、更新等操作演示
- ASP.NET中数据库的操作初步----连接并且打开数据库
- 在ASP.NET 2.0中操作数据之七十:配置数据库连接和命令等级设置
- asp.net下数据库操作优化一例
- 创建第一个ASP.NET CORE程序 使用DBFirst模式连接数据库
- Asp.Net连接Oracle数据库的通用操作类并且利用它对数据库查询、汇总、更新等操作演示
- 向asp.Net进发 数据库连接操作
- 在ASP.NET项目中的web.config文件里配置数据库连接并在程序代码中获取连接字符串
- ASP.NET中数据库的操作初步----连接并且打开数据库
- asp.net使用LINQ to SQL连接数据库及SQL操作语句用法分析
- ASP.NET(C#)连接数据库和操作数据库
- ASP.NET项目中的web.config文件里配置数据库连接并在程序代码中获取连接字符串
- asp.netWeb开发中ztree实现无极限增删改查连接数据同步数据库操作
- ASP.NET(C#)连接数据库和操作数据库
- 在ASP.NET项目中的web.config文件里配置数据库连接并在程序代码中获取连接字符串