truncate empty table ora-02266, why? cause
oracle 不允许truncate 一个启用外键引用的父表,因为truncate 不会触发任何trigger和任何constraint验证,当然它也不会关心子表是不是真的为空或是不是没有参照。
DBMS_SHARED_POOL包 创建与使用
DBMS_SHARED_POOL 是从10.2开始提供的包,可以访问shared_pool中的对象,功能检查大于批定大小的对象,加入/移除shared_pool对象,11.1再完善..
Script: Procedure 启用/禁用表上全部外键
一个充满外键的表中DML,因为验证的原因会浪费很多额外时间,如果在确保数据的合法性的前提下先禁用外键约束,操作完后再启用,可以提高你的DML速度,下面一个procedure启用/禁用表上的全部外键。
ORA-600 [25016] internal error when ALTER DATABASE OPEN ORA-01092
sql>ALTER DATABASE OPEN;
ALTER DATABASE OPEN
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
Script: tom’s printtab code你值得拥有
–Tom Kyte’s printtab code
比如一个查询的列很多,在命令行窗口下看的很乱,就可以用tom的printtab转换成列打印出来
ORA-00600 [kghfrempty:ds] internal error issue
—- Error Stack Dump —–
ORA-00600: 内部错误代码, 参数: [kghrcdepth:ds], [0x7FFE37407008], [], [], [], [], [], [], [], [], [], []
—– SQL Statement (None) —–
Current SQL information unavailable – no cursor.
Script: oracle procedure error 生成txt日志文件
前天有网友问题这个问题,今天测试一把,需求应该是如果producre存储过程运行出错,可以写错误日志到OS的文本文件,这样系统管理员就可以看到,无需分配数据库权限.
AWR 之table scans (short tables)
Verify that your KEEP pool is sized properly to cache frequently referenced tables and indexes. Moving frequently-referenced tables and indexes to SSD or the WriteAccelerator will significantly increase the speed of small-table full-table scans.
impdp 挂起 tatement suspended, wait error to be cleared
ORA-39083: Object type INDEX failed to create with error:
ORA-30032: the suspended (resumable) statement has timed out
ORA-01659: unable to allocate MINEXTENTS beyond 59 in tablespace ICMETBS
ORA-39125: Worker unexpected fatal error in KUPW$WORKER.UNLOAD_METADATA while calling DBMS_METADATA.FETCH_XML_CLOB
AWR中的physical writes
investigate moving your high-write datafiles to a smaller data buffer to improve the speed of the database writer process.
AWR 中的consistent gets – examination
“Consistent gets – examination” is different than regular consistent gets. It is used to read undo blocks for consistent read purposes, but also for the first part of an index read and hash cluster I/O
QUERIES NOT SHARED WHEN CURSOR_SHARING=FORCE (并未共享游标)
前天有个朋友问我了个问题发现v$sqlarea 中文本相同的sql还有很多记录,也就是并未共享游标,也许很多人知道当cursor_sharing=force,可以尽可能的减小hard parse,记住是min,并不是完全防止硬解析,因为解析也很浪费资源
oracle user default role
通过grant 授于用户的角色,在用户登录时默认是全部继承的,除非是用alter user 显示的修改,指定用户连接后默认的角色有哪些,但是用户也可以使用后使用set role再附加已授权的但没启用的角色用于当前session
plsql 轻松得到insert,delete,update更新记录数
今天刚好有人问我这个问题 记录一下,在plsql中有时做几个dml操作但又想知道整个过程的操作的记录数,那可以用SQL%ROWCOUNT变量轻松实现,无论是不是拼的sql,不
cast multiset,nested table,object datatype column
昨看tom的书偶然发现了cast multiset这奇怪语法,回来试一下,主要是为了告诉查询返回是一个set集合,向嵌套表或varray column插入数据使用
Oracle11g新特性:只读表(read only table)
Oracle11g推出了一个新的特性,可以将table置于read only状态,处于该状态的table的不能执行DML操作和某些DDL操作。在Oracle11g之前的版本,只能将整个tablespace或者database置于read only状态。对于table的控制则只能通过权限来设定。
oracle cluster tables 聚簇表
I/O往往是一个事务最浪费请求时间的过程,磁盘I/o的代价是非常大的,因为数据库请求一个磁盘文件中的BLOCK,在read的过程中必须等待物理I/O操作成功完成。