sqlldr标准输出未处理导致批处理挂起问题
1问题 生产环境一个批量处理没有完成。 2分析 批量处理逻辑: java->shell->sqlldr 检查数据库会话,发现对应会话等待事件为SQL*Net message from client,对应v$session.program为sqlldr@xxx,v$session.seq#保持不变,持续超过5个小...
巧用DBA_HIST_EVENT_HISTOGRAM定位GPFS写缓慢问题
1问题 9月1日接监控告警,8月份批量生成文件缓慢,没有在窗口内完成。2分析 生成批量文件的逻辑很简单,针对一个查询语句进行循环,依次使用utl_file.put_line写入文件(文件在集群文件系统GPFS上)。 查询SQL执行计划,未发现异常。 查询g...
两个会话分别只执行一个SQL,可能形成死锁吗
1,问题 两个会话分别只执行一个SQL,可能形成死锁吗?2,测试设想 对于一个大表(比如100万条记录),两个会话分别从一个大表的两端(头、尾)更新,就可能形成互相等待对方已占有资源的情况,从而形成死锁。3,测试3.1测试版本:Oracle Database 11g Enterprise Edition Release 11.2.0....
利用query_rewrite调优SQL性能甚至改变结果
1,问题:一般为了解决性能问题,可能需要使用outline、sql profile固定执行计划。dbms_advanced_rewrite重写SQL,甚至可能通过重写改变查询结果。2,条件:--权限:execute on dbms_advanced_rewritecreate materialized view--回话或系统级设置query_rewrite_integerity=trusted/stale_tolerated(enfored...
split分区操作导致的librarycachelock
1. 问题1.1 问题在Oracle10.2.0.5.0版本中,使用split新增分区时,由于被split分区缺少统计信息,split操作中特定递归sql对存在全局索引的表进行索引范围扫描,导致大量逻辑IO,执行时间变长,进而导致大量insert会话等待事件library cache lock。1.2 解决思路思路1:每次对分区P_CSTTRANMONI_DEFAULT做split前收...
sqlldr一行记录拆分为多行
需求:将以下文件中每行数据,按列拆分为多行。如将文件a.txt插入表中,文件a.txt内容:a 1 2 3b 11 12 13c 21 22 23插入后的效果:a col1 1b col1 11c col1 21a col2 2b col2 12c col2 22a col3 3b col3 13c col3 23--目标表SQL> desc tmp_mh Name &nb...
巧用笛卡尔积一行拆多行
需求:将表中每行数据按第二列的值进行拆分,值为n则拆分为n行,每行值取1.--巧用笛卡尔积一行拆多行--笛卡尔积+过滤with ta as (select 'a' id, 2 cnt from dual union all select 'b' id, 1 cnt from dual union all select 'c' id, ...
利用query_rewrite调优SQL性能甚至改变结果
1,问题:一般为了解决性能问题,可能需要使用outline、sql profile固定执行计划。dbms_advanced_rewrite重写SQL,甚至可能通过重写改变查询结果。2,条件:--权限:execute on dbms_advanced_rewritecreate materialized view--回话或系统级设置query_rewrite_integerity=trusted/stale_tolerated(enfored...
oracle-wallet
wallet 用于存储证书/密码的容器,管理工具包括:orapki和OWM。测试如下:1,获取帮助[oracle@bnet95 ~]$ mkdir orapki[oracle@bnet95 ~]$ cd orapki[oracle@bnet95 orapki]$ orapkiorapki [crl|wallet|cert|help][oracle@bnet95 orapki]$ orapki wallet helpwallet: create [-wallet [wallet]] [-auto_logi...
TM LOCK MODE
1,在DML操作时,自动获取表上的row exclusive mode(lmod=3)的锁。2,可以在线创建索引,但无法在线删除索引或修改为UNUSABLE(被dml操作阻塞),报“ORA-00054: resource busy and acquire with NOWAIT specified”;一般通过多次尝试删除。--可以尝试如下方式删除吗?lock table ta in row exclusive mode;...
分析24小时日志获取交易时间分布
1,创建按分钟分布的表create table tmp_acq_min(m varchar2(10));begin for x in 0..23 loop for y in 0..59 loop insert into tmp_acq_min(m) values(lpad(x,2,'0')||lpad(y,2,'0')); end loop; end loop;end;/...
联机创建索引的注意事项
--1,测试用表drop table mh;create table mh(x int,y int);create index idx_mh_xy on mh(x,y);insert into mh(x,y) values(1,1);insert into mh(x,y) values(2,2);insert into mh(x,y) values(3,3);commit;--2,创建新索引create index idx_mh_xy2 on mh(y,x);SQL> select index_name...
是否可以只创建部分分区上的本地索引
可能在特定环境下,需要在分区表的部分分区上创建索引(减少创建索引时间),是否可能?可以通过如下方式实现:数据库版本:SQL> select * from v$version; BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 ...
select for update与autocommit关系
select for update与autocommit关系一直以为,autocommit on时,select for update不会对行加锁。今天测试了一下,结果出乎意料。ORACLE10R2/ORACLE11R2 sqlplus中:create table t(x int);insert into t values(1);commit;测试1:--会话1set autocommit onselect * from t for update;--会话...
OracleDBA的前景
随着云存储、nosql的发展,ORACLE DBA的前景似乎有些不妙。我们一起看看数据库领域的发展趋势。1,云存储大量涌现2,nosql在不断侵蚀传统关系型数据库的海量数据领域3,mysql也在互联网领域得到更多的应用ORACLE/DB2 DBA的前景在哪里?其实并不需要如此悲观。首先,IT技术在发展,即使没有这些新技术,也会...
connect by与where条件执行顺序问题
-----------层次查询中查询条件在connect by后执行文档:《SQL REFERENCE》SELECT/hierarchical_query_clause The hierarchical_query_clause lets you select rows in a hierarchical order.SELECT statements that...
11GR2新特性测试-闪回归档
闪回数据归档测试(1)版本SQL> select * from v$version;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Pr...
ORA-39142-impdp 版本低问题
在使用低版本impdp导入高版本导出的文件时,会报ORA-39142: incompatible version number 2.1 in dump file错误。可以先导入高版本库中,然后再加VERSION参数导出,最后就可以导入低版本库中。1,在10.2.0.1...
Oracle11g新特性之edition
SQL> select * from v$version;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Produ...
存储过程中user_tables的owner是definer还是invoker
基于自定义函数的索引在使用时,需要注意因修改函数导致的索引状态变化。需要关注两点:*** user_indexes.FUNCIDX_STATUS*** create or replace 方式修改函数后,虽然索引状态有效,但索引本身因为没有重建,...