项目优化策略

     前言:   笔者认为,优化策略有千万种,主要还是根据自身项目的架构来进行优化,才能达到物尽其用的。

笔者也是第一次尝试对项目进行优化,可能略显不足,欢迎各位指正。

    1.先说下项目架构,以及出现的问题

        笔者所在的项目是 部分共依附于一个开发平台(传统的MVC实现,即模型-视图-控制器再到前台页面),当然业务复杂的需要写一些接口或者新的页面,

项目中大部分功能是基于平台开发一个相对"简单"的页面,然后比如一个页面可能发起七八个Ajax请求甚至更多,这七八个请求可能在三四个服务器上。

    1.1 数据库方面

      使用的是SQLserver这里采用了读写分离策略,有很多存储过程,阅读存储过程发现,内容复杂冗长可阅读性较低,其代码长度达到几十甚至

上百行。表字段设计冗长, 系统常用表(大概五六个表为使用频率特别高)的字段基本都在100以上,字段的定义一般是char、vhar.

 

    1.2 接口方面

         使用的是webservice  以及webaip,在SQL语句里写入很长的语句,在项目中很普遍存在。 在项目中经常发生引用,比如类A要使用类B的b1方法

 b1方法中调用类C的c1方法 ,项目中的处理方式是  B b0=new B();  然后b.method();

 

    1.3 连接数据库使用的是ADO.NET  ,未做封装,即比如有三个接口,每个接口里会把从开启连接---执行SQL---关闭连接都写一遍,检查到

 

 

 1 SQL方面

查看到系统中存在有许多较为复杂逻辑的SQL

建议:

首先,针对于存储过程,建议行成文档,写明作用以及参数。利于项目管理以及团队协作开发。

优化方案:

1复杂逻辑处理

尽量去交给程序处理,之前与领导讨论,其实公司服务器的状态很OK,但是效率依旧缓慢,这里也会是一个重要的点,复杂的逻辑套的层次太多,SQL在处理这块的时候自然就会很慢

2 查询语句的优化

  禁止使用SELECT * ,这样的查询语句,需要什么拿什么。比如一个表A有150个字段,

而需要的结果只是10个字段,那么查询的时候应该只查这十个字段,从而加大数据库的效率。

使用索引进行查询

 

3表结构优化

  这一步工作虽然不好做,但是个人感觉是必要的。数据库在当初设计的时候,字段随意添加,导致表的字段过于冗长,之前做过会儿表结构整理,发现很多表的字段都达到了一百甚至更多,可以把表进行拆分。

 

 

 

2程序方面

1 USING作用域的使用

   using作用域,在该域内使用之后就释放资源。比如系统中很多时候会通过new 去创建一个对象,这里就涉及到了内存开销。用完后没有及时释放,只有等内存满了以后,程序才会自动释放资源。在使用定时任务的时候,也应该使用到。比如一个定时任务每两小时执行一次,开始执行的时候会gc掉上次的资源,本次资源会一直持续的持有,占用了内存

 

2 ADO.NET的优化

    查看到公司的项目,连接数据库都是使用的ADO.NET,一个页面可能发送四五个、七八个、甚至更多请求到Webservice或者WebAPI上,然后不停的打开数据库连接,而部分代码中并未去关闭连接,这样也会损耗性能,建议使用using作用域

 

缓存一些公用的数据,如组织机构等

 

这里也建议不要string sql=””时写过于复杂的SQL语句,可以考虑使用存储过程来处理,并且不要SELECT * 进行查询,只返回需要的数据

 

使用类型化方法访问属性

从Row中访问某列属性,用GetString、GetInt32这种显式指明类型的方法,其效率较通用的GetValue方法有细微提高,因为不需要做类型转换。

  

   

 

posted @ 2022-09-05 22:32  唐什么来着  阅读(161)  评论(0编辑  收藏  举报