关于sql脚本性能的一些研究
2011-09-28 17:05
447 查看
SELECT
a.*
FROM
[Function] a
where
not exists (
select FunID from RelFunPakageFun b
where FunPakageID = '786D25CB-8E2E-4F2D-A893-808F1AC24AE5' and a.FunID = b.FunID
)
SELECT
*
FROM
[Function] a
where
not exists (
select * from RelFunPakageFun b
where FunPakageID = '786D25CB-8E2E-4F2D-A893-808F1AC24AE5' and a.FunID = b.FunID
)
结论:not exists 内是否使用*号对于性能没有影响
select * from Tenant
select
[TenantID]
,[FullName]
,[ShortName]
,[AdminID]
,[Status]
,[CreateTime]
,[Creater]
,[EditTime]
,[Editor]
from Tenant
结论:*与写明各列性能相差不大,在列不是多得离谱的情况下
SELECT
a.*
FROM
[Function] a
where
not exists (
select FunID from RelFunPakageFun b
where FunPakageID = '786D25CB-8E2E-4F2D-A893-808F1AC24AE5' and a.FunID = b.FunID
)
SELECT
*
FROM
[Function]
where
FunID not in (
select FunID from RelFunPakageFun
where FunPakageID = '786D25CB-8E2E-4F2D-A893-808F1AC24AE5'
)
结论:exists相比in有更高的索引利用率,但实际效率相差并不大,除非海量数据否则用户不会有等待时间上的差别
select COUNT(*) from tbTest
select COUNT(tid) from tbTest
select COUNT(tint) from tbTest
select COUNT(tname) from tbTest
select COUNT(tinfo) from tbTest
tid唯一索引,tint无索引,tname不唯一索引,tinfo无索引
tin int,tin int,tname varchar(50),tinfo varchar(50)
结论:count时*与唯一索引速度相同,速度与类型无关,不唯一索引慢于唯一索引,无索引最慢。count应使用*,避免写的不是唯一索引
a.*
FROM
[Function] a
where
not exists (
select FunID from RelFunPakageFun b
where FunPakageID = '786D25CB-8E2E-4F2D-A893-808F1AC24AE5' and a.FunID = b.FunID
)
SELECT
*
FROM
[Function] a
where
not exists (
select * from RelFunPakageFun b
where FunPakageID = '786D25CB-8E2E-4F2D-A893-808F1AC24AE5' and a.FunID = b.FunID
)
结论:not exists 内是否使用*号对于性能没有影响
select * from Tenant
select
[TenantID]
,[FullName]
,[ShortName]
,[AdminID]
,[Status]
,[CreateTime]
,[Creater]
,[EditTime]
,[Editor]
from Tenant
结论:*与写明各列性能相差不大,在列不是多得离谱的情况下
SELECT
a.*
FROM
[Function] a
where
not exists (
select FunID from RelFunPakageFun b
where FunPakageID = '786D25CB-8E2E-4F2D-A893-808F1AC24AE5' and a.FunID = b.FunID
)
SELECT
*
FROM
[Function]
where
FunID not in (
select FunID from RelFunPakageFun
where FunPakageID = '786D25CB-8E2E-4F2D-A893-808F1AC24AE5'
)
结论:exists相比in有更高的索引利用率,但实际效率相差并不大,除非海量数据否则用户不会有等待时间上的差别
select COUNT(*) from tbTest
select COUNT(tid) from tbTest
select COUNT(tint) from tbTest
select COUNT(tname) from tbTest
select COUNT(tinfo) from tbTest
tid唯一索引,tint无索引,tname不唯一索引,tinfo无索引
tin int,tin int,tname varchar(50),tinfo varchar(50)
结论:count时*与唯一索引速度相同,速度与类型无关,不唯一索引慢于唯一索引,无索引最慢。count应使用*,避免写的不是唯一索引
相关文章推荐
- 关于sql脚本性能的一些研究
- 关于时间函数的一些有用的SQL脚本
- 关于SQL语句的一些注意事项
- 关于Xcode编译性能优化的研究工作总结
- 关于树分块算法的一些研究
- 数据库订正脚本性能优化两则:去除不必要的查询和批量插入SQL
- 关于Discuz论坛架构的一些研究心得
- 数据库性能优化常用sql脚本总结
- 一些不熟悉的SQL脚本--约束条件
- 关于写脚本的一些技巧和想法
- 关于sql 语句的一些总结
- 关于SQL 的一些操作
- 关于C#执行多个SQL语句的一些操作——Note on Dec. 19th
- 关于log的一些脚本
- JQuery Tips(4)----一些关于提高JQuery性能的Tips
- sql一些语句性能及开销优化
- 关于boost库性能与安全的一些总结
- 关于开发游戏时性能优化的一些方法
- 关于Excel Vba 自动生成代码的一些研究
- 关于sql的一些基本语句分享