随笔分类 - DB-Oracle
database
摘要:首先避免使用in ,not in,,,>=,is null,is not null主要搜索字段建立索引1.WHERE子句中的连接顺序 sql解析器采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在子句的末尾SELE...
阅读全文
摘要:用Oracle自带的卸载程序不能从根本上卸载Oracle,从而为下次的安装留下隐患,那么怎么才能完全卸载Oracle呢?那就是直接注册表清除,步骤如下:1、 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer 卸装所有Oracle产品,但Universal Installer本身不能被删除5、 运行regedit,选择HKEY_LOCAL_MACHINE\SOFTW
阅读全文
摘要:impdp和expdp是oracle 10g及以上版本才带的命令,目的是替换imp和exp命令,但为了向后兼容,故后面命令在高版本中依然可以使用。但imp和exp在处理跨版本的导入导出时很麻烦,而impdp和expdp可以在命令后面加参数轻松解决这个问题,具体的参数可以使用 expdp/impdp -help来查看以下内容为转载EXP常规模式、EXP直接路径模式和EXPDP三种方式导出的性能对比1.首先是EXP的常规路径导出:exp zhejiang/zhejiang file=/data1/zj_regular.dmp buffer=20480000常规EXP导出方式执行了1小时24分钟。
阅读全文
摘要:一、数据库死锁的现象程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错。二、死锁的原理当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提交,另一条对于这一列数据做更新操作的语句在执行的时候就会处于等待状态,此时的现象是这条语句一直在执行,但一直没有执行成功,也没有报错。三、死锁的定位方法通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台。1)用dba用户执行以下语句select username,lockwait,status,machine,program from v$session where sid in(select sessi
阅读全文
摘要:exp username/password@tnsname file=d:\oa_db_bak\oauser%date:~0,10%.dmp owner=username log=d:\oa_db_bak\oauser%date:~0,10%.log::将rar的可执行文件rar.exe的路径添加到系统的path里Rar.exe a d:\oa_db_bak\oauser%date:~0,10%.rar d:\oa_db_bak\oauser%date:~0,10%.dmpdel d:\oa_db_bak\*%date:~0,10%.dmp新建一个bat文件,根据自己的环境修改上面的内容。在w
阅读全文
摘要:1、标准sql规范一、单个IF1、if a=... then.........end if;2、if a=... then......else....end if;二、多个IFif a=.. then......elsif a=.. then....end if; 这里中间是“ELSIF”,而不是ELSE IF 。这里需要特别注意2、decode函数DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else)表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回...
阅读全文
摘要:1、查看数据库表的占用磁盘情况select segment_name, sum(bytes) / 1024 / 1024 as Mbytese from user_segments where segment_type = 'TABLE' group by segment_name order by Mbytese desc;2、查看数据库表空间Select a.Tablespace_Name, a.Size_Set, b.Size_Use, Decode(Sign(Size_Use), 0, 0, Round(b.Size_Use / a.Size_Se...
阅读全文
摘要:基础模板declarebianliang date;up_user varchar2(40);cursor temp is select a.serial_match,a.item_code,b.serial_icd from bs_catalog_match a, bs_disease b where a.item_code = b.icd;begin for i in temp loop select sysdate into bianliang from dual;--查询结果赋值给变量 up_user:='admin';--变量赋值 update bs_...
阅读全文
摘要:一个是问in exist的区别,一个是not in和not exists的区别把这两个很普遍性的网友比较关心的问题总结回答一下。in和exist的区别从sql编程角度来说,in直观,exists不直观多一个select, in可以用于各种子查询,而exists好像只用于关联子查询 从性能上来看 exists是用loop的方式,循环的次数影响大,外表要记录数少,内表就无所谓了 in用的是hash join,所以内表如果小,整个查询的范围都会很小,如果内表很大,外表如果也很大就很慢了,这时候exists才真正的会快过in的方式。 not in和not exists的区别not in内外表都进行全表
阅读全文
摘要:1、在SQL中尽量少用<>和!=下面的查询即使在cust_rating列有一个索引,查询语句仍然执行一次全表扫描。select cust_Id,cust_name from customers where cust_rating <> 'aa';把上面的语句改成如下的查询语句,这样,在采用基于规则的优化器而不是基于代价的优化器(更智能)时,将会使用索引。 select cust_Id,cust_name from customers where cust_rating < 'aa' or cust_rating > '
阅读全文
摘要:PL/SQL概述: PL/SQL是Oracle对SQL规范的扩展,是一种块结构语言,即构成一个PL/SQL程序的基本单位(过程、函数和无名块)是逻辑块,可包含任何数目的嵌套子块。这种程序结构支持逐步求精方法解决问题。一个块(或子块)将逻辑上相关的说明和语句组合在一起,其形式为: DECLARE ---说明 BEGIN ---语句序列 EXCEPTION ---例外处理程序 END; 它有以下优点: l 支持SQL; l 生产率高; l 性能好; l 可移植性; l 与ORACLE集成. PL/SQL机制可执行过程性语句,而将SQL语句发送到ORACLE服务器上的S...
阅读全文
摘要:Oracle 10g: wm_concatOracle 11g新增了函数:LISTAGG简单例子:SELECT a.id,wm_concat (a.remark) new_resultFROM tb_name agroup by a.id可以配合over一起使用,具体复杂的用法可以到时再查通用SQL:在使用过程中发现有些oracle会存在查询不出数据的问题,这个无解,所以找了个纯sql的列转行SELECT feeapportion_id, SUBSTR(MAX(SYS_CONNECT_BY_PATH(contract_no, ',')), 2) co...
阅读全文