PERFORMANCE
文章平均质量分 82
robinson1988
本人精通SQL,精通所有关系型数据库SQL调优,精通所有关系型数据库性能优化,精通所有关系型数据库架构,精通分库分表,熟悉大数据Hadoop,Hive,Spark,Flume,Kafka,Flink,熟悉各种ETL工具,熟悉Python,Java,C
展开
-
Oracle中TX锁(行锁)监控,抓TX锁的源头
DBA小伙子,看到这个文章是不是很开心,解决了你一个大麻烦session 1: update emp_bak set ename='沙雕' where empno=7369;session 2: update emp_bak set ename='大长腿' where empno=7369;session 3: update emp_bak set ename='矮丑穷' where empno=7369;运行下面脚本可以抓到哪个SID,哪个SQL_ID,跑的SQL_TEXT锁住了哪个SID原创 2020-05-18 23:51:09 · 2317 阅读 · 2 评论 -
动态采样
今天做实验想看看在没有统计信息的情况下,oracle会采取哪种方式执行SQL,结果偶然发现了动态采样机制,实验过程:SQL> select * from v$version;BANNER-------------------------------------------------------------------------------------------------------原创 2010-02-24 17:19:00 · 3034 阅读 · 0 评论 -
log buffer
log buffer 是SGA中一块循环使用的内存区域,它一般很小,因为有4个条件能够触发log buffer 中的redo 写入到log file中,缺省的设置为512kb,或者128kb*cpu_count (cpu_count由ORACLE自动设置,一般不需要更改)的最大值。在10g中ORACLE会自动调整它的值,他遵循这样一个原则,log_buffer+fixed size原创 2009-10-26 16:37:00 · 11987 阅读 · 1 评论 -
row migeration and row chain
row migeration:当发出update导致记录行长增加,block的剩余空间不足以存放这条记录,就会产生行迁移,发生行迁移时rowid不会改变,原来的block中会用一个指针存放这条记录在新的block中的地址,发生行迁移会对性能产生影响,因为读这条记录会读两个BLOCK。row chain:当一个BLOCK不足以存放下一条记录的时候,就会发生行连接,这个时候oracle会把这条记录原创 2009-10-26 12:36:00 · 4061 阅读 · 0 评论 -
data dictionary cache 命中率
如果 shared pool 设置过小,那么 data dictionary cache 也会相应的过小,没有足够的空间存储ORACLE的系统数据字典信息,从而导致ORACLE需要从硬盘读取数据字典信息,我们查看执行计划的时候看到的recursive calls就是代表的是从磁盘读取数据字典的次数。SQL> select count(*) from dba_source; COUNT(*原创 2009-10-23 14:04:00 · 3993 阅读 · 0 评论 -
查看 library cache 命中率
SQL> desc v$librarycache Name Null? Type ----------------------------------------- -------- ---------------------------- NAMESPACE原创 2009-10-23 10:36:00 · 9315 阅读 · 1 评论 -
PCTFREE&ITL&CONSISTANT READ
ITL:Interested Transaction List,很多人都把它叫做事务槽。它位于BLOCK Header,下面来看看DUMP出来的一个BLOCK Itl Xid Uba Flag Lck Scn/Fsc0x01 0x0006.02d.000027cc 0x00809de3.0266.02原创 2009-10-24 00:50:00 · 3497 阅读 · 0 评论 -
keep buffer cache
如果某个表是热点表,经常被访问,就应该考虑将其放入 keep buffer cache.防止其被挤出default pool 。从而减少physical read所带来的I/O开销。默认的情况下 db_keep_cache_size=0,未启用,如果想要启用,需要手工设置db_keep_cache_size的值,设置了这个值之后db_cache_size 会减少。 并不是原创 2009-10-22 11:24:00 · 3725 阅读 · 0 评论 -
测量sql 解析耗费的时间比例
清空共享池,关闭,重启数据库SQL> shutdown immediate;SQL> startup;开启 时间统计SQL> set timi onSQL> select count(*) from dba_objects; COUNT(*)---------- 11308Elapsed: 00:00:00.19SQL> / COUNT(*)------原创 2009-10-22 15:28:00 · 2403 阅读 · 1 评论 -
recycle pool
Document上说,对于访问频率不高的大表,可以将其放入 recycle pool ,以防止将 热点表挤出 default pool ,带来的性能损失。不过 我 对此 有疑问,既然有了 keep pool 可以将 热点表 cache 到 keep pool 中,另外由于大表的访问频率不高,我们 为某个大表设置了 recycle pool ,那么岂不是 浪费了 很大的 内存空间在S原创 2009-10-22 14:42:00 · 5093 阅读 · 0 评论 -
查看 buffer cache 命中率
SQL> select name,value from v$sysstat where name in(db block gets,consistent gets,physical reads);NAME VALUE-------------------原创 2009-10-21 17:41:00 · 6126 阅读 · 0 评论 -
undo_retention&guarantee
undo_retention:指定事物commit后undo 将要保存的时间(秒),在ORACLE10g中默认的是900秒。GUARANTEE : 保证undo_retention参数所设定的时间有效,这个是10g的新功能。SQL> ALTER TABLESPACE undotbs1 RETENTION GUARANTEE;SQL> ALTER TABLESPACE undotbs1原创 2009-10-16 15:48:00 · 11840 阅读 · 1 评论