首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

高频错误:ORA-01555深入剖析

就结合这次案例ORA-1555问题作个案例分析,并浅析产生原因各种解决办法。...一个回滚表空间上可以创建多个回滚段,一个数据库可以创建多个回滚表空间。但是,一个实例(Instance)只能使用一个回滚表空间。...开始时间点是T2,结束时间是T3。因为只更新两条记录,这个过程非常短。A结束时的时间点是T4。...一个语句在读取数据快时,如果发现这个数据块是在它读取的过程中被修改的(即开始执行读操作时并没有被修改),就不直接从数据块上读取数据,而是从相应的回滚段条目中读取数据。...所以,看到后面的Lck位(级锁数目)为1(因为我们修改了1条记录)。 再看每条记录中的级锁对应Itl条目lb:都是0x1。即Itl中的第一条。

1.6K80

Oracle数据结构

数据块 数据块是Oracle存储和数据操作的最小单位,但不一定操作系统的os块相同,一个数据块可能有多个os块构成。 ?...链接迁移 迁移——update操作引起的 当一条记录被更新时,数据库引擎首先会尝试在它保存的数据块中寻找足够的空闲空间,如果没有足够的空闲空间可用,这条记录将被拆分为两个部分,第一个部分包括指向第二个部分的...链接——insert操作或者update操作引起的 链接迁移不同,链接是当一条记录太大,在一个数据块中无法存入,这时会被拆分为2个或以上的部分,存储在多个块中,这多个块之间会构造一个链 ?...临时表的分类 根据on commit的设定,可以临时表分为两类,会话级的临时表事务级的临时表。...on commit preserve rows 它表示临时表的内容可以跨事物而存在,不过,当该会话结束时,临时表的暂时段随着会话的结束而被丢弃,临时表中的数据自然也就随之丢弃。

92631
您找到你想要的搜索结果了吗?
是的
没有找到

Oracle PLSQL语句基础学习笔记(上)

PL/SQLORACLE对标准数据库语言的扩展,ORACLE公司已经PL/SQL整合到ORACLE 服务器其他工具中了,近几年中更多的开发人员DBA开始使用PL/SQL,本文讲述PL/SQL基础语法...1、PL/SQL的优点 从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独有的数据管理的便利性,那么你很难想象ORACLE缺了PL/SQL的情形。...---- ---- 2、PL/SQL块结构 PL/SQL是一种块结构的语言,组成PL/SQL程序的单元是逻辑块,一个PL/SQL 程序包含了一个或多个逻辑块,每个块都可以划分为三个部分。...PL/SQL块中的每一条语句都必须以分号结束SQL语句可以使多行的,但分号表示该语句的结束。一中可以有多条SQL语句,他们之间以分号分隔。...每一个PL/SQL块由BEGIN或DECLARE开始,以END结束。注释由–标示。 ---- (3).PL/SQL块的命名匿名 PL/SQL程序块可以是一个命名的程序块也可以是一个匿名程序块。

2.7K10

SQL Server索引简介:SQL Server索引进阶 Level 1

,从第一开始,并继续到最后一,检查每一以查看它是否符合请求标准。...您可以在表上创建多个非聚簇索引,但不能包含包含来自多个表的数据的索引。 而最大的区别是:SQL Server不能使用电话。它必须使用索引条目的书签部分中的信息导航到表的相应。...然后,使用GPS坐标导航到由白页条目表示的住宅。 创造受益于非聚集索引 我们通过两次查询我们的示例数据库来结束这个级别。...复合索引是具有多个列的索引,确定索引序列。...在下一级,我们开始研究索引的物理结构。 我们研究为什么这个非聚集索引对这个查询是如此有益的,为什么可能并不总是这样。

1.4K40

Oracle知识原理详解

而数据文件中,根据功能的不同,还可以 分为:系统数据文件、用户数据文件、临时空间文件回滚段文件。另外,如果数据库的 Archive Log 模 式被激活,还存在归档日志文件。...LGWR 进程负责 Log Buffer 中的记录写入 Redo Log File 中去。 一旦 Log Buffer 中的条目被写入了 Redo Log 文件中,就可以被重用了。...进程 DBWn(系统中可以存在多个 DBW 进程,n 为序号)负责“冷”的 “脏”数据写入数据文件中去。DBWn 进程会在以下两种情况下“脏” 数据写入磁盘中去: 1....当任何一个非只读(只有 查询)的事务开始时,oracle 会自动为其指定下一个可用的回滚段。事务中任何数据变化都被写入回滚段 中。...如果事务回滚,Oracle 根据回滚段中的回滚记录 buffer cache 中的“脏”数据恢复,释放回滚段空间。

