SQL各种写法的效率问题
来源:互联网 发布:mysql 删除所有的表 编辑:程序博客网 时间:2024/04/28 01:46
(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是两个查询结果的所有不重复值(并集)
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- SQL各种写法的效率问题
- 蜜锋
- HOW TO:避免“将COM对象与其基础RCW分开后不能再使用该对象”错误
- 新的开始
- 网友遇到scvhsot.exe,SVCH0ST.EXE,wincabb.exe,wmcony.exe等
- 贺:WINX发布4个月整
- SQL各种写法的效率问题
- c# 8条语句实现屏幕抓图
- JAVA基础:提升JSP应用程序的七大绝招
- 黑客知识系列之木马程序隐身的技术
- .NET值类型变量“活”在哪?
- JDom
- 为安格的雪样年华
- SQL存储过程
- 国内出名的论坛的SQL存储过程脚本