1.在使用当中,当处理大量数据以及多人同时操作,对程序性能会不会影响,或者导至程序不可用?例如在新生入学时的学生信息导入,当有多人同时操作,每个人导入50000条记录用现在的这个系统结构会有多大的影响。如果有影响,有什么好办法可以解决。另外,现在导入数据的时候是一条一条的往数据库中插入。有什么办法可以批量导入,数据文件为access,excel表,批量插入只要1秒,而单条需要15秒.主要是access数据和sqlserver不在同一台服务器上,批量插入不好实现,有什么好的方法。
回答:
系统的性能是开发完成后即形成,是不变量,设计欠缺的系统,性能方面可能考虑欠佳。处理大量数据以及多人操作,不论对什么系统,都是一种压力,设计良好的系统承受能力高点,而性能欠佳的系统可能崩溃。
如果是异地操作,就是一个人操作50000条记录对系统来说都是挑战,何况多人(多少人?)。
对于批量数据,采用单条插入方式,这样的设计提倡避免。可以使用ftp传输方式将access文件传输到sqlserver服务器上,然后使用DTS方法进行数据转化。这个方式能够进行很多优化,比如繁忙的时候进行排队处理等。
另外可以将50000条记录拆分成几批数据,比如一批10000条,工5批,然后将每一批转化成批量的SQL语句,只需要执行5次SQL操作即可完成。
整个云南省就一台服务器在省级么?如果是这样,那么采用批量导入的方式直接操作数据库会给服务器带来巨大的负担。可以先将文件传输到数据库服务器,由服务器选择空闲的时间对文件处理,同时在数据库中设置处理协议以通知提交者数据是否被处理完成。这样的处理方式可以使服务器在夜间也能工作。如果个县级有服务器就好多了,只需要在夜间的时候通过数据库本身的同步机制进行数据同步即可。
2.用sqlserver数据库,对于以后数据记录很多,对程序性能肯定有影响,怎么优化更好一点。
回答:
对于数据库性能的优化是多方面的因素,需要根据实际情况决定。比如数据库表的索引是否合理、组合查询是否频繁且量大、为SQL Server分配的内存是否合理、数据库查询操作语句是否合理等。
要做到这些,必须有合理的总体规划设计,特别避免各自负责一块,自己写自己的语句,比如今天张三将本来是聚合索引的ID字段变成了非聚合索引字段,而将另外一个时间字段变成了聚合索引,李四却不知道这个改变,仍然以为select …….where ID > 10000 and name = ‘aaa’是个高效的查询。
3.现在开发程序中,业务处理的时候没有事物处理、异常处理,有什么好的方法可以把现在的函数及方法加上事物处理、异常处理。或者其它更好的解决方法。
回答:
发生这样的情况是一种灾难,没有好办法,只有花费人力财力仔细检查修改了。
4.程序以前并发性很严重,现在几乎都改为了在插入的时候用触发器或者函数生成Id然后在插记录,是否能解决并发问题,或者对性能方面有什么大的损失。
回答:
如果数据库性能已经得到最大限度的调整,并发问题仍然严重,那么就在增加服务器数量或换更好的服务器吧。
5.在以后的开发中如果用webservice开发,是否可行。主要考虑是为了以后校级系统的开发接口方便。现在开发的不是这种模式的。
回答:
首先说明,webservice的性能目前不是很让人满意,希望以后能够得到改善,但和remoting比起来,webservice适合广域网,而后者适合局域网。
如果总是一次性处理大量数据的话,这个方式不是很好。
6.现在的程序中,层次比较混乱。有些代码是在界面传sql到中间层处理返回结果,有些是在中间层处理后返回,有些专门写了一个如查询修改类来实现,有些则不是,应该怎么样去规划。有什么好的方法来实现,并对现在的程序改动并不是很大。
回答:
:(,目前不可能有不需要很大修改就能够改变的方法。
8. 在开发当中,实现功能并不是很复杂。但以前写的程序由于开发人员流动比较大以及水平或考虑问题不周。留下了许多问题,给现在开发带来很大困难,需要修改优化以前的代码。怎样去解决这些问题,应该怎么样去规划,修改。
出现这样的问题是恶性循环的结果。公司的企业文化建设不够,不足以稳住人;项目没有挑战性,留不住人;项目进入恶性循环,累跑人;中层领导魅力不够,吸引不了人;管理混乱,有无数的事情做,但又觉得没有做什么事情,让人看不到前途,走人,等等。。。
这也是个复杂的问题,软件开发,特别是现在的系统,都比较庞大,涉及人力、物力、财力的面都比较广,需要公司从方方面面着手逐步改善。对于已经出现这样的情况,更加要有长远一点的考虑,完善公司薪酬体系,建立合理的组织结构,逐渐建设企业文化,提高人员素质等都是要紧事。
如果管理层已经意识到这是一个失败的项目,但还必须得拯救,那么就多往项目投入资金和人力吧,如果舍不得投入又要拯救,恐怕只有神仙有这个能力了。如果能够投入,当然不是钱越多越好、人越多越好,而是人员结构层次分明,比如一个项目经理、一个系统分析兼高级程序员、两或多个普通程序员,如果有足够的人力可以把系统分析和高级程序分别让两人担当。另外用money设置足够的激励机^_^(对小公司来说,这招最有效)。
现在程序开发当中,应该注意,应该解决的问题是些什么?或者以后开发新程序应该注意的地方是什么?
回答:
程序开发会涉及什么就应当注意什么,涉众(包括客户、销售人员、领导、直接开发人员),开发管理体制,团队文化,资金,技术等都需要注意。呵呵,这个足够用一本书来讲了。
国内的很多小公司,缺乏能够进行系统分析设计的人、管理项目的人,但又舍不得花钱引进或培养(怕跑了),如果这样的话那就先花精力将公司建设得更加有吸引力再谈开发吧,如果没有钱那就考虑转行别做开发了。
对于许多小公司来讲,可以这样入手,要找一个经验丰富的能够把握整体系统的人进行整体上的前期设计,如果实在没有,就选一个学习能力强的人进培训;其次是需要舍得花时间进行足够的培训;再有,给予项目经理足够的权力,加强团队理念建设,那些对建设团队理念阻碍较大的人员坚决不要,否则后患无穷。在这些基础上加强开发流程的建设完善,要想软件质量好,只有开发流程是合理的,否则能力再强的人也不能开发高质量的产品。总的思想就是:要想要软件产品质量好,就需要合理的人员结构、合理的开发方式、管理体制、团队文化(企业文化),这些虽然比较难做得完善,但只要做得比别人好^_^。没有听过这个么:在森林里遇上老虎,你只需要比你同伴跑得快。
至于以后开发新程序需要注意什么地方,这个问题最简单,那就是注意现在出现的问题,保证以后不再出现,预测以后将会出现的问题,尽量避免。其实别人回答这个问题都不合适,最合适的人员应当是现在的负责人。