文章列表
如何移动本地文件系统中的日志到raw device上去
1、现象、问题描述SQL> select group#,member from v$logfile; GROUP# MEMBER----------------------------------------------- 1 /home/oracle/oradata/fanu10/redo02.log 2 /home/oracle/oradata/fanu10/redo03.log 3 /home/oracle/oradata/fanu10/redo04.log
...
如何解决错误删除数据库文件数据库不能启动的问题1、现象、问题描述SQL> startup ORACLE instance started. Total System Global Area 96393244 bytes Fixed Size 75804 bytes Variable Size 56918016 bytes Database Buffers 39321600 bytes Redo Buffers 77824 bytes Database mounted. ORA-01157: cannot identify/lock data file 10 - see DBWR tra ...
原始的查询SQL如下:select * from sm_histable0622 where destaddr = '8613423715374' And Final >'2007-6-27'And orgaddr = '1860' and Expire<'2007-8-27'
在这个SQL中红色部分(index in1)和蓝色部分字段(index in2)是两个组合索引,但Oracle 只能利用到一个索引,如下:
但表中的记录很多时这个原始查询很慢。有没有办法让查询使用到两个索引呢?
Oracle Hint是一种让DBA自行指定优化器的行为的方法,当优化器的优化结果不 ...
当在一个有大量记录的表上创建索引时这个时间可能会很长,我做了一个实验,在SUN的工作站上对一个有八百多万行的表创建索引要20分钟左右。SQL>set timing onSQL> create index ind_sub_obj on subscribeinfo(OBJECTID);Index created.Elapsed: 00:20:44.50
那么有什么办法来加速索引的创建呢?索引的创建过程实质是一个创建B+树的过程,这个过程中一个重要的阶段就是做排序操作,如果我们把更多的排序过程放在内存中完成会大大地加速索引的创建。下面的例子通过调整数据库的pga_aggregate_ta ...
PL/SQL procedure successfully completed.
Elapsed: 00:03:35.33SQL> select count(*) from t;
COUNT(*)---------- 2000000
Elapsed: 00:00:00.08
Execution Plan---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=811 Card=1) 1 0 SORT ...
大家在statspack报告中经常会去查看top5的语句,但想得到top5语句,其实非常之简单,完全没有必要兴师动众地去用statspack,而只要这条简单的SQL语句即可轻松搞定。Statspack还是在需要分析event,latch,io 等时再去用吧。
SQL> select substr(sql_text,1, 50) sql_text,buffer_gets,buffer_gets/executions avg from v$sqlarea 2 where executions > 0 3 and buffer_gets > 100000 4 and ...
alter system set sessions=XXX Pfile, spfile中的processes个数不要设置太多
set tracefile_identifier命令可以在现在的Trace跟踪日志文件名的后面加一个后缀,这样就可以很快找到相应的trace文件了。
SQL> alter session set tracefile_identifier='liang0806';
Session altered.
Elapsed: 00:00:00.03SQL> alter system dump undo header '_SYSSMU23$'; ...
1、查看所有的会话 select * from v$session
2、查看会话的等待事件select * from v$session_wait该语句在数据库会话被阻塞时用来收集会话被阻塞的原因。
3、查看被锁的对象select * from v$locked_object
4、查看SGA的状态select * from v$SGA
5、查看数据库使用的数据文件select name, bytes from v$datafile6、查看表/索引所占的空间 select sum(bytes) / 1048676 from user_extents where segment_name=' ...
1、查找耗用资源高的SQL语句select SQL_TEXT, EXECUTIONS, DISK_READS, BUFFER_GETS,DISK_READS / DECODE(EXECUTIONS, 0, 1, EXECUTIONS) as AVER_DISK,BUFFER_GETS / DECODE(EXECUTIONS, 0, 1, EXECUTIONS) as AVER_BUFFfrom v$sqlarea order by AVER_BUFF desc
2、获得SQL语句的执行计划SQL: explain plan for select * from t_mytable where f ...
1、查看每个表空间剩余空间 select TABLESPACE_NAME, sum(bytes)/1024/1024,sum(blocks) from dba_free_space group by tablespace_name
2、查看每个表空间总的尺寸 select tablespace_name, sum(bytes) / 1048576 from dba_data_files group by tablespace_name
3、给表空间添加数据文件 alter tablespace service_core_dat add datafile '/dev/vgdata/rl ...
3,幻读事务1读取指定的where子句所返回的一些行。然后,事务2插入一个新行,这个新行也满足事务1使用的查询where子句。然后事务1再次使用相同
的查询读取行,但是现在它看到了事务2刚插入的行。这个行被称为幻象,因为对事务1来说,这一行的出现是不可思议的。举个例子:事务1:请求没有预定的,双人床房间列表。事务2:向Reservation表中插入一个新纪录,以预订99号房间,并提交。事务1:再次请求有双人床的未预定的房间列表,99号房间,不再位于列表中。注:幻读,针对的是,Insert操作。如果事务2,插入的记录,没有提交。那么同时也是脏读。
2,不可重复读。在同一个事务中,再次读取数据时【就是你的select操作】,所读取的数据,和第1次读取的数据,不一样了。就是不可重复读。举个例子: 事务1:查询有双人床房间。99号房间,有双人床。 事务2:将99号房间,改成单人床房间。 事务1:再次执行查询,请求所有双人床房间列表,99号房间不再列表中了。也就是说, 事务1,可以看到其他事务所做的修改。在不可重复读里面,可以看到其他事务所做的修改,而导致2次的查询结果不再一样了。这里的修改,是提交过的。也可以是没有提交的,这种情况同时也是脏读。如果,数据库系统的隔离级别。允许,不可重复读。那么你启动一个事务,并做一个 ...
以下隔离的概念:ANSI SQL中定义的4个隔离级实际上是用对锁的操作来定义的: 脏读: 读数据时不加锁。 提交读: 在读数据之前加一个读锁,读完之后释放锁。 可重复读: 在读数据之前加一个读锁,读完之后不释放锁,直到事务rollback或者commit后才释放锁。 串行化读: 在读数据之前在读取的条件上加锁(称为条件锁),读完之后不释放锁,直到事务rollback或者commit后才释放锁。
脏读、幻读及不可重复读详解:1, 脏读一个事务读到另一个事务尚未提交的修改,就是脏读。这里所谓的修改,除了Update操作,不要忘了,还包括Insert和Delete操作。脏读的后果:如 ...
脏读 幻读 不可重复读锁就是防止其他事务访问指定的资源的手段。锁是实现并发控制的主要方法,是多个用户能够同时操纵同一个数据库中的数据而不发生数据不一致现象的重要保障。一般来说,锁可以防止脏读、不可重复读和幻觉读。
脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。
不可重复读是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之 ...