C/S 结构的程序速度总是很慢,有没有什么好的优化办法?(来者有份)

yeefa 2011-06-24 12:36:30
加精
首先跟大家讲一下我们现在这个项目的结构模式:

1、服务端采用WCF编写的,主要负责数据的读写操作
2、客户端传入相应的语句与参数来从服务器获取数据

遇到的问题:

每次打开UI界面的时候速度都很慢,每次都要等上好几秒钟,哪怕查询结果只有十多条数据,总是让人觉得这个系统是不是挂掉了,后来加了一个假的进度条来显示加载数据的过程,用户体验好了一些,但还是要等好久

有没有人能提供一些优化的思路呢?

我下面把我自已的一些思路写下来,大家帮我看看,帮我提提建议,或者有更好的优化方法那更好:

1、首先把所有用户都共同的系统基础数据保存到本地,每次登陆系统的时候自动更新本地的基础数据(如分组类型数据、职位、部门、区域),这样每次打开界面或查询数据的时候就不需要从数据器获取了,直接从本地读取就可以了;

2、其次,把系统的所有查询语句改成用存储过程,减少上传服务器的数据量,只上传存储过程名称和相关的参数值就可以了

3、再就是优化数据库的索引

4、最后压缩需要传输的数据,以减少传输返回的数据量

希望这样来提搞系统的性能,不知道能提高多大的性能,你们认为如何呢,有没有其它更好的办法呢?

...全文
7001 171 打赏 收藏 转发到动态 举报
写回复
用AI写文章
171 条回复
切换为时间正序
请发表友善的回复…
发表回复
HDZC 2011-09-06
  • 打赏
  • 举报
回复
直接用你寫的SQL在分析器里跑一下看不就知道了!
ilovecx 2011-08-31
  • 打赏
  • 举报
回复
等到那楼主问题解决时,再来向大家说说
cheeks 2011-08-30
  • 打赏
  • 举报
回复
接分
之前做过一个项目,也遇到这个问题,不过处理起来效果不是很理想。

在服务器端做个 中间件 ,在需要数据访问的时候 交给中间件来处理, 中间件 启用多线程处理模式,这样就不存在一查询就像要死机的问题,
liuyeee 2011-08-29
  • 打赏
  • 举报
回复
学习了!
zhizhi919 2011-08-25
  • 打赏
  • 举报
回复
学习ing,比较同意先分析是由哪部分引起的慢的原因
翘楚时代 2011-08-24
  • 打赏
  • 举报
回复
不知道大家为什么总是从程序的角度出发?
而不去考虑下客户端或者是数据源呢?
数据源很庞大,你程序做的再好效率也上不去。
如果数据源(上百万条数据)做好了规划设计,如索引等,程序运行起来也没用多大压力。
zfgican 2011-08-22
  • 打赏
  • 举报
回复
学习了
xk2y 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sp1234 的回复:]
1. 缓存的意思,许多人都片面理解为在客户端保存一些数据。这其实谁都会做。真正关键的技术是看你会不会控制缓存依赖,即保证缓存的数据不是脏数据,当后台数据改变的时候缓存中的数据就有一部分(至少包括所有脏数据)被自动清除了。所以缓存依赖技术,才是缓存技术的本质。

2. 你的WCF是用来传送sql语句?这个我实在是无言了。这不是我所知道的业务服务的理念。

3. 写查询sql的时候,比如你写到……
[/Quote]

第3点应该怎么具体?
htmlchen 2011-08-20
  • 打赏
  • 举报
回复
c/s程序可以试试mozilla框架,用xml写界面,用js写逻辑,没错,js写客户端. thunderbird firefox等都是用它写的.开发效率很高,要求的程序员水平门槛也很低.
krqw 2011-08-20
  • 打赏
  • 举报
回复
学习一下...
程序员小哈 2011-08-20
  • 打赏
  • 举报
回复
[Quote=引用 37 楼 qq598235031 的回复:]

是你的程序很慢,而不是C/S结构的程序速度慢,
也许吧,项目的结构是否合理?还是程序结构是否要优化,数据库的优化,考虑下你就得到答案了。
[/Quote]

顶一下
axzs7878 2011-08-20
  • 打赏
  • 举报
回复
WCF 建议采用wsHttpBinding 进行绑定,通信!

查询时,用类封装数据库字段...
zhoufs 2011-08-19
  • 打赏
  • 举报
回复
做C/S 结构的系统,真的还是用Delphi最好,什么WFC之类。。。,不要赶时髦。 速度慢我怀疑问题很可能与WFC有关。


clearfxxk 2011-08-19
  • 打赏
  • 举报
回复
路过学习···
lsq891108 2011-08-19
  • 打赏
  • 举报
回复
怎么办
清风道禅 2011-08-19
  • 打赏
  • 举报
回复
不太明白·仅仅提出以下问题
1.你每次启动程序的时候 是否首先进行初始化WCF的接口,并立即调用接口的方法
2.是每次执行查询或者调用WCF的接口时候都慢还是只有第一次慢。

如果有上述问题:
1.开个线程来初始化初始化WCF的接口,调用一个方法。
2.每次都慢·就得考虑你的查询优化问题了。
changhong45 2011-08-18
  • 打赏
  • 举报
回复
顶一个
oneatree 2011-08-18
  • 打赏
  • 举报
回复
mark 学习
无糖酸奶 2011-08-18
  • 打赏
  • 举报
回复
整个系统太庞大了,我是来取经的
xinxinling 2011-08-18
  • 打赏
  • 举报
回复
关注下...
加载更多回复(151)

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