例如,有如下一张表,表名为bk_test。插入了以下数据: CREATETABLEBK_TESK(idvarchar2(10),svarchar2(20)); insertintoBK_TESKvalues('A','1,2,3'); insertintoBK_TESKvalues('B','4,5,6'); insertintoBK_TESKvalues('C','7,8'); 查询数据如图所示我们需要将字段S中以逗号分隔的数据拆分成多行。结果如图所示实现将一行数据拆分成多行的代码如下所示 SELECT id, TRIM(REGEXP_SUBSTR(s,'[^,]+',1,LEVEL))A...

  qor7XDDqkhd9   2024年08月07日   61   0   0 Oracle

1redo 1.1redo是什么 oracle数据库几乎所有的操作都会产生redo日志。redo日志可以分为在线redo日志和归档redo日志。当数据库实例失败时,数据库会使用redo日志恢复数据。 1.2在线重做日志和归档重做日志 1.2.1在线重做日志 数据库的操作产生的redo日志会先存放在在线重做日志中。在线重做日志在oracle中至少有两组重做日志,每组重做日志包含一个或者多个在线重做日志文件,同一组内的在线重做日志内容完全一样。日志切换是指当一组在线重做日志写满时,oracle清空下一组在线重做日志并在下一组写入重做日志。所以,在线重做日志是循环使用的。 1.2.2归档重做日志 如...

  qor7XDDqkhd9   2024年08月07日   37   0   0 Oracle

1BTREE索引 1.1什么是BTREE索引 BTREE索引是oracle数据库中最常见的索引。可以根据索引键值快速定位到表里的某一行数据或者根据索引键范围定位多行数据。 1.2BTREE索引结构 BTREE索引的构造类似于二叉树,最底层的块称作叶块,叶块由索引键以及rowid组成。叶块之上的块称为分支块,检索数据时就是通过分支块到达叶块的。例如,我们想在索引中找到值42,就要从树顶开始,找到左分支的一个块(分支块)。然后我们在这个分支块当中,发现需要继续去找范围为“42...50”的(叶)块,而这个叶块就会带领我们找到表中值为42的那一行或几行数据。叶块这一层是一个双向链结构,这意味着范围搜...

  qor7XDDqkhd9   2024年08月07日   33   0   0 Oracle

1不修改表结构的优化 1.1收缩表,降低高水位线 ALTERTABLETESTENABLEROWMOVEMENT; ALTERTABLETESTSHRINKSPACE; 1.2对表收集统计信息 BEGINDBMS_STATS.GATHER_TABLE_STATS(ownname=>user,tabname=>'TEST');END; 1.3使用oracle的并行查询功能 SELECT/+parallel(4)/FROMtest; 1.4OR查询条件使用unionall替代 1.5多表联合查询时,在子查询中先写好过滤条件再关联别的表 1.6DML比较慢时而且并发访问比较低的情况下,...

  qor7XDDqkhd9   2024年08月07日   40   0   0 Oracle

虽然目前pl/sqldeveloper等数据库客户端软件都支持将表数据以excel格式导出,但是如果数据量大,需要等客户端加载表数据等待很久。而且,可能会遇到定时以excel格式导出数据的要求。因此我自己写了一个使用存储过程将表数据以excel格式导出的存储过程。 服务端新建目录createdirectoryDIR_EXCELas'D:\DIR_EXCEL'; 新建存储过程 createorreplaceprocedurepr_export_to_excel(p_table_namevarchar2, p_where_predicatevarchar2defaultnull)is / pr...

  qor7XDDqkhd9   2024年08月07日   33   0   0 Oracle

进行大数据量的DML时,数据处理会很慢,甚至数据处理直接卡死。对此优化的技巧之一就是先将表在DML中查询用不到的索引置为无效以及nologging,DML处理完后再将这索引重建。 1新建存储要置为无效的索引的临时表 createglobaltemporarytableTMP_VACHAR_LIST ( textVARCHAR2(4000) ) oncommitpreserverows; 2将索引置为无效,数据处理后重建索引 begin EXECUTEIMMEDIATE'TRUNCATETABLETMP_VACHAR_LIST'; --记录下来非唯一性约束,插入数据后要重建 INSERTINT...

  qor7XDDqkhd9   2024年08月07日   51   0   0 Oracle

