- 浏览: 542985 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (339)
- JavaBase (27)
- J2EE (70)
- Database (22)
- Spring (3)
- struts1.x (6)
- struts2.x (16)
- Hibernate (10)
- IBatis (4)
- DWR (1)
- SSH (5)
- Oracle (31)
- HTML (12)
- javascript (11)
- Thinking (3)
- Workflow (5)
- Live (13)
- Linux (23)
- ExtJS (35)
- flex (10)
- php (3)
- Ant (10)
- ps (1)
- work (2)
- Test (1)
- Regular Expressions (2)
- HTTPServer (2)
- 方言 (1)
- 生活 (2)
- Sybase PowerDesigner (0)
最新评论
-
mikey_5:
非常感谢楼主的分享,<parameter propert ...
Check the output parameters (register output parameters failed) IN Ibatis -
影子_890314:
我现在也有这个错误,求解!
Check the output parameters (register output parameters failed) IN Ibatis -
358135071:
学习了,感谢分享!
使用hibernate 代替 mysql 中 limit 進行分頁 -
wjpiao:
你下面的“正确的映射”里面不是还是有number类型吗?
Check the output parameters (register output parameters failed) IN Ibatis -
zh_s_z:
很有用!弄一份吧!
Oracle数据库分区表操作方法
在一个单独的服务器中安装更多的
CPU成为目前的一个趋势。使用对称多处理服务器(SMP)的情况下,一个Oracle服务器拥有8个、16个或32个CPU以及几吉比特RAM的SGA
都不足为奇。
Oracle跟上了硬件发展的步伐,提供了很多面向多CPU的功能。从Oracle8i开始,Oracle在每个数据库
函数
中都实现了并行性,包括SQL
访问(全表检索)、并行数据操作和并
行恢复。对于Oracle专业版的挑战是为用户的数据库配置尽可能多的CPU。
在Oracle环境中实现并行性最好的方法之一是使用Oracle并行查询(OPQ)。我将讨论OPQ是如何工作的和怎样用它来提升大的全表检索的响应时 间以及调用并行事务回滚等等。
使用OPQ
当在Oracle中进行一次合法的、大型的全表检索时,OPQ能够极大地提高响应时间。通过OPQ,Oracle将表划分成如图A所示的逻辑块。
由 OPQ划分的表
一旦表被划分成块,Oracle启用并行的子查询(有时称为杂务进程),每个子查询同时读取一个大型表中的一块。所有子查询完毕以后,Oracle将结果 会传给并行查询调度器,它会重新安排数据,如果需要则进行排序,并且将结果传递给最终用户。OPQ具有无限的伸缩性,因此,以前需要花费几分钟的全表检索 现在的响应时间却不到1秒。
OPQ严重依赖于处理器的数量,通过并行运行之所以可以极大地提升全表检索的性能,其前提就是使用了N-1个并行进程(N=Oracle服务器上CPU的 数量)。
必须注意非常重要的一点,即Oracle9i能够自动检测外部环境,包括服务器上CPU的数量。在安装时,Oracle9i会检查服务器上CPU的数量, 设置一个名为cpu_count的参数,并使用cpu_count作为默认的初始化输入参数。这些初始化参数会影响到Oracle对内部查询的处理。
下面就是Orale在安装时根据cpu_count而设置的一些参数:
fast_start_parallel_rollback
parallel_max_servers
log_buffer
db_block_lru_latches
参数
让我们进一步看看CPU的数量是如何影响这些参数的。
参数fast_start_parallel_rollback
Oracle并行机制中一个令人兴奋之处是在系统崩溃时调用并行回滚得能力。当Oracle数据库发生少有的崩溃时,Oracle能自动检测未完成的事务 并回滚到起始状态。这被称为并行热启动,而Oracle使用基于cpu_count的fast_start_parallel_rollback 参 数来决定未完成事务的秉性程度。
并行数据操纵语言(DML)恢复能够在Oracle数据库崩溃后极大地加快其重新启动的速度。此参数的默认值是系统CPU数量的两倍,但是一些DBA们认 为应该将这个值设置为cpu_count的四倍。
参数 parallel_max_servers_parameter
Oracle一个显著的加强是自动决定OPQ并行的程度。由于Oracle清楚服务器中CPU的数量,它会自动分配合适的子进程的数量来提升并行查询的响 应时间。当然,会有其它的外部因素,比如表的划分以及磁盘输入/输出子系统的布局等,但是根据cpu_count来设置 parallel_max_servers参数将给Oracle一个合理的依据来选择并行的程度。
由于Oracle的并行操作严重依赖服务器上CPU的数量,parallel_max_servers会被设置成服务器上CPU的数量。如果在一台服务器 上运行多个实例,则默认值太大了,会导致过度的页面交换和严重的CPU负担。并行的程度还依赖于目标表中分区的数量,因此 parallel_max_servers应该设置成足够大以允许Oracle为每个查询选择最佳数量的并行子查询。
参 数log_buffer
参数log_buffer定义了供即刻写入redo日志信息的保留RAM的数量,这个参数受cpu_count的影响。Oracle推荐 log_buffer最大为cpu_count乘以500KB或128KB。CPU的数量对于log_buffer来说非常重要,因为Oracle会生成 多日志写入(LGWR)进程来异步释放redo信息。
log_buffer是Oracle中最易误解的的RAM参数之一,通常存在下面几个配置错误:
log_buffer被设置得太高(例如,大于1MB),这回引起性能问题,因为大容量的结果会使得写入同步进行(例如,日志同步等待事件非常高)。 log_buffer不是db_block_size的倍数。在的Oracle9i中,log_buffer应该是2048字节的倍数。
参 数db_block_lru_latches
LRU锁的数量是在Oracle数据库内部用来管理 数据库缓冲的,这严重依赖于服务器上CPU的数量。
很多聪明的Oracle9i的DBA使用多冲数据缓冲(例如db_32k_cache_size),他们推荐将这个未公开声明的参数重设置为默认的最大 值。db_block_lru_latches参数在Oracle8i中使用得很多,但是在Oracle9i中变成了一个未公开声明的参数,因为 Oracle现在根据数据库拥有的CPU数量设置了一个合理的默认值。
db_block_lru_latches默认被设置为服务器上cpu_count的一半(例如服务器上只有一个Oracle数据库)。Oracle推荐 db_block_lru_latches千万不要超过cpu_count的两倍或三倍,或db_block_buffers的五十分之一。
如果使用多缓冲池则这种计算方法有一个问题,因为不能控制分配给每个数据缓冲池的锁的数量。如果db_writers参数大于1,则默认值或许显得太小。
加 强服务器
Oracle数据库总是在提升性能,根据外部服务器环境检测cpu_count和基本参数设置的能力对于Oracle软件来说是一个重要的加强。
随着更多的Oracle系统转移到SMP上来,当客户要采取增强措施并将众多的数据库转移到拥有32个或64个CPU的巨大服务器上来的时候,这些参数显 得愈发重要。
oracle parallel execution example
引子:以前一直没太关注oracle并行这个特性。前几天一个兄弟碰 到的一个问题,才让我觉得这个东西还是有很多需要注意的地方,有必要仔细熟悉下。其实碰到的问题不复杂:类似如下的一条语句:insert into xxxx select /*+parallel(a) */ * from xxx a;数据量大约在75G左右,这位兄弟从上午跑到下午还没跑完,过来问我咋回事,说平常2hrs能跑完的东西跑了好几个小时还撒动静。查看系统性能也比较 正常,cpu,io都不繁忙,平均READ速度在80M/s左右(勉强凑合),但平均写速度只有10M不到。等待事件里面大量的‘ ‘PX Deq Credit : send blkd ’,这里能看出并行出了问题,从而最 后得知是并行用法有问题,修改之后20分钟完成了该操作。正确的做法应该是:
alter session enable dml parallel;
insert /*+parallel(xxxx,4) */ into xxxx select /*+parallel(a) */ * from xxx a;
因为oracle默认并不会打开PDML,对DML语句必须手工启用。 另外不得不说的是,并行不是一个可扩展的特性,只有在数据仓库或作为DBA等少数人的工具在批量数据操作时利于充分利用资源,而在OLTP环境下使用并行 需要非常谨慎。事实上PDML还是有比较多的限制的,例如不支持触发器,引用约束,高级复制和分布式事务等特性,同时也会带来额外的空间占用,PDDL同 样是如此。有关Parallel excution可参考官方文档 ,在Thomas Kyte的新书《Expert Oracle Database architecture》也有精辟的讲述。
发表评论
-
windows 启动关闭Oracle监听和服务
2012-01-05 10:28 2651经常要用数据库,让他自己启动的话,开机太慢,所以用命 ... -
入浅出Oracle--DBA入门、进阶与诊断案例
2011-01-18 10:14 1131数据仓库工具箱:维度建模的完全指南(第二版) Oracle ... -
oracle 树形查找
2010-12-02 10:33 722主题:Oracle树查询及相关函数 http://www.i ... -
create oracle DB auto increment PK trigger
2010-10-11 12:05 1058DROP SEQUENCE seq_chat_group_Id ... -
like %abc%
2010-09-09 00:23 1376关键字: oracle 优化 象 ... -
oracle user manager
2010-09-08 10:05 1053创建与管理用户账户 ... -
Oracle Execute Immediate
2010-06-24 23:10 1022EXECUTE IMMEDIATE 在某些情 ... -
oracle 常用的sql
2010-06-20 09:16 1086... -
oracle parallel execution example
2010-06-09 23:07 1330引子:以前一直没太关 ... -
Oracle Parallel Query
2010-06-09 23:06 2139Oracle Parallel Query(OPQ)可 ... -
Oracle数据库分区表操作方法
2010-06-09 22:46 1268文章转自: http://xu20cn.blog.51cto. ... -
Oracle并行服务器(OPS) Oracle Parallel Server
2010-06-09 22:44 1076文章转载自: http://xu20cn.blog.51c ... -
一个简单的Oracle任务
2010-05-13 08:36 779http://www.cnblogs.com/tohen/ar ... -
ORACLE DATE FUNCTION 大全
2010-05-13 00:47 1193TO_DATE格式 Day: dd number 12 ... -
ORACLE DB 定时任务机制
2010-05-13 00:45 1349简介 本文首先简单介绍了Oracle 8的数据复制的 ... -
ORACLE日期时间函数大全
2010-05-12 08:52 1241ORACLE日期时间函数大全 ... -
ORACLE时间处理大全
2010-05-12 08:48 1528... -
paging in oracle
2010-04-10 17:41 714/************************* get ... -
Extract use in oralce
2010-04-09 11:53 985racle中Extract函数的用法 SELEC ... -
about oracle data imp and exp
2010-04-08 20:39 864Oracle数据导入导出 imp/exp就相当于oracle ...
相关推荐
Tom Kyte and Darl Kuhn share a simple philosophy: "you can treat Oracle as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing ...
早期的OPS(Oracle Parallel Server)在Oracle 6和8i中引入,随后在Oracle 9i RAC中首次亮相,正式引入了集群概念。Oracle 10g RAC引入了Grid Computing和Oracle Clusterware,进一步增强了集群的稳定性和性能。在...
Oracle OCP(Oracle Certified Professional)是Oracle公司推出的数据库专业认证,12C是其第十二个版本,代表“云计算”(Cloud Computing)。OCP 12C升级考试是为了验证数据库管理员(DBA)对Oracle 12C数据库的...
早期的OPS(Oracle Parallel Server)到Oracle 9i RAC,再到Oracle 10g RAC,RAC逐渐发展为支持Grid Computing和Oracle Clusterware。Oracle 11g引入了RAC One Node,这是一种简化版的RAC,适用于单实例高可用场景。...
4. **数据仓库优化**:包括并行查询优化器(Parallel Query Optimizer)和物化视图,加速了大量数据的分析和处理。 5. **高级安全性**:增强了加密和审计功能,保护了敏感信息的安全。 然后,Oracle10g(10.2.x...
Oracle 11g通过其独特的网格计算(Grid Computing)、自我管理(Self-Managing Database)以及XML数据库(XML Database)等特性,为用户提供了前所未有的灵活性和可扩展性。 二、Oracle 11g的核心功能与优势 1. **网格...
Oracle 10g和11g则进一步强化了Grid Computing的概念,如Automatic Storage Management (ASM)和Data Guard,提供了自动化管理和灾难恢复解决方案。 在与IBM的DB2和Microsoft的SQL Server的竞争中,Oracle以它的开放...
Tom has a simple philosophy: you can treat Oracle as a black box and just stick data into it or you can understand how it works and exploit it as a powerful computing environment. If you choose the ...
5. **Grid Computing**:Oracle倡导的网格计算理念,通过资源共享和分布式计算提升系统性能和可用性。 6. **Self-Managing Database**:Oracle数据库的自我管理特性,如自动调优和自动故障恢复,降低了管理复杂性,...
另外,Parallel Computing Toolbox 可以进一步实现分布式计算,以处理更大规模的数据集。 最后,完成数据分析后,结果的存储和导出同样重要。MATLAB 的 `save` 函数可以保存 MATLAB 变量为 MAT 文件,`writetable` ...
第一、EMC Greenplum Data Computing Appliance (DCA):EMC 的 Greenplum 是一个基于 MPP(Massive Parallel Processing)的数据库管理系统,能够处理大量的数据。EMC Greenplum Data Computing Appliance (DCA) 是...
10. 并行计算:利用MATLAB的Parallel Computing Toolbox,可以在多核处理器或集群环境下并行处理大量数据,显著提高信息处理速度。 通过学习这个压缩包中的内容,开发者可以提升在MATLAB中管理不同类型信息的能力,...
9. Oracle Exadata数据仓库分析平台:Oracle推出了Exadata数据仓库分析平台,提供了高性能的数据分析和报表生成解决方案,支持成百上千的用户和各类应用操作。 10. HP Vertica云服务自动化解决方案:HP推出了基于...
EMC Greenplum Data Computing Appliance (DCA) 是一种模块化的解决方案,能够处理多种数据类型,包括结构化、半结构化和非结构化数据。通过与SAS和MapR等合作伙伴,DCA 扩大了对Greenplum的数据库支持。 2.Hadoop ...
并行计算的架构主要有几种类型,包括PVP(Parallel Vector Processors)、SMP(Symmetric MultiProcessing)、MPP(Massively Parallel Processors)、DSM(Distributed Shared Memory)和Cluster。 PVP,如IBM的SP...
Parallel Computing Toolbox Version 6.5 (R2014b) Partial Differential Equation Toolbox Version 1.5 (R2014b) Phased Array System Toolbox Version 2.3 (R2014b) Polyspace Bug Finder Version 1.2 (R2014b) ...
第六个解决方案是微软的 Parallel Data Warehouse,Parallel Data Warehouse 是一个基于微软 SQL Server 的数据仓库解决方案,可以快速处理大量数据,并且提供了高效的数据分析能力。 第七个解决方案是 SAP 旗下...
This book shows the use of R in specific cases such as one-way ANOVA analysis, linear and logistic regression, data visualization, parallel processing, bootstrapping, and more. It takes a hands-on, ...
1. **模块化EMC Appliance处理多种数据类型**:EMC Greenplum Data Computing Appliance (DCA) 是一款专为大数据设计的集成硬件和软件解决方案。它结合了EMC的存储技术和Greenplum的MPP数据库,支持大规模并行处理和...