|
原帖由 newkid 于 2011-9-2 21:35 发表 ![]()
"比如,有些人喜欢用大小写列名,select时需加引号。DAU自动处理的,你的程序若处理这些,又得增加代码。
有些人怕别人盗取数据逻辑,采用如MG0001,LP0002这样不可懂的列名,一个表百十来个。要是手写列名,。。。。。。。"
这个问题好像以前也讨论过。不要忘了,用户才是应用和数据的真正主人。你在数据库里设置的种种障碍最后只会搬起石头砸了自己的脚。你在开发、调试的时候需要看数据吧,要不怎么知道事务正确写入了?这时候看到一堆莫名其妙的列名会很爽?再说这种低级的“保密”手段也很搞笑,你敢不给设计文档?如果你的商业对手需要,自有手段搞到,你只是为自己和用户添堵。(我完全同意。但这是客户的想法,后来也改了。之前有人这么做。之后也可能有人这么做,我只不过提供一点支持而已)。
“最后你也承认,PL/SQL不提倡动态语句,最好处理裸数据。这就承认了,这种高度柔软的程序,不适合PL/SQL做。”
我也用动态SQL, 但不是用于这种低层次的包装,我用它处理组合查询,用较少的代码应付大量的组合条件。PL/SQL能伸能缩,亦柔亦刚,SCALABILITY与FLEXIBILITY兼备,实乃人间第一神器也!
“实践表明,DAU在大规模并发事务处理中具有明显优势。”
你的优势其实是ORACLE在并发性能方面的优势,不是你的DAU,你那些事务用PLSQL来实现还更有优势。
“sql抛弃了,就没有数据检索了吗?那么,在SQL出现之前,计算机不处理数据检索吗?”
话是这么说,但没有人希望走回头路吧?
“用PL/SQL,不一定要用存储过程。”
难道用匿名块,每次都重编译?
“原教旨主义者攻击异教徒了。
说话是有语义环境的。在说数据存取吗?”
奥哦,不知道你心灵这么脆弱,我以为你很皮实呢。你给我扣“原教旨主义者”的帽子我也不过一笑置之。你要是能找到有趣的漫画来攻击我,我倒是很乐意看看的。
noSQL是历史长河的一朵小小浪花,我们注意到它。稍微有点往回卷(历史倒退)。未对其前途进行评估。
只说其可能。。。。。。。就程序的柔性而言,未必比SQL好。
就我那个通用统计脚本语言而言,最初就是在noSQL的关系数据库上开发的。后来还是发现SQL对它更适合。
。。。。。
DAU就是利用了基本数据库的优势,这并不矛盾。PL/SQL我不敢说。但TRS使用SYBASE,存储过程,问题已经非常明显,如果你春运期间在中国买火车票,你很有可能突遇故障,交易缓慢甚至停顿。据铁科研客票组分析,原因之一是存储过程处理临时表造成系统表锁定。
另外就是系统处理压力完全在数据库引擎,无法分担。当然还有其它原因。最主要就是数据库选择不当。现在想换数据库,不可能了。
因为用了存储过程,改换门庭不是一个容易的事。试想如果当年使用了某种独立于数据库的框架,现在换ORACLE就容易多了。
鉴于这个教训,才有研发柔性框架的思想。
将来如果有比ORACLE更好的数据库出现呢?
当年INFORMIX最好,后来它没落了。现在ORACLE最好(性能最高)。DB2正在赶上来,某些方面比ORA强,总体还是差一些。
将来,不好说。
ODBC和JDBC当然是独立于数据库的,但是它把几乎全部业务逻辑放在客户端,这种低效的安排,是你我都不提倡的。
提高效率的方法是,客户端只给服务器传送命令,服务器返回最终结果。中间过程就不要在网络上传输了。
解决办法有两个,存储过程或3层C/S,即C/S/S模型。我是在为C/S/S提供工具。DAU支持存储过程,这样,一个业务逻辑,你可以写在存储过程,也可以写在应用服务层,都很方便。你可以两个都写出来,比较测试,得到自己的结论,比在这里打嘴仗有效得多。
[ 本帖最后由 yulihua49 于 2011-9-4 10:46 编辑 ] |
|