oracle procedure 实际开发遇到的问题
有两张表 1.第一张,数量百万级 id number 主键 name varchar(50) 2.第二张,数量1万级 id number 主键 deletename varchar(50) 现在的问题是要写一个存储过程,删除第一张表中的name字段有在第二张表deletename中出现的记录, 怎么写性能最高啊,大家集思广义啊,小弟在此谢过了......
delete a where exist ( select 1 from b where a.name=b.deletename )引用 delete a where exist ( select 1 from b where a.name=b.deletename ) select 1 是什么意思啊 select 1 表示出来的结果无所谓的 只有匹配值就返回 只是习惯写法,其实你可以写任何值,不影响结果的 1. delete a where exist ( select 1 from b where a.name=b.deletename ) 2. delete a where a.name in ( select b.deletename from b ) 这两个,哪个性能高点 这种数据量EXIST应该会快点 delete from a where a.name in ( select deletename from a,b where a.name=b.deletename ); delete a where exist ( select 1 from b where a.name=b.deletename ) 快些 在实际的项目应用中应该尽量避免使用 in 和 no
相关问答:
我对SQL SERVER和ACCESS比较熟,所以数据库的通用基础东西可以说都掌握的差不多了,我现在想要的就是以上两数据库的独特之处的介绍和应用介绍。 另外书最好对应最新版本 oracle是11g吧 10的也行;mysql是5.1吧 谢 ......
在Eclipse里编写的一个JAVA程序,连接数据库,却总连不上,程序为: import java.sql.*; public class as { public static void main(String args[])throws Exception { Class.forName("oracle. ......
Oracle存储过程如下,用游标输出结果: procedure proc_xcxf_detail(v_sbh varchar2, v_szpq varchar2, &nbs ......
ORACLE从9201升级到9208之后 环境变量中ORACLE_HOME没有设置 手工添加后 系统服务里所有ORACLE服务都起不来 命令行里输入 EXP或者LSNRCTL报提示无法定位程序输入点 lxhlcmod 于动态链接库 oranls9.dll上 ......
是这样的我装了一台2003的虚拟机! 虚拟机IP:192.168.1.108 本机IP:192.168.1.100 我在虚拟机上装了oracle 10G ,现在想编写个程序读取oracle数据库里的记录, 我在本机装了个oracle XE Cl ......