多个表连接进行更新-Oracle
update (SELECT a.sqdxh a1, b.dmbh a2 ,b.dmmc a3 ,c.ydlb a4FROM JF_YDSQD a,dmb b ,bzjd_ydhqd cwhere a.ydlb = b.dmbh and b.dmlbbh_id ='03'and a.sqdxh = c.ydsqdxh)set a4=a3 update bzjd_ydhqdset ydlb =(SELECT b.dmmcFROM JF_YDSQD a,dmb bwhere a.ydlb = b.dmbh and b.dmlbbh_id ='03'and a.sqdxh = bzjd_ydhqd.ydsqdxh ); [@more@]
ORACLE体系结构之集群(RAC)
首先是几个需要了解的名词解释:集群是指多台计算机物理的连接在一起。RAC是Oracle Real Application Cluster的简写,官方中文文档一般翻译为“真正应用集群”,它一般有两台或者两台以上同构计算机及共享存储设备构成,可提供强大的处理能力! 为什么需要RAC?如果说我们通过对服务器添加CPU, 增加RAM等行为属于垂直扩展;那么多台计算机进行RAC就属于横向扩展!高可用性是其最主要的特性!只要集群中有一台机器没有出现故障,就能保证用户的正常使用!当然如果出现某种大的灾难时,就应该使用Oracle9i Data Guard的失败切换方案!另外可伸
ORACLE性能调整--统计信息的迁移
很多时候本地测试环境无法100%的模拟出客户生产系统的所有性能问题,可能在本地环境中速度很快只需几分钟,但在客户那边却往往要跑上几个小时,这个时候除了想办法模拟出客户生产系统中一样多的数据外,还需要得到生产系统的统计信息,导入本地系统重现性能问题! 下面的语句就是具体的操作步骤! 生产系统:--执行统计信息操作BEGIN DBMS_STATS.GATHER_SCHEMA_STATS('CITICTEST', 10);END;--创建一个统计信息实体表BEGIN DBMS_STATS.CREATE_STAT_TABLE(null,'STATISTICS',null);END;--统计信息导出至实体表BEGIN DBMS_STATS.EXPORT_S
ORACLE分析函数--row_number()应用
当遇到一个部门有多个员工记录,需要去取出每个部门薪水最少的那笔时,就可以用到分析函数row_number()拉 select * from( select manager_id,employee_id,first_name,salary,row_number() over(partition by manager_id order by salary) as currowid from hr.employees) where currowid = 1[@more@]
ORACLE故障排除--注意事项
1. 在系统良好运作时, 进行一次Statspack! 并将结果文件保存作为以后的判断标准.2. ORACLE中建立一张存放有执行计划的表脚本如下: --建立一张计划表create table plan_hashes( sql_text varchar2(1000), hash_value number, plan_hash_value number, constraint plan_hashes_pk primary key(hash_value,sql_text,plan_hash_value))organization index; --将shared_pool中的语句插入计划表insert into plan_hashes( sql_text, hash_value, plan_hash_value )select distinct sql_text, hash_value
ORACLE学习笔记--性能优化四
22. SQL语句的优化方法<1> /*+ALL_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.例如:SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=“CCBZZP“;<2>. /*+FIRST_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.例如:SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=“CCBZZP“;<3>. /*+CHOOSE*/表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐
ORACLE学习笔记--性能优化三
18.怎么清理临时段可以使用如下办法<1>、 使用如下语句查看一下认谁在用临时段SELECT username,sid,serial#,sql_address,machine,program,tablespace,segtype, contentsFROM v$session se,v$sort_usage suWHERE se.saddr=su.session_addr<2>、 那些正在使用临时段的进程SQL>Alter system kill session “sid,serial#“;<3>、把TEMP表空间回缩一下SQL>Alter tablespace TEMP coalesce;还可以使用诊断事件<1>、 确定TEMP表空间的ts#SQL> select ts#, name FROM v$tablespace;TS# NA
ORACLE学习笔记--性能优化二
10.Oracle什么时候会使用跳跃式索引扫描这是9i的一个新特性跳跃式索引扫描(Index Skip Scan).例如表有索引index(a,b,c),当查询条件为where b=?的时候,可能会使用到索引index(a,b,c),如,执行计划中出现如下计划:INDEX (SKIP SCAN) OF “TEST_IDX“ (NON-UNIQUE)Oracle的优化器(这里指的是CBO)能对查询应用Index Skip Scans至少要有几个条件:<1> 优化器认为是合适的。<2> 索引中的前导列的唯一值的数量能满足一定的条件(如重复值很多)。<3> 优化器要知道前导列的值分布(通过分析/统计表得到)。<4&
ORACLE学习笔记--性能优化一
1. 查询正在执行语句的执行计划(也就是实际语句执行计划)select * from v$sql_plan where hash_value = (select sql_hash_value from v$session where sid = 1111);其中id和parent_id表示了执行数的结构,数值最大的为最先执行比如ID PARENT_ID-------------01 02 13 24 35 46 3则执行计划树为 0 1 2 3 6 4 52.如何设置自动跟踪
Oracle对SAP优势简述
作者:冯强 笔者接触SAP产品线约十年,从事过SAP的开发、实施、应用咨询等多项工作,对SAP的ERP和CRM略懂一点。Oracle产品线接触时间稍晚,主要涉及CRM(Oracle和Siebel)和ERP等产品。应该说,在全球高端ERP的竞争中,主要是SAP和Oracle的竞争。SAP因为比较重宣传,大家了解多一些,所以这次重点谈谈Oracle对SAP的优势所在,分析的产品还是以ERP为主。 大家都知道,Oracle是一家能提供大型数据库、中间件以及信息产品和平台的综合软件公司,SAP则是以信息产品为主的软件公司。Oracle拥有业界最优秀的数据库解决方案,这为ERP系统的稳定、
oracle移动数据文件
Oracle数据库在使用过程中,随着数据的增加数据库文件也逐渐增加,在达到一定大小后有可能会造成硬盘空间不足;那么这时我们可以把数据库文件移动到另一个大的硬盘分区中。下面我就以Oracle for Windows版本中把C盘的数据库文件移动到D盘为例介绍Oracle数据库文件移动的方法和步骤。 1.在sqlplus中连接到要移动文件的Oracle数据库,然后执行如下SQL语句查看Oracle数据库文件位置:SQL> select file_name from sys.dba_data_files;FILE_NAME--------------------------------------------------------------C:ORA8ORADATAORACLEUSE
手工转移数据库Step By Step
有时候我们会遇到这样的情况,现有的数据库要从一个机器转移到另外一个机器上,一般我们会使用导出,导入。但是如果数据库的数据非常多,数据文件尺寸很大,那么在导出导入的过程就很可能会出现问题,并且漫长的过程也是我们无法容忍的。在这种情况下,我们可以简单地使用操作系统的copy命令,直接进行数据库的转移。 以下示例均在Redhat Fedora Core 1上的Oracle9.2.0.1中操作,其它操作系统和Oracle版本同样适用。 假设我们的数据库在服务器A上,$ORACLE_BASE是/oracle,$ORACLE_HOME是/oracle/product/9.2.0。现在我们要将此数据库转移