42310

万字详解Oracle架构、原理、进程,学会世间再无复杂架构

ARCn• 可选的后台进程 • 设置ARCHIVELOG 模式时自动归档联机重做日志 • 保留数据库的全部更改记录 最后,举一个用户提交SQL语句的的例子来结束本文,如果用户想提交SQL语句,那么首先你必须要连接到...当服务器进程开始Oracle实例进行通信时,一个会话就被创建了。显然处理一个查询要经过语法分析、绑定、执行、提取等阶段。...从数据库9i开始,可以随时将其调大或调小。可以采用手动方式重调,也可以根据工作负荷自动重调大小(事务)。 修改缓冲区DB_CACHE_SIZE地方法: #Step1....后台进程 后台进程主要是完成数据库管理任务 ,后台进程是Oracle InstanceOracle Database的联系纽带,分为核心进程非核心进程。 1....存储结构 Oracle RDBMS存储结构主要由Database组成。 ? 又能够Database分为物理结构逻辑结构来理解。

3.3K21

微信ANDROID客户端-会话速度提升70%的背后

Activity中复用的模块,当开发的应用程序同时适用于平板电脑手机时,可以利用Fragment实现灵活的布局,改善用户体验。...,大小根据不同磁盘的实际设定而定)而减少不少的磁盘I/O,上面的查询慢的问题也就解决了。...所以,这里的耗时及内存占用,以我们目前的研究程度,还无法优化的,得到这个结论之后,我们放弃了表这个方案,并开始另觅性能可以达到或者接近表后的方案。...单条索引的构成 在经过对官网对索引格式介绍的了解及单条索引的debug跟踪后,总结出不表前索引条目内部元数据(不包含头部格式)构成如下图: ?...可见,表后,真正产生优化的原因为头部talker字段的占用被去除,另外,因为message被拆分成多个talker表,故对于部分talker表,由于聊天记录总数变小,该talker表内条数只要小于1.6w

3.6K70

【OCP最新题库解析(052)--题60】Which three are true about UNDO data?

前滚回滚是Oracle数据库实例发生意外崩溃,重新启动的时候,由SMON进行的自动恢复的过程。...(3)提供一致性读(Consistent Read) Oracle是一个多用户系统,当一个会话开始读取数据还未结束读取之前,可能会有其他会话修改了该会话将要读取的数据。...当用户A执行该SQL语句到9点10分的时候,另外一个用户B发出了一条DELETE命令,T表中的最后一条记录删除并提交了。那么到9点15分时,A用户返回多少条记录?...当其它进程读取数据块时,会先比较数据块上的SCN自己发出SQL语句时刻的SCN,分为以下两种情况: ① 如果该数据块头部的ITL槽上记录的SCN大于自己查询时刻的SCN,那么表示该块被更新过,此时就要借助...在该数据块头部的ITL槽上记录了对应的Undo块的地址(Uba),根据Uba就可以找到对应的Undo块。

51420

Oracle的静态游标与动态游标

前言 我们在写Oracle的存储过程里面,经常会用到游标,Oracle里面的游标分为静态游标动态游标。今天我们在说一下分别有什么不同。...代码演示 使用背景 我们在存储过程中输入开始结束日期,用于查询开始结束日期这一段时间内的销售。 解决思路 这个查询我们就可以用到静态游标动态游标的结合使用。...通过静态游标设置开始结果日期获取到所涉及到的当前年月。 根据获取到的当前年月生成要查询对应的月份分割表的动态SQL语句。 用动态游标遍历,然后进行数据的处理。 代码 ?...上面是定义和静态游标动态游标,下面的静态游标的写法,是根据输入的开始结束日期获取对应的当前年月 即如果输入了2018-06-01----2018-08-30 游标显示结果为 201806 201807...vs_sSql是我们的动态字符串,把主表查询先加进来,然后根据输入的开始结束日期找到对应的月份分割表,然后判断表是否存在,如果存在的话就用union all把分割表加入到动态SQL语句里 ---- ?

2.9K30

Oracle压缩黑科技(一)—基础表压缩