1事务的概念 事务是将数据库从一种一致性状态转变为另外一种一致性状态 2事务的四个特征(ACID) 原子性(Atomicity):事务的所有执行要么一起成功,要么一起失败 一致性(Consistency):事务将数据从一种一致性状态转为另外一种一致性状态 隔离性(Isolation):事务中所有修改未提交的数据对其他事务是不可见的 持久性(Durability):事务一旦提交,数据就永久保存 2.1DDL与原子性 DDL语句执行之前,会先自动执行一个commit,再执行DDL语句本身。 2.2COMMIT_WAIT与持久性 oracle的持久性是依靠redo来保证的。一般情况下,commi...

  qor7XDDqkhd9   2024年08月06日   54   0   0 Oracle

锁是管理共享资源的并发访问。 1关于锁的衍生概念 1.1悲观锁 悲观锁是认为数据会被其他会话同时修改。所以在数据修改前,先对数据锁定,然后再修改数据。例如,先对某一行数据进行forupdate锁定,然后再更新这一行的数据。Selectfromtablewhereprimary_key=:primary_keyAnddecode(columnl,:old_columnl,1)=1Anddecode(column2,:old_column2,1)=1Forupdate;UpdatetableSetcolumnl=:new_columnl,column=:new_column2,Whereprima...

  qor7XDDqkhd9   2024年08月06日   30   0   0 Oracle

每个oracle进程都有自己的任务,oracle会给进程分配内存(PGA)让进程更好的完成任务。oracle进程可以分为三类:服务器进程,后台进程,从属进程。 1服务器进程 服务器进程是执行客户端会话指令的进程。负责将客户端的指令发送到oracle服务端执行,然后将服务端的结果返回给客户端。可分为专用服务器进程和共享服务器进程。 1.1专用服务器进程 使用专用服务器连接时,用户在登录oracle数据库时,数据库会创建专用服务进程服务用户的会话请求。这个专用服务进程在整个用户的登录会话周期内,专门为这个会话服务。所以一个会话对应一个专用服务器进程。 1.2共享服务器进程 使用共享服务器连接时,用...

  qor7XDDqkhd9   2024年08月06日   42   0   0 Oracle

oracle内存结构主要有两部分组成,一个是系统全局区(SYStemGlobalArea,SGA),所有进程都可以访问该内存区域。另外一个叫进程全局区(ProcessGlobalArea,PGA),是一个进程专用的内存区域,其他进程不可以访问。使用oracle的自动内存管理(ASM)并设置MEMORY_TARGET参数,可以实现SGA和PGA大小的自动分配。 1PGA介绍 一个进程专用的内存区域,其他进程不可以访问。每个进程的PGA结构不尽相同。简单介绍一下最常见的专用服务器进程的PGA。专用服务器进程是当oracle设置连接方式为专用服务器时,在用户登录时,oracle会建立一个专用服务器进...

  qor7XDDqkhd9   2024年08月06日   62   0   0 Oracle

1oracle数据库分类 1.1单租户数据库 ORACLE12C之前的oracle数据库都是单租户数据库。单租户数据库是独立和完整的数据库,包括ORACLE的元数据和应用的数据。 1.2容器数据库(CDB) 容器数据库只包含oracle的元数据,不存储应用数据。包含了一整套数据文件、参数文件、控制文件、重做日志文件,不依赖于其他对象就可以被实例装载(mount)和打开(open) 1.3可插拔式数据库(PDB) 可插拔式式数据库只有插在容器数据库上才可以使用。只包含应用的数据,没有oracle元数据。仅仅包含数据文件,没有重做日志文件、控制文件、参数文件等,但它在使用过程中会利用其所插在的CD...

  qor7XDDqkhd9   2024年08月06日   49   0   0 Oracle
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~