数据库异常缓慢的解决 - FAST_START_PARALLEL_ROLLBACK
现象:1. 应用连接数据异常缓慢。2,数据库主机cpu占用率居高不下 , io 写入居高不下。分析:1 首先,怀疑应用有问题。 因为多个应用连接数据库,所以一个个应用停止后,查看其他应用的数据库执行速度。经过测试。 只剩下最后一个应用后,执行速度仍然很慢,数据库cpu仍然占用很高。2 接着怀疑是数据库的问题。 接着怀疑是数据库的问题, 把最后一个应用也停止, 把监听器停止。重启数据库,发现主机的io, cpu仍然是居高不下。把数据库关闭后,io,cpu马上就到了清闲状态。重启主机,启动数据库,数据库open很慢.shutdown immediate 数据库
一个触发器
晚上帮朋友实现个很简单的出发功能,有两张表 A ,B当在A表中插入数据时候,同步的在B表中插入相同的数据,触发器语法如下:create or replace trigger tg_insert_emp1after insert on scott.emp1for each rowbegininsert into emp2 values(:new.empno,:new.sal);end;这里有个要注意的地方。。A 与B的字段必须一样。。[@more@]
利用ROWNUM来实现的功能
有两张表T: A B 1 3 2 2 3 5 4 4 S:A B 1 3 1 3 3 5 3 5现在要实现一个功能 ,查询出以下的结果A B1 32 33 54 5利用ORACLE中的ROWNUM来实现select t.a,s.b from(select a,rownum row from t) t,(select b,rownum row from s) s where t.row=s.row;其实该语句就是将ROWNUM 在表中变成一个实体化的列该应用是在写SQL应用的时候出现的,这个只是个测试案例。不过发现ROWNUM效率偏慢。。[@more@]
一个SQL语句的优化
select to_char(tt.yearmonth,'yyyy') year,to_char(tt.yearmonth,'mm') month,tt.yearmonth,max(total) over (partition by to_char(tt.yearmonth,'yyyy') order by yearmonth)from(select trunc(hiredate,'mm') yearmonth,max(sal) total from empgroup by trunc(hiredate,'mm') order by trunc(hiredate,'mm')) tt[@more@]
first_value和last_value的用法
first_value和last_value的用法:返回结果集中排在第一位和最后一位的值.SQL> desc studentName Type Nullable Default Comments ---- ------------ -------- ------- -------- NO VARCHAR2(5) NAME VARCHAR2(25) KM VARCHAR2(25) Y CJ NUMBER Y SQL> select * from student t;NO NAME KM CJ----- ---------
得到包含关键字的表空间与数据文件信息
1.在日常维护中,没有得心应手的“诊断脚本”是低效的,枯燥的。在这个小文儿里给大家抛个砖。请看下面是我日常维护中相对得心应手的一个查看包含某关键字的表空间及数据文件的“诊断脚本”(此脚本也是在逐步更新到现在这个样子的,以后还将继续优化)。这个脚本中有一些格式化输出和变量定义的小技巧,留给有心人发掘。ora10g@testdb /home/oracle/sql$ cat tbs.sql---------------------------------------------------- Script. Function: Query the tablespace info ---- Script. Name: tbs.sql ---- Author