对程序设计的讨论(原来还可以这样写程序)

今天在上班的时候听到一个同事在炫耀的程序设计,首先在页面获取了一个“a,b,c,d,……”字符串,然后把字符串以参数的形式传递到数据库服务器,通过存储过程进行解析,完成数据的增删改查的功能。我听到以后第一个反应,为什么要把应用服务器处理的事情交给数据库去做呢?这样效率高吗?

以下是我和同事的对话:

同事:这样肯定有好处,如果我把数据这样一次性传递给数据库,就不会因为程序中出现for循环,在多次的数据库通讯中因中断而导致数据部分插入。

我:那你现在是不是在程序中就没有用到过for循环进行数据库操作呢?

同事:有啊,当然有啊,这是没办法避免的;

我:那你的这些for循环怎么避免你提到的问题呢?

同事:(沉默)、嗯、啊、……

同事:可是,我这样写的话,如果是删除的话,“delete from table1  where name in (传递的参数)”,这样很方便啊;

我:那你的其他操作呢?你不需要insert,update吗?这样你需不需要存储过程帮你解析你的字符串呢?这样符合数据操作的原子性吗?你的数据库访问层是用来做什么的呢?

同事:我,嗯,举个例子:如果我有几百万的数据,我这样传到后台去删除,很快啊,比你一条一条删快多了(实际情况是他正在开发的系统,单次操作的数据数量级不会比学校图书馆的系统大)

我:你有那么多数据吗?没有,那你为什么要这样考虑呢?

同事:(一副我其实很有道理,你不理解的,我懒得解释给你听)

posted @ 2012-03-20 22:39  非心尸古力刀  阅读(224)  评论(1编辑  收藏  举报