2012年使用了一点oracle,那个时候其实并不真正的了解这个数据库,所会的也就是利用toad做一些简单的管理,后来转战到sqlserver才开始对数据库这个东西有了一些了解。使用了sqlserver有一年多了,后来又开始使用了oracle了,让我一阵须臾,这回多少也该弄懂了oracle这个大大了吧,经过我的使用还真是发现了一些不同。
sqlserver在存储中使用了不少的临时表,因为这有助于管理好数据的edit,但是这个方法在oracle中确实很少见的,因为对于oracle来说,临时表的建立与正是表的建立消耗的资源是一样的,对数据库的压力是很大的,不能自由的建立和释放。其实我到现在也不太明白oracle是怎么处理大型综合数据的,给我的一个直观的感受是oracle多使用小量代码的存储结构,而sqlserver 则擅长使用大量代码的存储结构。
sqlsever是很少使用触发器的,至于为什么我是没有仔细研究过,触发器可以帮助我们处理一些固定的规则的增量数据事物,哦对了,sqlserver也不怎么使用事物,但是这在oracle中是常见的。当然做数据运维的时候有的时候触发器如果不了解可不是什么好事。
sqlserver我是没见过使用游标的,也许你会惊讶,在写代码的时候难道没有写游标吗?那个游标是要写的,但是在存储中,我还真没见过游标式的提取数据,但是这种方法在oracle中却是大行其道的,oracle中使用游标提取数据,然后做处理,sqlserver则善于使用临时表处理。不过我并不清楚oracle是怎么调用存储和提取数据的,因为工作中并没有涉猎过,以后有时间会研究下。
知道了一些sqlserver和oracle的不同,让我对mysql也有了一些好奇,但是由于不经常使用,只是偶尔做一些基本的使用,所以感触不深,因为并不是做DBA,我其实也没多大动力去研究深入,不过作为茶余饭后,我想有时间我顺手看下好了,至于T-SQL和PL/SQL的用法区别就没法说了,就像sql不区分大小写数据,而oracle则严格区分大小写和空格一样,这和性格一样,微妙的地方太多了。不过特别喜欢toad带来的monitor机制,这点希望sqlserver抓紧努力!!