在我们的例子中,三数据都有T1T3。Oracle可以重排列这些字段,让这些标志尽可能的在一块,以至于可以用创建一个标志来代替两个标志的组合。...第二个是真正的“表”,有400,在块的目录中从65开始。这意味着这个块的目录一共有465个条目。...如果我们从第二个“表”(真正的数据表,而不是字典表)开始看,我们会发现这普通的堆表中的数据块dump出来的一没什么两样。但这里有一些特殊的点需要注意。...所以,通过我们的方法,从目录到、标志,我们可以扩展一个5字节的条目到一个完整的26字节的。 通过我们对数据块dump出的数据进行跟踪,这里还有许多知识值得学习。 1....Oracle不会解压这些数据,他只是根据你的需求,用字典表和数据表中的数据重构出来。 2. 重构的时候很可能会消耗一些额外的CPU,在做全表扫描时尤为明显。 3.

1.6K80

精通Java事务编程(3)-弱隔离级别之快照隔离可重复读

这种异常就是不可重复读(nonrepeatable read)或读倾斜(read skew):若Alice在交易结束时再读取账户1的余额,看到和她之前的查询看到的不同的值(600)。...快照隔离很流行:PostgreSQL、InnoDB引擎的MySQL、OracleSQL Server 等都支持。...如某事务删除了一,那么该行实际上并未从数据库中删除,而是通过 deleted_by 字段设置为请求删除的事务的 ID 来标记为删除。...这样的一笔UPDATE 操作在内部会被转换为一个 DELETE 一个 INSERT 。图-7中,事务13从账户2扣100,余额从 500改为400。...但DB实现用不同名字来称呼: Oracle 中称为可串行化(Serializable) PostgreSQL MySQL 中称为可重复读(repeatable read) 命名混淆原因是SQL标准未定义快照隔离

1.3K10

Oracle数据库相关经典面试题

事务的理解,如事务的特点,oracle中何时开始,何时结束? 答∶ ORACLE事务在执行第一条可执行的SQL语句时开始,到一条COMMIT、ROLLBACK语句或退出数据库时事务结束。...每当在服务器上启动数据库时,就在内存中创建一个Oracle实例,即Oracle为数据库分配内存创建并启动一个或多个Oracle进程,然后由实例加载并打开数据库,最后由这个实例来访问控制硬盘中的数据文件...索引可以是唯一的创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度同时也增加了数据库的尺寸大小。 触发器分为事前触发事后触发,这两种触发有区别。语句级触发级触发有何区别?...DISTINCT:重复的从VT8中移除,产生VT9. ORDER BY:VT9中的按ORDER BY 子句中的列列表排序,生成游标(VC10)....TOP:从VC10的开始处选择指定数量或比例的,生成表VT11,并返回调用者。 ?

2.2K20

程序员修神之路--做好分库分表其实很难之二(送书继续)

表引起的问题在特定的场景下,有时候代价真的很大。...数据库表的拆分解决的问题主要是存储性能问题,mysql在单表数据量达到一定量级后,性能会急剧下降,相比较于sqlserverOracle这些收费DB来说,mysql在某些方面还是处于弱势,但是表的拆分这个策略却适用于几乎所有的关系型数据库...横向切分是诸多业务中最常用的切分方式,本质是把一个表中的数据按照规则分散到多个表中,比如最常见的按照ID范围,按照业务主键的哈希值等。...说到垂直拆分,表也可以按照业务来拆分,比如一个数据库中有用户的信息,根据业务可以划分为基础信息扩展信息,如果对业务有利,完全可以拆分为基础信息表扩展信息表。...当有搜索的业务需求的时候,sql语句只能是Join多个表来进行连表查询了,类似的还有统计的需求,例如count的统计操作。 ? 你在业务中进行过表拆分吗?公众号回复“抽奖”,送书活动还在继续!! ?

54940

MySQL基础(快速复习版)

