易截截图软件、单文件、免安装、纯绿色、仅160KB

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


相关问答:

介绍Oracle和mysql的书 - Oracle / 非技术区

我对SQL SERVER和ACCESS比较熟,所以数据库的通用基础东西可以说都掌握的差不多了,我现在想要的就是以上两数据库的独特之处的介绍和应用介绍。
另外书最好对应最新版本 oracle是11g吧 10的也行;mysql是5.1吧
谢 ......

连接Oracle数据库,困扰

在Eclipse里编写的一个JAVA程序,连接数据库,却总连不上,程序为:
import java.sql.*;
public class as {
public static void main(String args[])throws Exception
{
Class.forName("oracle. ......

.net调用Oracle存储过程的重载问题

Oracle存储过程如下,用游标输出结果:
procedure proc_xcxf_detail(v_sbh varchar2,
                          v_szpq varchar2,
&nbs ......

ORACLE从9201升级到9208问题

ORACLE从9201升级到9208之后
环境变量中ORACLE_HOME没有设置 手工添加后
系统服务里所有ORACLE服务都起不来
命令行里输入 EXP或者LSNRCTL报提示无法定位程序输入点 lxhlcmod 于动态链接库 oranls9.dll上
......

请教DRIVER={Microsoft ODBC for Oracle} 连接问题!

是这样的我装了一台2003的虚拟机!

虚拟机IP:192.168.1.108
本机IP:192.168.1.100

我在虚拟机上装了oracle 10G ,现在想编写个程序读取oracle数据库里的记录,

我在本机装了个oracle XE Cl ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号