merge into Oracle里的 saveOrUapdate】的更多相关文章

1.初始数据: SQL> select * from a; ID NAME ---------------------- ---------------------- 1 1 2 1 3 1 4 1 5 1 SQL> select * from b; ID NAME ---------------------- ---------------------- 1 2 2 2 11 11 2.目标:1)a表中id与b表中id一样的话,更新a.name以b.name为准:2)b表中id不在a表中的话…
优化器(optimizer)是oracle数据库内置的一个核心子系统.优化器的目的是按照一定的判断原则来得到它认为的目标SQL在当前的情形下的最高效的执行路径,也就是为了得到目标SQL的最佳执行计划.依据所选择执行计划时所用的判断原则,oracle数据库里的优化器又分为RBO(基于原则的优化器)和CBO(基于成本的优化器,SQL的成本根据统计信息算出)两种. 一.RBO Oracle会在代码里事先为各种类型的执行路径定一个等级,一共15个等级,从等级1到等级15,oracle认为等级1的执行路径…
详细介绍了Oracle数据里与执行计划有关的各个方面的内容,包括执行计划的含义,加何查看执行计划,如何得到目标SQL真实的执行计划,如何查看执行计划的执行顺序,Oracle数据库里各种常见的执行计划的含义,以及如何在Oracle数据库中稳定执行计划. 2.1什么是执行计划 为了执行SQL语句,Oracle在内部必须实现许多步骤,这些步骤可能是从数据库中物理检索数据行,或者用某种方法来准备数据行等,接着Oracle会按照一定的顺序依次执行这些步骤,最后将其执行结果作为目标SQL的最终执行结果返回给…
oracle里的查询转换的作用 Oracle里的查询转换,有称为查询改写,指oracle在执行目标sql时可能会做等价改写,目的是为了更高效的执行目标sql 在10g及其以后的版本中,oracle会对某些类型的查询转换(比如子查询展开.复杂视图合并等)计算成本,oracle会分别计算查询转换后的 等价改写的sql的成本和原始sql的成本,如果改写后的sql的成本低于原始sql的成本,oracle才会对目标sql执行查询转换. 子查询展开—in.exists.. 指优化器不在将子查询当做一个独立的…
1 执行计划的查看 1 explan plan 2 dbms_xplan包 3 sqlplus中 set autot 4 10046 5 awr报告 6一些现成的脚本 7 10053 常见的就前4种 执行计划的补充信息 Note ----- - dynamic sampling used for this statement - cardinality feedback used for this statement - sql profile sys_sqlprof_  used for th…
作用:使用一条sql语句进行insert或者update操作,如果存在就update,如果不存在就insert 语法: MERGE INTO table_name t1 USING (table|view|sub_query) t2 ON (join condition) WHEN MATCHED THEN UPDATE table_name SET col1 =.., col2 =..WHEN NOT MATCHED THEN INSERT (..) VALUES (..); 注意:由于Mer…
ORACLE里锁有以下几种模式:0:none1:null 空2:Row-S 行共享(RS):共享表锁,sub share 3:Row-X 行独占(RX):用于行的修改,sub exclusive 4:Share 共享锁(S):阻止其他DML操作,share5:S/Row-X 共享行独占(SRX):阻止其他事务操作,share/sub exclusive 6:exclusive 独占(X):独立访问使用,exclusive 数字越大锁级别越高, 影响的操作越多. 1级锁有:Select,有时会在v…
1.1 oracle里的优化器 RBO(Rule-Based-Optinizer):基于规则的优化器 CBO(Cost-Based-Optinizer): 基于成本的优化器 SQL语句执行过程 待执行的sql → 解析 (语法,语义,权限检查)→ 查询转换 → 优化器(RBO/CBO)→ 执行计划 → 实际执行 → 结果 1.1.1 基于规则的优化器 RBO oracle会在代码中事先给各种执行路径定一个等级,共有15个等级,其中等级1 执行率最高,RBO会从中选择等级值低的来执行 OLTP:可…
ORACLE里锁有以下几种模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁,sub share  3:Row-X 行独占(RX):用于行的修改,sub exclusive  4:Share 共享锁(S):阻止其他DML操作,share 5:S/Row-X 共享行独占(SRX):阻止其他事务操作,share/sub exclusive  6:exclusive 独占(X):独立访问使用,exclusive 数字越大锁级别越高, 影响的操作越多. 1级锁有:Selec…
Oracle里sql*plus的用户名即system用户,密码是自己设置的密码. 如果密码忘记,可通过如下方法重置. 1.win键+R键,输入cmd,打开命令提示符. 2.输入sqlplus /nolog 3.继续输入conn /as sysdba 4.输入 alter user 用户名 identified by 密码; 5.修改成功后,会有上图“用户已更改”的提示,再次登录时用自己设定的密码即可.…
一.什么是统计信息 oracle数据库里的统计信息是如下的一组数据:他们存储在数据字典里,且从多个维度描述了oracle数据库数据对象的详细信息. oracle数据库里的统计信息主要分为以下6种情况: (1)表的统计信息. (2)列的统计信息. (3)索引的统计信息. (4)系统统计信息. (5)数据字典统计信息. (6)内部对象统计信息. 二.oracle收集和查看统计信息的方法 oracle数据库收集统计信息一般有以下2种方法: (1)analyze命令. (2)dbms_stats包. 针…
第5章“Oracle里的统计信息” 详细介绍了Oracle数据库里与统计信息相关的各个方面的内容,包括 Oracle数据库中各种统计信息的分类.含义.收集和查看方法,以及如何在Oracle数据库里正确地收集统计信息. 列的统计信息用于描述Oracle数据库里列的详细信息,它包含了一些典型的维度,如列的distinct值的数量.列的null值的数量.列的最小值.列的最大值以及直方图等. 5.2 0racle里收集与查看统计信息的方法 5.2.1  收集统计信息 对系统内部表使用DBMS_STATS…
ORACLE里怎么能判断一个日期类型的字段是否为空,解决方法:is null,解决方法:判断什么null都可以用is null.…
环境: MSSQL:2008 ORACLE DB:10.2.0.1     之前一直没有接触MSSQL,最近因需要MSSQL访问ORACLE里的表,下面是MSSQL连接ORACLE的配置过程.   1.在MSSQL的机器上安装ORACLE客户端,同时配置连接到ORALCE的TNS,这里我的配置如下: ORACL_10GA =   (DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.…
hash join (Oracle里的哈希连接原理) 2015年09月25日 17:00:28 阅读数:2188 哈希连接(HASH JOIN)是一种两个表在做表连接时主要依靠哈希运算来得到连接结果集的表连接方法. 在Oracle 7.3之前,Oracle数据库中的常用表连接方法就只有排序合并连接和嵌套循环连接这两种,但这两种表连接方法都有其明显缺陷.对于排序合并连接,如果两个表在施加了目标SQL中指定的谓词条件(如果有的话)后得到的结果集很大且需要排序的话,则这种情况下的排序合并连接的执行效率…
oracle 里 插入空字符串会被转成null插入 因为非空列如果要插入空字符串数据,最好是插个空格,因为空字符串会报错…
在oracle里,如何取得本周.本月.本季度.本年度的第一天和最后一天的时间 --本周 select trunc(sysdate,'d')+1 from dual; select trunc(sysdate,'d')+7 from dual; --本月 select trunc(sysdate,'mm') from dual; select last_day(trunc(sysdate)) from dual; --本季 select trunc(sysdate,'Q') from dual;…
1 oracle里的统计信息 Oracle的统计信息是这样的一组数据,存储在数据字典,从多个维度描述了oracle数据库对象的详细信息,有6种类型 表的统计信息:记录数.表块的数量.平均行长度等 索引的统计信息:索引的层级.叶子块的数量.聚簇因子等 列的统计信息:列的distinct.为null的数量.列的最小值.最大值及直方图信息 系统的统计信息:所在的数据库服务器的系统处理能力.包含cpu跟I/O 数据字典统计信息:数据库字典基表.表上的索引 内部对象统计信息:内部表X$系列表的详细信息 存…
oracle里long类型的总结 1.LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB. 2.对于超出一定长度的文本,基本只能用LONG类型来存储,数据字典中很多对象的定义就是用LONG来存储的.1.LONG 数据类型中存储的是可变长字符串,最大长度限制是2GB. 2.对于超出一定长度的文本,基本只能用LONG类型来存储,数据字典中很多对象的定义就是用LONG来存储的. 3.LONG类型主要用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型. 4.很多工…
大家都知道吧,这很坑,尤其是用惯了mysql里的自增字段设置,结果oracle里面没有的.oh,no 我用的是12c版本的,它有一个新特性,可以这样设置自增序列,在创建表是,把id设置为自增序列 create table t ( id   number generated by default as identity (start with 1 increment by 1), name    varchar2(20), password varchar2(20), Constraint Pk_…
一.执行计划 执行计划是目标SQL在oracle数据库中具体的执行步骤,oracle用来执行目标SQL语句的具体执行步骤的组合被称为执行计划. 二.如何查看oracle数据库的执行计划 oracle数据库中常用的取得目标SQL语句执行计划的方法有以下几种: (1)explain plan命令 (2)dbms_xplan包 (3)sqlplus中的autotrace开关 (4)10046事件 1.explain plan命令 explain plan命令具体语法: (1)explain plan…
按组分的几组重要的性能视图 1.System 的 over view v$sysstat , v$system_event  , v$parameter,V$instance得到oracle_sid 2.某个session 的当前情况 v$process , v$session , v$session_wait  ,v$session_event ,  v$sesstat ---sid 3.SQL 的情况 v$sql , v$sqlarea , v$SQL_PLAN , V$SQL_PLAN_S…
在Oracle中,一个用户就是一个Schema,表都是建立在Schema中的,也可以理解为每个用户拥有不同的表.一个用户想访问另外一个用户,也就是另外一个schema的表的时候,可以用 username.tablename的形式来访问,完全不需要分布式事务.分布式事务不是给你做这个用的. Oracle数据库中不能新创建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决. Oracle中虽然有create schema语句,但是它并不是用来创建一个schema的,具体见下面…
本文仅用作备忘,无实际指导意义,逻辑略混乱. 1.命令show parameter name; SQL> show parameter name; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_file_name_convert string db_name string orcl db_unique_name string orcl globa…
列的别名也可以不用as,如:select t.a xxx from table t 在Oracle数据库中,数据表别名是不能加as的,例如: select a.appname from appinfo a;-- 正确 select a.appname from appinfo as a;-- 错误 注释:这可能是为了防止和Oracle数据库中的存储过程中的关键字as冲突的问题.…
一个数据库服务器上可以装几个数据库它们都是用sid来标志,例如orcl1,orcl2,orcl3等等,一个数据库如orcl1中可以有多个实例吗? Oracle数据库,实际上应该是说,我们使用的是Oracle服务server. 来源:(http://blog.sina.com.cn/s/blog_4dc6402101009156.html) - oracle 数据库与实例的关系(转)_XW_普罗旺斯_S_新浪博客 Oracle服务server包括有两个部分: 一个部分是Oracle数据库datab…
参考http://www.jb51.net/article/44668.htm TNS简要介绍与应用 Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器. TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不用配置TNS也可以连接Oracle数据库,比如通过JDB…
Oracle rank()和dense_rank()的区别是: –rank()是跳跃排序,有两个第二名时接下来就是第四名 –dense_rank()l是连续排序,有两个第二名时仍然跟着第三名 select sno,cno,score, rank() over(partition by cno order by score desc) "名次" from sc; --名次不跳跃 两个第二名 接下来还是第三名 select sno,cno,score, dense_rank() over(…
0:none  1:null 空  2:Row-S 行共享(RS):共享表锁  3:Row-X 行专用(RX):用于行的修改  4:Share 共享锁(S):阻止其他DML操作  5:S/Row-X 共享行专用(SRX):阻止其他事务操作  6:exclusive 专用(X):独立访问使用    数字越大锁级别越高, 影响的操作越多.  一般的查询语句如select ... from ... ;是小于2的锁, 有时会在v$locked_object出现.    select ... from .…
内容主要来自看书学习的笔记,如下记录了常见查询执行计划的方法. 2.2 如何查看执行计划 1.explain plan 2.dbms_xplan包 3.autotrace 4.10046事件 5.10053事件 6.awr/statspack报告(@?/rdbms/admin/awrsqrpt) 7.脚本(display_cursor_9i.sql) 2.2.1 explain plan explain plan for sql select * from table(dbms_xplan.di…