sql语句根据特定条件改变排序及效率测试

原创 2007年10月04日 11:32:00

sql语句根据特定条件改变排序及效率测试





两个解决方案:
SELECT * FROM T_Admin
ORDER BY CASE WHEN admin_name = 'loo' THEN 0 ELSE 1 END 
另外一种:
SELECT *, 0 AS tmp_o
FROM t_admin
WHERE admin_name = 'loo'
UNION
SELECT *, 1 AS tmp_o
FROM t_admin
WHERE admin_name <> 'loo'
ORDER BY tmp_o
现在来考虑一下两条语句的效率问题
建立表:
CREATE TABLE [TestTable] (
 [ID] [int] IDENTITY (1, 1) NOT NULL ,
 [FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
 [LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
 [Country] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [Note] [nvarchar] (2000) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
 
插入数据:(2万条,用更多的数据测试会明显一些)
SET IDENTITY_INSERT TestTable ON
declare @i int
set @i=1
while @i<=20000
begin
    insert into TestTable([id], FirstName, LastName, Country,Note) values(@i, 'FirstName_XXX','LastName_XXX','Country_XXX','Note_XXX')
    set @i=@i+1
end
SET IDENTITY_INSERT TestTable OFF
 
简单的测试一下
如果不用top,所有数据都select出来的话两个的成本大概都是在50%左右,case语句会更快那么一点。
而同时输出几万记录的情况确实是太少了,加上top 10 结果就差非常的多。
union语句只需要0.38% 而 case语句竟然要99.26%。
测试的结果是:
如果小量数据推荐使用case语句,毕竟写起来是方便多了。
如果你的数据在1万以上,最好还是用union语句。
 

如何测试sql语句性能,提高执行效率

为了让您的程序执行的效率更高,SQL的效率一定不可忽视。 现有以下方法去检测SQL的执行效率。   对于多表查询的效率测试: 1)直接from ,where方式。 SET STATISTICS...
  • CsethCRM
  • CsethCRM
  • 2016年12月27日 13:22
  • 809

SQL执行效率和性能测试方法总结

对于做管理系统和分析系统的程序员,复杂SQL语句是不可避免的,面对海量数据,有时候经过优化的某一条语句,可以提高执行效率和整体运行性能。如何选择SQL语句,本文提供了两种方法,分别对多条SQL进行量化...
  • fwj380891124
  • fwj380891124
  • 2014年12月24日 17:53
  • 4525

常见sql语句效率优化方式

数据库sql优化
  • high2011
  • high2011
  • 2015年12月09日 12:37
  • 1185

SQL语句执行效率及分析

 1.关于SQL查询效率,100w数据,查询只要1秒,与您分享: 机器情况 p4: 2.4 内存: 1 G os: windows 2003 数据库: ms sql server 20...
  • Liu_jinchun
  • Liu_jinchun
  • 2017年01月03日 15:04
  • 1684

提高sql语句执行效率及索引

索引 index 作用:在数据库中用来加速对表的查询 原理: 通过使用快速路径访问方法快速定位数据,减少了磁盘的I/O 特点: 与表独立存放,但不能独立存在,必须属于某个表 由数据库自动维护,表被删除...
  • xybelieve1990
  • xybelieve1990
  • 2015年09月23日 15:16
  • 1193

pl/sql中三种游标循环效率对比

pl/sql中三种游标循环效率对比   这里主要对比以下三种格式的游标循环: ? 1 2 3 4 5 6 7 8 9 10 11 12 13...
  • lJean
  • lJean
  • 2016年04月19日 11:17
  • 278

oracle中查找执行效率低下的SQL

oracle中查找执行效率低下的SQL kt431128 发布于 9个月前,共有 0 条评论 v$sqltext:存储的是完整的SQL,SQL被分割 v$sqlarea:存储的S...
  • haiross
  • haiross
  • 2015年02月04日 10:35
  • 5884

sqlserver视图查询效率测试

测试视图的查询效率,结果清晰表示视图不降低查询效率。
  • wanmdb
  • wanmdb
  • 2015年12月19日 15:23
  • 3534

性能测试必备SQL语句总结

一、基础 1、说明:创建数据库 CREATE DATABASE database-name  2、说明:删除数据库 drop database dbname 3、说明:备份sql ser...
  • yunbin_7
  • yunbin_7
  • 2013年10月21日 20:18
  • 1464

软件测试中常用的SQL语句(初级篇)

软件测试人员对数据库需要熟悉的常用操作语句就是增删改查。 新增记录语句 语法格式: INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]...
  • smj811504083
  • smj811504083
  • 2017年01月10日 15:05
  • 2003
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sql语句根据特定条件改变排序及效率测试
举报原因:
原因补充:

(最多只允许输入30个字)