总共3个人面,第一个哥们上来先让我介绍项目,就说了RRMS,之前准备的也是这个,本来以为他们会对业务更感兴趣,因为毕竟是做ERP的嘛,谁知道对于业务方面一个问题也没提,后来才明白原因,因为B1不是直接面向业务的,属于底层和业务层的中间层,开发自己使用的ORM (..更多内容)
整理一下以便以后查阅,毕竟对于管理数据库的工作来说,经验是最重要的财富
CASE1:非本地索引在表被TRUNCATE之后,需要REBUILD,而本地索引则不用。另外对于分区表,全局索引在表执行分区相关的操作,如ADD PARTITION或TRUNCATE PARTITION等时会失效,ORA-01502: index 'IDX_XXXX' or partition of such index is in unusable state。所以还是用本地索引吧~
drop index idx_table_name;
create unique index idx_table_name on table_name (columns) local tablespace tablespace_name;
另外SQL LOADER加载的时候如果表有索引,ORACLE也会去维护索引,数据量较大的情况下可能导致索引失效,因此做好先DISABLE掉或者DROP掉,数据导完了在加上。
LOCAL INDEX也有问题,如果一个session锁住了某个表,另一个session尝试rebuild这个表的LOCAL INDEX的话,会报:
ORA-00054: resource busy and acquire with NOWAIT specified
解决方案是加上online:
alter index idx_xxxxx rebuild partition pn online;
CASE2:10.2的BUG,程序里面用了Hash Group By的特性,报错:
Errors in file /oracle/admin/oradb1/udump/oradb1_ora.577630.trc:
ORA-00600: internal errow code, agruments: [32695], [hash aggregation can't be done], [], [], [], [], [], [].
Oracle支持的回复是:
——one-off patch升级到10.2.0.4
——不适用10g的Hash Group By特性
最后选择了后者,把程序改掉了=。=
CASE3:这是一个容易想当然的错误,现在看起来简直是初学者的错误。。。
CREATE TABLE XX AS
SELECT * FROM YY ORDER BY ZZ
ORDER BY的结果集是有序的,但是XX中的物理顺序并不一定有序,因此
SELECT * FROM XX所得到的结果集不一定是有序结果集
当时是有几个千万级的表在一个程序中需要多次排序,怕TEMP爆掉因此建了临时表,想把排好序的记录放在一个表里,后来发现达不到预期效果,才注意到这个错误。。
CASE4:The error message: ORA-01536: space quota exceeded for tablespace 'xxx'
此时表空间还剩余20%左右。这错误是调用存储过程的时候报的。后来发现是该用户无unlimited tablespace的权限导致。
那时候系统刚上线,估计DBA收回了我们用户的DBA权限。
在GRANT RESOURCE TO USER01时会自动分配unlimited tablespace权限,如果DBA执行了Revoke DBA的操作,则会将该权限一并回收~
暂时先写这些,准备去机场了~
前两天看上个月年会的视频,感觉节目整体不如前年啊~咱那一个舞狮就可以比下好多去XD
于是这里回顾一下,这辈子估计都不会再干这件事了……
PS:咱是黄狮子屁股
从20:25一直唱到23:00,麻衣一直很卖力的唱着,大家也都非常配合,挥舞着手中的荧光棒,跟着一起唱,绕场跑的时候麻衣还摔倒了。。。 (..更多内容)


