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

sqlserver,哪句sql语句更快?

表singer:
singerID,singerName
1,刘德华
2,张学友
3,郭富城
4,黎明

表song:
songID,songName,singerID
1,忘情水,1
2,中国人,1
3,吻别,2
4,对你爱不完,3
5,今夜你会不会来,4

我想查找刘德华的歌曲,有两种sql语句:
1.两表连接
C# code:

select song.songName
from song,singer
where song.singerID = singer.singerID
and singer.singerName = '刘德华'

2.嵌套
SQL code:

select songName
from song
where singerID = (select singerID from singer where singerName = '刘德华')


在数据量很大的情况是,是连接表更快还是嵌套更快?
谢谢!
数据量大,连接快

1

看下计划,如果是这两句应该差不多.

第一种方法应该快一点  嵌套效率不高

学习 原来联查比较快啊

1

当然第一种了!而且写法还简单些

SQL code:

select * from icstockbillentry
--171010条记录,用时:45s
---------------
--测试join方案用时
-------------------
declare @d datetime
set @d=getdate()
select b.fnote
from icstockbill a,icstockbillentry b
where a.finterid=b.


相关问答:

sql可以有两个以上的触发器吗??

sql可以有两个以上的触发器吗??我指的是for触发器,那其他的呢??
什么意思?

可以的

10个都没问题

可是我写了两个for insert 触发器,造成进程阻塞了呢?怎么办呢?请高人指点
......

救命啊!!JSP连接SQL2000问题!

各位大侠救命啊 !!
刚装了SQL2000 sp3
想用JSP连接数据库但是出现问题了
我用的是JDK6.0+tomcat5.0+SQL2000 SP3+JDBC sp3
它显示的是
javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver fo ......

求教 查看SqlServer执行过的存储过程状态

在SqlServer中如何查看历史上执行的存储过程的信息呢,如:传入参数,执行时间等等。如果不能查看历史记录,是否可以自己写触发器之类的,人工控制呢,在Oracle里面有动态视图可以随时查看历史执行的sql语句,SqlSer ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号