数据处理的三种方式
数据处理的三种方式
1、单条SQL语句一次性的执行数据处理
2、采用游标一条一条的逐步循环处理
3、采用Oracle的BULK COLLECT程序批量处理
www.zzzyk.com
一般性的原则是:
如果可以通过单条SQL实现,而且单条SQL语句的数据处理量不是非常庞大,则采用单条SQL一次性执行的方法是最好的,因为这时打开数据库的次数和处理数据的次数都最少,操作简单而且性能良好,那么,这个数据量如何把握呢,最好的办法是尝试,看看在当前数据库服务器资源确定情况下,多少数据执行起来效率最好,经验上来讲,数万条数据用单条SQL都是没有问题的,超过了10万,就需要斟酌是否会消耗过多内存或者是回滚段。
采用游标逐条处理数据的方法,是在单条SQL语句无法实现数据处理情况下的最常用方法,在不必要通过批处理来提高性能的情况下,我们没有必要摒弃这种方法,而全部使用批处理。那么,在什么情况下使用批处理,如何使用呢
1、在使用批处理效果很好时再使用它
有几层含义,首先,我们要在处理的数据量比较庞大,使用批处理可以提高性能的情况下才使用,至少,这个庞大的数据,是要数万行以上的;其次,批量处理,也包含分批分量的意思,因为批量,并不意味着更多就表示更好,应该尽量做到平衡,我们可以结合数据库的内存等资源情况,测试了解系统的吞吐量,如果一次处理50条数据,一次处理200条数据以及一次处理500条数据等几种情况相比,一次处理200条数据的性能最好,说明我们的系统在批次处理200条数据的资源耗用时达到良好平衡。 www.zzzyk.com
2、在使用ETL数据处理的情况下,推荐使用
批量处理的一种主要应用是ETL数据处理,可以通过BULK COLLECT批量实现数据的抽取,转换和装载操作,即使这时需要增加稍多一些的代码,从提高性能和资源耗费等方面来讲,也是非常值得的,此时数据库会生成更少的重做数据,产生更少的内部锁,因而节省ETL操作的时间。