关于library cache lock和library cache pin严重等待的问题
今天系统出现严重等待问题,表现如下:1. 现象SQL> select count(*) from v$session; COUNT(*)---------- 379SQL> select count(*) from v$session where status='ACTIVE'; COUNT(*)---------- 120当前情况,较正常时候,total session有所减少,active session增加了9倍。[@more@]SQL> select * from v$session_wait where event not like 'SQL%' and event not like 'rdbms%';发现大量的library cache lock和library cache pin等待,最长等待session约为半小时。此时CPU使用率和内存使用率呈趋势性下降。2. 查看
自动生成Statspack的脚本
以下为Oracle数据库,自动生成Statspack的脚本。可以设置在每天的23点许,一次性生成当天的数据库Statspack Report,时间范围为9:00~18:00的工作时间,抓取周期为1小时一次。以下为sql的脚本,shell部分可以根据具体OS环境确定,笔者环境为Windows 2003 Server。[@more@]set serveroutput onset feedback offset trims onspool sp_temp.sqldeclarecursor cursnap(sdate varchar2) isselect a.snap_id beginid,b.snap_id endid,'Z:dbashellmonitordba_logspcas_' || substr(sdate,5) || '_' || a.snap_time || b.snap_time ||'.log' repna
发现ORA-1461的错误
环境:HP-UX(11.11) ServiceGuard数据库:Oracle 10.2.0.3 RACalert_log中发现:ORA-1461 encountered when generating server alert SMG-3500METALINK中,说是Oracle的一个bug。造成这个问题的原因SMON进程在更新SMON_SCN_TIME表时,引发了ORA-1461错误。如果设置了EVENT:1461 TRACE NAME ERRORSTACK LEVEL 10,从后台SMON进程日志中可以看到下面的信息:ORA-01461: can bind a LONG value only for insert into a LONG column Current SQL statement for this session: update smon_scn_time set orig_thread=0, time_mp=:1, time_dp=:
从不绑定变量与绑定变量两种情况讨论柱状图的作用
本文从不绑定变量与绑定变量两种情况讨论柱状图的作用。一、不绑定变量的情况:考虑以下数据SQL> select owner,count(1) from th group by owner;OWNER COUNT(1)------------------------------ ----------SUK 1SYS 36216SYSTEM 1其中,在表的OWENR上建立有一个索引做普通分析后,执行查询SQL> analyze table th compute statistics;Table analyzedSQL> select * from th where owner='SYS';已选择36216行。[@more@]Execution Plan----------------------------------------------------------0 SELECT STATEMENT Optimizer=CHOO
db_file_multiblock_read_count参数对block读取和执行计划的影响
1.继续前一篇的内容,查看db_file_multiblock_read_count对全表扫描读取blocks的变化SQL> create tablespace aluocp datafile '/disk3/oradata/oradata/ora7a/aluocp.dbf' size 100M 2 extent management local uniform size 256K; Tablespace created. SQL> alter table t move tablespace aluocp; Table altered. [@more@]SQL> select file_id,block_id,blocks from dba_extents where segment_name='T'; FILE_ID BLOCK_ID BLOCKS ---------- ---------- ---------- 4 9 32 4 41 32 4 73 32 SQL> show parameter read_count
使用10046 event trace跟踪全表扫描操作
1.创建测试用表TSQL> create table t as select * from dba_objects;Table created. 2.查看T表的Block号和Block数量SQL> select file_id,block_id,blocks from dba_extents where segment_name='T';[@more@]FILE_ID BLOCK_ID BLOCKS ---------- ---------- ---------- 3 5025 8 3 5033 8 3 5041 8 3 5049 8 3 5057 8 3 5065 8 3 5073 8 3 5081 8 3 5089 8 3 5097 8 10 rows selected. 3.开启10046 event trace跟踪当前sessionSQL> alter session set events '10046 trace name context forever,level 12';Session altered. 4.执行