oracle技术
请叫我曾阿牛
宅男,技术控
展开
-
oracle 直接路径插入
insert append原创 2022-06-04 18:47:27 · 460 阅读 · 0 评论 -
oracle 多表插入
insert all原创 2022-06-04 18:35:28 · 634 阅读 · 0 评论 -
oracle 分区表的相关索引
index原创 2022-06-04 13:51:00 · 387 阅读 · 0 评论 -
oracle pivot/unpivot 查询
oracle pivot unpivot使用pivot之后的写法更加优雅,如下:pivot 的语法如下:unpivot的用法:语法示例:SQL查询示例:原创 2022-06-03 20:19:03 · 1334 阅读 · 0 评论 -
数据库国产化的那些事儿----2
最近看到很多国产数据库厂商都是基于开源某斯库来的,而且还可以高举信创大旗,甚至有十几家都开始拥抱某开源社区。要知道是人家商业数据库还在开发和迭代呢。以我国产数据库的经验来看,国产数据库最难的迁移和适配工作,需要应用或数据库开发商做大量的妥协。我突然有一个恐惧的想法:当下大家都依赖开源社区开源生态把某斯做起来了,生态也起来了,数据库也迁移和适配过来了。你们那里来的技术底气和商务功夫保证自己的数据库不被平滑的迁移和替换掉???想到这里,突然感觉有人在下一盘大棋,好大好久远的一盘棋,很原创 2022-04-23 22:54:34 · 823 阅读 · 0 评论 -
数据库国产化的那些事儿----1
最近在参与数据库国产化的相关工作,热火朝天,忙忙碌碌,也发现数据库国产化的一些怪事儿。很多很多的甲方和应用开发商都要求必须适配某某数据库,或兼容某某特性,否则这个项目就黄了,或换数据库适配。貌似一听也很有道理,毕竟应用开发商是有一些开发的工作量在里面的。不过反过来想想也挺有意思的:1. 到底是数据库是基础软件还是应用软件是基础软件;2、莫非你原来运行在windows上的C程序还让linux改造以支持你的应用程序?3、数据库这个基础软件本来就是百花齐放的,去看看db-eng原创 2022-04-01 20:59:31 · 1172 阅读 · 0 评论 -
PL/SQL 游标示例
FUNCTION booktitle(isbn_in IN varchar2)RETURN varchar2ISl_title books.title%TYPE; CURSOR icur IS SELECT title FROM books where isbn=isbn_in;BEGIN OPENicur ; FETCHicur INTO ltitle; CLOSEicur ; ...原创 2022-03-31 21:54:59 · 181 阅读 · 0 评论 -
理解NULL
不要把NULL与空字符串混淆。NULL值意指缺少值,它不是空字符串。如果指定""(两个双引号之间没有任何内容),这在NOT NULL中是允许的。空字符串是一个有效值,它不是没有值。NULL值是通过NULL关键字指定,而不是通过空字符串指定。...原创 2022-03-26 22:41:42 · 1117 阅读 · 0 评论 -
表连接的几种方式
自连接:能够在单独一条SELECT语句内多次引用同一个表。select prod_id,prod_namefrom productswhere vend_id = ( select vend_id from products where prod_id='DTNTR')select prod_id,prod_namefrom products p1,products p2where p1.vend_id =.原创 2022-03-26 21:18:54 · 3092 阅读 · 0 评论 -
表的关联查询,哪种写法效率更高?
方法1:嵌套子查询select col1,col2 from tab1where id in (select 2_id from tab2 where order_num in ( select order_num from tab3 where prod_id='AAA'))方法2:无嵌套子查询select col1,col2 from tab1,tab2,tab3wh原创 2022-03-26 20:28:28 · 2009 阅读 · 0 评论 -
oracle的正则表达式函数
oracle 一共有四个正则表达式函数:REGEXP_LIKE() : 查询REGEXP_REPLACE() : 替换字符串 REGEXP_INSTR() : 在字符串内搜索REGEXP_SUBSTR() : 在字符串内搜索基本字符串匹配:select * from tabnamewhere REGEXP_LIKE(col_name, '1000') 正则表达式相关:. : 匹配任意单个字符| : 执行or运算,匹配其中一个或另外一个.原创 2022-03-26 14:29:00 · 3214 阅读 · 0 评论 -
oracle SQL 语法
DELETEdelete from ( select * from employees2 where department_id=90);UPDATEupdate ( select e1.salary,e2.salary new_sal from employees e1,employees2 e2 where e1.emp_id=e2.emp_id)set salary=new_sal;INSERTinsert allwhen sum_.原创 2022-03-24 22:08:04 · 523 阅读 · 0 评论 -
oracle logminer 详解
大家都知道oracle logminer是用来挖掘redo日志的,其中有大体的流程和若干细节需要考虑。在本文,我计划给大家讲述logminer的使用流程和大致思路:1、启用supplemental logging supplemental log启用命令如下:alter database add supplemental log data;查看 supplemental log的启用情况:select supplemental_log_data_min,supplemental_log原创 2022-01-20 09:59:44 · 4226 阅读 · 0 评论 -
用logminer恢复误删除的数据
使用logminer的前提条件:1、打开数据库的supplemental logalter database add supplemental log data;开启oracle的最小附加日志。2、查询supplemental log的打开情况select supplemental_log_data_min from v$database;3、如果需要挖掘归档日志,数据库需要开启归档;archive log list;4、DML数据,修改数据delete fr原创 2022-01-17 15:11:18 · 680 阅读 · 0 评论 -
手工导出oracle的存储过程
SET echo off;SET heading off;SET feedback off;spool /home/oracle/spl/dba_source.sql;select text from dba_source where type in ('PROCEDURE','TRIGGER','PACKAGE') ;spool off;==============================================================...原创 2021-10-12 07:49:04 · 465 阅读 · 0 评论 -
关系型数据库之间的历史渊源---部分
IBM的研究员E.F.Codd发表了关系代数的论文《用亍大型共享数据库的关系数据模型》。IBM的 Don Chamberlin是SQL关系数据库语言的发明人,也是XQuery语言的设计基础Quilt语言的发明人之一,使得大家不用直接面对关系代数。ORACLE基于上述基础之上开始发布oracle数据库产品。Michael Stonebraker创作了Ingres(源码免费开放),后又基于Ingres诞生了Postgres,Postgres又演变为当前的PostgreSQL。greenplus是基于Pos原创 2021-07-18 17:23:39 · 267 阅读 · 0 评论 -
oracle查看锁表的相关信息
select /*+no_merge(a) no_merge(b)*/(select username from v$session where sid=a.sid) blocker,a.sid,'is blocking',(select username from v$session where sid=b.sid) blockee,b.sidfrom v$lock a,v$lock bwhere a.block=1 and b.request>0and a.id1=b.id1 and .原创 2021-05-15 15:35:37 · 196 阅读 · 0 评论 -
oracle 查找SQL语句内存排序还是磁盘排序
select t1.name,t1.statistic#,t2.valuefrom v$statname t1,v$mystat t2where t1.statistic# = t2.statistic#and t1.name like '%sort%';原创 2021-05-15 15:34:50 · 302 阅读 · 0 评论 -
oracle 索引的创建和生效
原创 2021-05-15 10:20:16 · 1522 阅读 · 0 评论 -
oracle 索引优化相关
原创 2021-05-12 22:55:20 · 114 阅读 · 0 评论 -
oracle 11g的安装
本来也安装过多次,后来虚拟机都删除了。所以我打算重新安装一次。oracle linux 7.4 + oraccle 11g 安装的时候各种问题,虽然披荆斩棘很多都过去了。在安装到86%的时候还是报了一个错,百度之后,好像是glibc的版本太新所致。心就TM的碎了一地。换oracle linux 6.9 + oraccle 11g ,一把过。看来这些商业软件也是一地鸡毛,安装起来也是很乱的。下面粗略的整理一下ORACLE 11G在linux 6上的安装过程:...原创 2021-04-30 15:48:47 · 202 阅读 · 0 评论 -
ORACLE监听相关
配置文件:listener.ora 监听服务端的配置文件 LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ORA51)(PORT = 1521)) ) ) tnsnames.ora 监听客户端的配置文件 TT= #自定义服务名 ...原创 2021-04-29 22:02:44 · 199 阅读 · 0 评论 -
oracle 用户和权限管理
创建用户: CREATE USER itpux IDENTIFIED BY itpux DEFAULT TABLESPACE datadbs TEMPORARY TABLESPACE tmpdbs; 删除用户: DROP USER itpux; 删除用户及包含的对象: DROP USER itpux CASCADE; 获取用户信息的数据字典: DBA_USERS DBA_TS_QUOTAS 权限管理: GRANT ...原创 2021-04-29 21:17:02 · 141 阅读 · 0 评论 -
ORACLE表空间的管理
表空间信息: DBA_TABLESPACES V$TABLESPACE数据文件信息: DBA_DATA_FILES V$DATAFILE临时文件信息: DBA_TEMP_FILES V$TEMPFILE原创 2021-04-28 23:55:37 · 165 阅读 · 0 评论 -
oracle 重做日志文件
1、手工切换重做日志文件 alter system switch logfile;2、增加在线重做日志文件 ALTER DATABASE ADD LOGFILE GROUP 3 ('XXX/log3a.rdo','XXX/log3b.rdo') SIZE 10M; 3、增加组成员 ALTER DATABASE ADD LOGFILE MEMBER 'XXX/log1c.rdo' TO GROUP 1, 'XXX/log1...原创 2021-04-28 17:09:53 · 219 阅读 · 0 评论 -
oracle 日志归档
查看数据库的归档模式:SQL> archive log list;database log mode: Archive Mode关闭归档:SQL> shutdown immediateSQL> startup mount;SQL> alter database noarchivelog;SQL> alter database open;开启归档:SQL> startup mount;SQL> alter data...原创 2021-04-28 17:07:41 · 115 阅读 · 0 评论 -
oracle 控制文件
原创 2021-04-28 16:32:03 · 156 阅读 · 0 评论 -
oracle参数文件相关
原创 2021-04-28 13:43:44 · 102 阅读 · 0 评论 -
oracle的几种日志文件
oracle的几种诊断日志文件:警告日志文件(alterSID.log) 后台跟踪文件 用户跟踪文件(11g及之后)select * from v$diag_info;(10g)show parameter dump;后台跟踪文件用来记录被后台进程检测到的错误信息,在初始化参数 BACKGROUND_DUMP_DEST中定义用户跟踪文件:其实就是用户进程通过服务器进程连接到ORACLE服务器时产生的。包含用户执行的SQL语句或用户通讯错误信息。参数USER_DUMP_DEST用来.原创 2021-04-28 12:04:24 · 1543 阅读 · 0 评论 -
oracle数据库的启动和停止
数据库实例的启动过程:nomount:实例启动mount:打开控制文件open:实例控制文件所描述的数据文件被打开SQL> startup nomount;SQL> alter database mount;SQL> alter database open;数据库关闭:SQL>shutdown normal #直到所有会话都结束并退出SQL>shutdown transactional #等待当前事务结束,强...原创 2021-04-28 11:44:38 · 383 阅读 · 0 评论 -
oracle 优化器可用提示
1. 执行路径提示ALL_ROWSFIRST_ROWS(n)2.访问方法提示FULLINDEX、INDEX_ASC、INDEX_DESCNO_INDEX、NO_INDEX_FFS、NO_INDEX_SSINDEX_COMBINEINDEX_JOININDEX_FFS #实行索引的快速全扫描,全部的索引值不经过排序就被读出来。INDEX_FFS表示只访问索引,不访问对应的表(换言之,就是不回表)INDEX_SS、INDEX_SS_ASC、INDEX_...原创 2021-03-27 13:04:19 · 331 阅读 · 1 评论 -
oracle的分区表
1. 范围分区create table dept(deptno number(12),deptname varchar2(30))partition by range(deptno)(partition d1 values less than (10) tablespace dept1,partition d2 values less than (20) tablespace dept2,partition d3 values less than (maxvalue) tablespace原创 2021-03-27 11:44:47 · 141 阅读 · 1 评论 -
oracle 12c PDB和CDB
oracle 12c多租户数据库包含容器库(CDB)和PDB。CDB叫做容器库,也叫做主库。PDB也叫做子数据库。12cR2版本中可以支持4096个PDB。12cR2中,可以刷新一个只读的PDB;12cR2中,可以闪回一个独立的PDB;判断一个数据库是CDB还是非CDB:select name,created,cdb,con_id from v$database;查询PDB:select name,open_mode,open_time from v$pd...原创 2021-03-26 22:15:39 · 640 阅读 · 0 评论 -
oracle中的常用索引
oracle作为业界No.1的数据库,在保证性能的时候,必须使用各种索引以提高效率。本文旨在探讨oracle常用的索引类型: B树索引 位图索引 哈希索引 索引组织表 反向键索引 基于函数的索引 分区索引 位图连接索引B树索引Oracle默认的索引类型,也是最通用的索引类型。B树索引可以是单列索引,也可以是符合索引,B树索引最多包含32列。Oracle可以从两个方向上遍历这个二叉树。B...原创 2021-03-26 21:53:51 · 614 阅读 · 0 评论 -
oracle 索引基础相关
#######################查询一个表上的全部索引######################################select a.table_name, a.index_name, b.column_name, a.uniqueness, a.visibilityfrom user_indexes a, user_ind_columns bwhere a.index_name = b.index_name and a.t...原创 2021-03-25 08:33:46 · 190 阅读 · 0 评论 -
MySQL---binlog用于主备复制
binlog 的三种格式: 一种是 statement,一种是 row。可能你在其他资料上还会看到有第三种格式,叫作 mixed。配置主从复制: 1、备库上执行 change master 2、备库上执行 start slave查看binlog的内容: mysql> show binlog events in 'master.000001';解析binlog的内容: 这个事务的 binlog 是从 ...原创 2021-01-27 15:43:20 · 187 阅读 · 2 评论 -
MySQL---binlog和redo log的写入机制
binlog 的写入逻辑: 事务执行过程中,先把日志写到 binlog cache,事务提交的时候,再把 binlog cache 写到 binlog 文件中。一个事务的 binlog 是不能被拆开的,因此不论这个事务多大,也要确保一次性写入。这就涉及到了 binlog cache 的保存问题。系统给 binlog cache 分配了一片内存,每个线程一个,参数 binlog_cache_size 用于控制单个线程内 binlog cache 所占内存的大小。如果超过了这个参数规定...原创 2021-01-27 10:43:20 · 433 阅读 · 0 评论 -
exists带来的性能提升
优化前:select 。。。。from tab1 a,tab2 bwhere a.id=b.idand rownum=1;优化后调整为:select 。。。。from tab1 awhere exists (select 0 from tab2 b where a.id=b.id)and rownum=1;...原创 2020-10-29 17:37:01 · 281 阅读 · 0 评论 -
表上的连接方法
嵌套循环连接(nested loops join): 该方法从第一个行源中读取第一行,然后查找第二个行源中匹配的记录。将所有匹配到的结果放入结果集中,然后开始读取第一个行源的下一行记录,然后循环至结束为止。 第一个行源通常称为外表或驱动表,第二个行源称为内表。 在驱动行源很小且内表的连接列上有唯一索引或选择性非常高的时候,嵌套循环连接是非常合适的。排序合并连接(sort_merge join): 在排序合并连接中,数据库讲第一个行源和第二个行源...原创 2020-10-29 17:33:51 · 280 阅读 · 0 评论 -
oracle 为数据库捕获负载并回放
1、准备捕获负载 a> mkdir dbcapture b> sql>create directory dbcapture as 'c:\oracle\dbcapture';2、捕获负载 a> SQL> exec dbms_workload_capture.start_capture('NRML_ACTIVITY','DBCAPTURE'); b>SQL> exec dbms_workload_capture.fi...原创 2020-10-27 13:07:36 · 618 阅读 · 0 评论