| « | 七月 2009 | » | ||||
|---|---|---|---|---|---|---|
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 | ||
今天在调整一个SQL的时候发现有一个表使用了NVARCHAR2字段类型,在于VARCHAR2类型的字段连接时发生隐式转换(VARCHAR2 -> NVARCAHR2),导致SQL走了全表扫描。
SQL类似如下:
SELECT * FROM T1,T2 WHERE T1.NAME=T2.NAME AND T1.NAME='XXX';
其中T1的NAME类型为:NVARCHAR2
T2的NAME类型为:VARCHAR2 查看全文
在alert文件中,我们可能会看到这样的报错信息:
Wed Aug 20 17:16:37 2008
ORA-1652: unable to extend temp segment by 128 in tablespace DBA_TEMP
要解决这个问题,我们首先要导致这个问题的SQL,可能方法有几种: 查看全文
ORA-07445: exception encountered: core dump [_int_malloc()+374] [SIGSEGV] [Address not mapped to object] [0x68C3D0] [] []
解决方法:因为这个错误表示已经有DISPATCHER异常中断了,所以需要重置MTS_DISPACHER,使得数量与参数预设值一样:
alter system set dispatchers='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(LISTENER=listener_01))(SDU=2048))(DISPATCHERS=15)' scope=memory;
创建完全刷新的物化视图时遭遇ORA-12014suk@D10R2N1> create materialized view mv_test1 refresh complete as select * from test2;
create materialized view mv_test1 refresh complete as select * from test2
*
ERROR at line 1:
ORA-12014: table 'TEST2' does not contain a primary key constraint
创建完全刷新的物化视图时与主键没有关系,经查metalink,发现这是一个BUG:
Metalink给出的解决方法是加上with rowid子句:
suk@D10R2N1> create materialized view mv_test1 refresh complete with rowid as select * from test2;
Materialized view created.
如果force_logging=no 则
对于普通表:
noarchive: append
archvie: nologging + append
临时表:
noarchive: append
archvie: append
如果force_logging=yes
对于普通表:
noarchive: 无法减少日志量
archvie: 无法减少日志量
临时表:
noarchive: append
archvie: append
由于临时表只保存临时数据,就算恢复不了也没问题,所以尽量不让它产生日志。
oradebug可以帮助我们做很多事情,如dump内存信息、设置事件、挂起进程等。本文主要介绍如何使用oradebug挂起进程。
查看全文
为一个RAC搭建standby和单节点搭建方法基本一致,我们可以把RAC看成是一个单节点的数据库,只需要保证所有节点的日志能传送到备库即可。
查看全文
为一个RAC搭建standby和单节点搭建方法基本一致,我们可以把RAC看成是一个单节点的数据库,只需要保证所有节点的日志能传送到备库即可。
查看全文
今天对一个排序分页查询进行了一次优化,优化后性能得到明显改观。下面用例子说明优化步骤。 查看全文
今天在处理一个会话满了的数据库,需要释放部分无用的session。根据V$SESSION的program可以简单确定PL/SQLDEV连过去的会话基本是无效会话,需要把这些会话都kill掉: 查看全文
今天接到开发人员报告:开发库的一个表不能更新数据。
登上开发库执行一下发过来的SQL,果然报错:
SQL> update CAT_AUTH_BAD_DRUG set PROCLAMATION_NUMBER = 'ss';
update CAT_AUTH_BAD_DRUG set PROCLAMATION_NUMBER = 'ss'
*
ERROR at line 1:
ORA-23474: definition of "NDMAIN"."CAT_AUTH_BAD_DRUG" has changed since
generation of replication support
今天登陆数据库时报错:ORA-00257 archiver error. Connect internal only, until freed。
查看全文
今天遇到一个bug,对临时表进行insert的时候产生异常多的redo,下面模拟过程:
查看全文