08 2012 档案
摘要:在微博上看到dbsnake 有一个培训,因为是在北京举办的,过去不。所以问dbsnake 能否把相关的文档传我一份。 dbsnake 邮件给我时说有些东西没有写到文档里。 这个文档也是dbsnake 对Oracle 的一个经验的积累的过程,全部写出来也不实际,所以有机会还是多参加这类培训,这对技术提高还是很有帮助的。在这个文档里dbsnake 整理了一个PL/SQL 的开发文档。 贴过来,共享之。常用的PL/SQL开发原则 bysnake: (1)广泛使用绑定变量,特别是批量绑定,因为这可以有效的避免sql的硬解析和PL/SQL引擎和SQL引擎的上下文切换! (2)广泛使用UROWID来处理D
阅读全文
摘要:Oracle在9i以后,可以利用DBMS_METADATA.GET_DDL包得到数据库的对象的ddl脚本。如下(SQLPLUS中执行):1.获取单个的建表、视图和建索引的语法setpagesize0setlong90000setfeedbackoffsetechooffspoolDEPT.sqlselectdbms_metadata.get_ddl('TABLE','TAB_NAME','SCOTT')fromdual;selectdbms_metadata.get_ddl('VIEW','VIEW_NAME',&
阅读全文
摘要:根据NULL的定义,NULL表示的是未知,因此两个NULL比较的结果既不相等,也不不等,结果仍然是未知。根据这个定义,多个NULL值的存在应该不违反唯一约束。CREATE TABLE TESTAA (ID NUMBER)SELECT * FROM TESTAA;ALTER TABLE TESTAA ADD UNIQUE (ID);INSERT INTO TESTAA VALUES (NULL);单个值NULL可以随意插入进去,不报错。但是当唯一约束为复合字段时,则情况发生了变化。根据Oracle文档的描述,对于复合字段的唯一约束,不为空字段的值是不能重复的。也就是说,如果两个字段构成了一个唯一
阅读全文
摘要:1. 先通过top命令查看产用资源较多的pid号, 注意:top命令的user的oacle的,关注pid2.查询当前耗时的会话ID,用户名,sqlID等:其中top中的pid就是v$process的spid字段值。不是v$process视图中的pid值。select sid,serial#,machine,username,program,sql_hash_value,sql_id, to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') as login_time from v$sessionwhere paddr in (select add
阅读全文
摘要:在写SQL 执行过程中,需要停掉部分session或者session失效,需要KILL 掉。首先通过v$session视图查找到需要的KILL的session的值。1.杀死对应的进程(上述的sid与serial#参数传入)alter system kill session 'sid,serial#';上述步骤完成之后,若还是无法释放对应的资源,进行下一步操作:2. 取得语句的进程号select spid,osuser,s.program from v$session s,v$process pwhere s.paddr=p.addr and s.sid=&sid;3.在
阅读全文

浙公网安备 33010602011771号