今天在配合研发部门做压力测试时,数据库一直有一个等待时间比较高:buffer busy waits。产生等待的BUFFER可能是段头(Segment Header),也可能是数据块,UNDO数据块等,而在top sql中看到有一条需要频繁数据插入的sql处理时间很长。在网上搜索给出了几种解决方法,也给出了原因,通过尝试好发现是数据库热块引起的。下面把一些网上关于热块的文章贴出了,供以后参考!
每
原创
2012-08-09 23:14:25
508阅读
create table A1( ID INTEGER)tablespace TEST_DATA pctfree 10 pctused 40 initrans 1 maxtrans 255 stora...
转载
2014-07-14 10:48:00
261阅读
2评论
每个块都有一个块首部。这个块首部中有一个事务表。事务表中会建立一些条目来描述哪些事务将块上的哪些行/元素锁定。
转载
2024-01-10 11:42:55
321阅读
什么是索引下推?Index Condition Pushdown(ICP)是针对MySQL使用索引从表中检索行的情况的优化。如果不使用ICP,则存储引擎将遍历索引以在基表中定位行,并将其返回给MySQL服务器,后者将评估WHERE行的条件。启用ICP后,如果WHERE可以仅使用索引中的列来评估部分 条件,则MySQL服务器会将这部分条件压入WHERE条件下降到存储引擎。然后,存储引擎通过使用索引条
1. PCTFREE要形容一个 BLOCK 的运作,我们可以把一个 BLOCK 想成一个水杯。侍者把水倒入放在我们面前的水杯,要多满呢,我们要求他倒 9 分满好了,这时候 PCTFREE 代表着设定为 10 ,意思就是说,当 BLOCK 使用到达 90% 的时候,就不可以在使用了,这个 BLOCK 应该从 FREELIST 列表中移除 (un-link) 。为何要保留 10% 的空间呢?这是为了提...
转载
2021-08-09 22:42:40
602阅读
每个块都有一个块首部。这个块首部中有一个事务表。事务表中会建立一些条目来描述哪些事务将块上的哪些行/元素锁定。这个事务表的初始大小由对象的INITRANS 设置指定。对于表,这个值默认为2(索引的INITRANS 也默认为2)。事务表会根据需要动态扩展,最大达到MAXTRANS 个条目(假设块上有足够的自由空间)。所分配的每个事务条目需要占用块首部中的23~24 字节的存储空间。注意,对于Orac...
转载
2021-08-09 22:42:42
390阅读
1. PCTFREE要形容一个 BLOCK 的运作,我们可以把一个 BLOCK 想成一个水杯。侍者把水倒入放在我们面前的水杯,要多满呢,我们要求他倒 9 分满好了,这时候 PCTFREE 代表着设定为 10 ,意思就是说,当 BLOCK 使用到达 90% 的时候,就不可以在使用了,这个 BLOCK 应该从 FREELIST 列表中移除 (un-link) 。为何要保留 10% 的空间呢?这是为了提
转载
2022-04-11 17:14:29
259阅读
PCTUSED:是指当块里的数据低于多少百分比时,又可以重新被insert,一般默认是40,即40%,即:当数据低于40%时,又可以写入新的数据,这个时候处在下降期PCT_USED NUMBER Minimu...
转载
2014-08-30 21:44:00
148阅读
2评论
pctfree 当一个块的使用空间达到100-pctfree值时,这个块从自由列表脱离。比如pctfree为10,那么当这个块使用90%的时候将会脱
原创
2022-09-16 10:02:21
341阅读
1. 内容介绍create table时使用INITRANS参数设置数据块ITL事务槽的数量,确保该数据块上 并发事务数量。参数内容总结如下, 1. Oracle 8K blocksize 数据块初始 2个itl,8K blocksize 数据块最多169个itl,16K blocksize 数据块最多256个itl。 2. type_kcbh(offset 0): 0x06 表示为数
转载
2024-01-10 11:43:15
167阅读
oracle 学习中.......................提供两个网站www.itpub.netwww.oracle.com.cn两个网站会提供不少的帮助
转载
2007-03-08 15:00:00
51阅读
2评论
因为循环次数太多,需要在命令行首先执行SQL语句:
原创
2023-05-11 11:20:11
417阅读
Oracle database使用不同种类的系统锁来保护内部的database和memory的结构。这种机制对于用户是不可达的,用户对他们的发生没有任何控制前。Latch 是简单地低级的序列机制,协调多个用户访问共享数据结构,object和文件。Latch保护共享内存资源被多个进程访问导致的崩溃。Latch保护以下情况的数据结构多个session并发修改一个session在修改数据,另一个sess
原创
2013-12-27 15:54:36
664阅读
With语句的语法(AS后面的括号是不可以空缺的)1WITH<alias_name>AS (subquery_sql_statement)2SELECT<column_name_list>FROM<alias>;简单的with语句:WITH A AS(SELECT*FROM DUAL)SELECT*FROM A注意,定义了WITH语句必须在后边的查询中使用,否则
转载
精选
2014-02-11 19:02:06
1237阅读
oracle中extents特性:1:一个extent由相连的多个blocks组成,多个extents组成一个segment,2:oracle在为segment分配空间时,是以extent为单位因此extents带来的好处:1:空间分配、释放效率将会提升 oracle建议一个segment的extents数量一般不要超过1024,而对于big table可能包含上千万个b
原创
2016-10-04 18:29:56
1104阅读
oracle中between and包含边界值,也就是所谓的闭区间。 如 between 1 and 100,则表示包含1和100及以内的一切数值。 如以下语句: 1 2 3 4 5 6 7 8 9 10 11 12 13 select name, score, case when score >=
转载
2016-10-10 23:33:00
2700阅读
2评论
从oracle 9i开始支持merge用法,10g有了完善 create table a (id_ integer,count_ integer);insert into a values(1,b
转载
2023-05-24 14:11:10
59阅读
select * from test100001大515200001中2575300001小8525400002大6535500002中9585600002小8525701001大1614801001中29075901001小8322SELECT num ,flg ,(CASE WHEN GROUPING(num)=1 THEN 'TOTAL' WHEN GROUPING(type)=1 THEN 'SUBTOTAL' ELSE type END) ,sum(number1) ,sum(number2) FROM test GROUP BY ROLLUP(num,flg,type)ORD
转载
2021-08-04 23:33:48
349阅读
ROWID的使用——快速删除重复的记录ROWID是数据的详细地址,通过rowid,oracle可以快速的定位某行具体的数据的位置。ROWID可以分为物理rowid和逻辑rowid两种。普通的表中的rowid是物理rowid,索引组织表(IOT)的rowid是逻辑rowid。当表中有大量重复数据时,可以使用ROWID快速删除重复的记录。举例:--建表tbl SQL>&nb
转载
精选
2013-08-09 12:24:30
705阅读