,列又称为“字段”,相当于java中“属性” 4、表中的每一数据,相当于java中“对象” 四、常见的数据库管理系统 mysql、oracle、db2、sqlserver 1.2 MySQL的介绍 一...: ​ sql92: ​ 等值 ​ 非等值 ​ 自连接 ​ 也支持一部分外连接(用于oracle、sqlserver,mysql不支持) ​ sql99【推荐使用】 ​ 内连接 ​ 等值 ​...如果从表和它匹配的显示匹配,如果从表没有匹配的则显示null ②left join 左边的就是主表,right join 右边的就是主表 full join 两边都是主表 ③一般用于查询除了交集部分的剩余的不匹配的...I 隔离性:一个事务不受其他事务的干扰,多个事务互相隔离的 D 持久性:一个事务一旦提交了,则永久的持久化到本地 三、事务的使用步骤 ★ 了解: 隐式(自动)事务:没有明显的开启结束,本身就是一条事务可以自动提交...sql语句 注意:sql语句支持的是insert、update、delete 设置回滚点: savepoint 回滚点名; ③结束事务 提交:commit; 回滚:rollback; 回滚到指定的地方:

4.5K20

关于Oracle 数据块、B树索引5种索引扫描

所以对Oracle数据表索引的了解是至关重要的。 数据块是Oracle最小的存储单位,Oracle数据存放在块中,一个块占用一定的磁盘空间。...可用空间区:在插入新数据,或在更新数据需要更多空间时,将使用可用空间区中的空间。。 行数据:数据块中行数据区包含了表或索引的实际数据。一个数据可以跨多个数据块。...rowid也是oracle中一个比较重要的概念,rowid是oracle数据库的表中的每一数据的唯一的标识符,在oracle内部通常就是使用它来访问数据的。...3.非唯一索引的索引条目=索引键值+rowid,而唯一索引的索引条目=索引键值,ROWID存储在DATA。...(如果有的话),再定位到第一个leaf block, 然后根据leaf block的双向链表顺序读取。

86030

Oracle查看分析执行计划、建立索引以及SQL优化

优化器简述 ----------------------- Oracle中的优化器是SQL分析执行的优化工具,它负责生成、制定SQL的执行计划。...10g开始,RBO已经彻底被抛弃。...2): ONEPASS HASH JOIN : 从驱动表(也称Build Table)上获取的结果集较大,无法根据结果集构建的Hash Table全部放入内存中时,会使用 ONEPASS 模式。...SQL 语句优化 当Oracle数据库拿到SQL语句时,其会根据查询优化器分析该语句,并根据分析结果生成查询执行计划。也就是说,数据库是执行的查询计划,而不是Sql语句。...④SELECT子句中避免使用(*)ORACLE在解析的过程中, 会将’*’ 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着耗费更多的时间.但是在count(*)count(1)

3.3K20

Oracle Real Time SQL Monitoring

如果SQL执行结束,或者这个(些)源执行结束,这些向右的小箭头也会消失。 ?...,它显示了这个SQL总的运行持续时间,在这里是21秒,现在很容易根据这个,然后观察每个源上的条状图条状图位置进行可视化的解析。...索引创建开始后,我们观察SQL MONITORING页面的【详细信息】部分,【详细信息】页面的最左边列的多人图标显示了这是一个并行执行的语句,这里红色为生产者,负责扫描HASH_T1表,根据全表扫描源...从上图可以看出,向右的箭头处于排序创建索引阶段(源3,4,5),全表扫描阶段已经结束,正在进行排序创建索引,根据【实际行数】列可以知道目前排序已经完成的行数是531K,而真正需要的排序量为47M,从其他源可以知道需要排序的总量...GV$ACTIVE_SESSION_HISTORY 视图从ORACLE 11GR1开始包含了如SQL_PLAN_LINE_ID、SQL_PLAN_OPERATIONSQL_PLAN_OPTIONS这些列

1.6K80

【DB笔试面试655】在Oracle中,锁分为哪几类?

♣ 题目部分 在Oracle中,锁分为哪几类? ♣ 答案部分 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。...但是,当多个用户在访问修改数据时,数据库必须使用锁,以防止对同一数据进行并发修改。所以,锁实现了以下重要的数据库需求: l 一致性。...一个会话正在查看或更改的数据不能被其它会话更改,直到用户会话结束。 l 完整性。数据库的数据结构必须按正确的顺序反映对他们所做的所有更改。...数据库通过其锁定机制,提供在多个事务之间的数据并发性、一致性、完整性。一般情况下,锁是自动执行的,并且不需要用户操作。 在执行SQL语句时,Oracle数据库自动获取所需的锁。...在上表中的TM锁又分为7个级别,其中,R代表,S代表共享,如下表所示: 表 3-25 TM锁级别 ? ? (二)锁的兼容性 常见SQL语句的锁兼容情况如下表所示: ?

67320
领券