摘要: Hint 是Oracle 提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式。因为Hint的特殊作用,所以对于开发人员不应该在代码中使用它,Hint 更像是Oracle提供给DBA用来分析问题的工具 。在SQL代码中使用Hint,可能导致非常严重的后果,因为数据库的数据是变化的,在某一时刻使用这个执行计划是最优的,在另一个时刻,却可能很差,这也是CBO 取代RBO的原因之一,规则是死的,而数据是时刻变化的,为了获得最正确的执行计划,只有知道表中数据的实际情况,通过计算各种执行计划的成本,则其最优,才是最科学的,这也是CBO的工作机制。 在SQL代码中加入Hi 阅读全文
posted @ 2013-03-21 20:56 wilson.han 阅读(294) 评论(0) 推荐(0)
摘要: 实战:接下来我们有一个任务,有一个表T,有两个字段a,b,我们想在表T中做Insert/Update,如果存在,则更新T中b的值,如果不存在,则插入一条记录。在Microsoft的SQL语法中,很简单的一句判断就可以了,SQL Server中的语法如下:if exists(select 1 from T where T.a='1001' ) update T set T.b=2 Where T.a='1001' else insert into T(a,b) values('1001',2);以上语句表明当T表中如果存在a='1001&# 阅读全文
posted @ 2013-03-21 20:38 wilson.han 阅读(370) 评论(0) 推荐(0)
摘要: Oracle9i引入了MERGE命令,你能够在一个SQL语句中对一个表同时执行inserts和updates操作. MERGE命令从一个或多个数据源中选择行来updating或inserting到一个或多个表.Oracle 10g中MERGE有如下一些改进: 1、UPDATE或INSERT子句是可选的 2、UPDATE和INSERT子句可以加WHERE子句 3、ON条件中使用常量过滤谓词来insert所有的行到目标表中,不需要连接源表和目标表 4、UPDATE子句后面可以跟DELETE子句来去除一些不需要的行 首先创建示例表:<CCID_NOBR><CCID_CODE> 阅读全文
posted @ 2013-03-21 20:35 wilson.han 阅读(587) 评论(0) 推荐(0)
摘要: 使用 Oracle Database 10g 中的闪回表特性,可以毫不费力地恢复被意外删除的表。以下是一个不该发生却经常发生的情况:用户删除了一个非常重要的表 — 当然是意外地删除 — 并需要尽快地恢复。(在某些时候,这个不幸的用户可能就是 DBA!)Oracle9i Database 推出了闪回查询选项的概念,以便检索过去某个时间点的数据,但它不能闪回 DDL 操作,如删除表的操作。唯一的恢复方法是在另一个数据库中使用表空间的时间点恢复,然后使用导出/导入或其他方法,在当前数据库中重新创建表。这一过程需要 DBA 进行大量工作并且耗费宝贵的时间,更不用说还要使用另一个数据库进行克隆。ORAC 阅读全文
posted @ 2013-03-21 17:37 wilson.han 阅读(266) 评论(0) 推荐(0)
摘要: ORACLE EXPDP命令使用详细相关参数以及导出示例:1. DIRECTORY指定转储文件和日志文件所在的目录DIRECTORY=directory_objectDirectory_object用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS目录Expdp scott/tiger DIRECTORY= DMP DUMPFILE=a.dumpcreate or replace directory dmp as 'd:/dmp'expdp zftang/zftang@zftang directory=dmp dumpfil 阅读全文
posted @ 2013-03-21 17:33 wilson.han 阅读(649) 评论(0) 推荐(0)
摘要: Oracle性能参数—经典常用0、数据库参数属性col PROPERTY_NAME format a25col PROPERTY_VALUE format a30col DESCRIPTION format a100select * from database_properties;select * from v$version;1、求当前会话的SID,SERIAL#SELECT Sid, Serial# FROM V$sessionWHERE Audsid = Sys_Context('USERENV', 'SESSIONID');2、查询session的OS 阅读全文
posted @ 2013-03-21 17:26 wilson.han 阅读(202) 评论(0) 推荐(0)