sql查询like和charindex和substring比较性能测试
2011-03-22 10:48
519 查看
300万条记录 like 和 charindex 函数以及substring函数性能比较:环境:sql2005数据量:300万查询结果数据量:2849999机器环境P4 3.0双核 2G内存1. 执行语句表结构:
USE [Test] GO /****** 对象: Table [dbo].[TabTest] 脚本日期: 03/22/2011 09:46:20 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[TabTest]( [id] [int] IDENTITY(1,1) NOT NULL, [ypmc] [nvarchar](50) NULL, [ypdm] [nvarchar](50) NULL, [cdmc] [nvarchar](50) NULL, [cddm] [nvarchar](50) NULL, [gg] [nvarchar](50) NULL, [list] [nvarchar](50) NULL, [doc1] [nvarchar](50) NULL, [ywuserid] [int] NULL, [flag] [tinyint] NULL, [flagstr] [nchar](10) NULL ) ON [PRIMARY]
/*仅list字段建聚集索引*/ select * from TabTest where list like '%a%' and ywuserid=10215 select * from TabTest where charindex('a',list)>0 and ywuserid=10215 select * from TabTest where substring(list ,1,1) = 'a' and ywuserid=10215 /*仅list字段建非聚集索引*/ select * from TabTest where list like '%a%' and ywuserid=10215 select * from TabTest where charindex('a',list)>0 and ywuserid=10215 select * from TabTest where substring(list ,1,1) = 'a' and ywuserid=10215 /*list字段不建索引*/ select * from TabTest where list like '%a%' and ywuserid=10215 select * from TabTest where charindex('a',list)>0 and ywuserid=10215 select * from TabTest where substring(list ,1,1) = 'a' and ywuserid=10215 /*查询字段和list建索引*/ select * from TabTest where list like '%a%' and ywuserid=10215 select * from TabTest where charindex('a',list)>0 and ywuserid=10215 select * from TabTest where substring(list ,1,1) = 'a' and ywuserid=10215 /*全部字段和list建索引*/ select * from TabTest where list like '%a%' and ywuserid=10215 select * from TabTest where charindex('a',list)>0 and ywuserid=10215 select * from TabTest where substring(list ,1,1) = 'a' and ywuserid=10215
仅list字段建聚集索引性能分析:
仅list字段建非聚集索引性能分析:
字段不建索引性能分析:看到上面结果后:试了一下如下查询:
/*查询300万条*//*仅list字段建聚集索引*/select * from TabTest where list like '%a%'select * from TabTest where charindex('a',list)>0select * from TabTest where substring(list ,1,1) = 'a'/*仅list字段建非聚集索引*/select * from TabTest where list like '%a%'select * from TabTest where charindex('a',list)>0select * from TabTest where substring(list ,1,1) = 'a'/*list字段不建索引*/select * from TabTest where list like '%a%'select * from TabTest where charindex('a',list)>0select * from TabTest where substring(list ,1,1) = 'a'
/*list字段不建索引*/
/*仅list字段建非聚集索引*/
/*仅list字段建聚集索引*/自己看看性能比较结果吧!
相关文章推荐
- sql 查询强制使用HASH连接性能测试比较
- Oracle 性能测试一:嵌套SQL的查询速度比较分析(初级)
- Oracle 性能测试一:嵌套SQL的查询速度比较分析(初级)
- AdoNet vs LinqToSql vs NIntegrateQuery查询性能测试
- 提高sql查询性能-使用instr函数替换like
- SQL模糊查询,使用like比较字,加上SQL里的通配符
- MySQL分页的同时查询记录总数 SQL_CALC_FOUND_ROWS的性能测试
- AdoNet vs LinqToSql vs NIntegrateQuery查询性能测试
- Oracle模糊查询之(3.2从使用函数和sql语法角度来提高模糊查询效率 二)ORACLE中Like与Instr模糊查询性能大比拼
- MS_SQL模糊查询like和charindex的对比
- Sql语句与存储过程查询数据的性能测试实现代码
- sql时间区间查询性能测试
- SQL查询性能分析之(not in)、(and not)、(<>)、(!=)性能比较
- 300万条记录 like 和 charindex 函数性能比较
- Sql语句与存储过程查询数据的性能测试实现代码
- Sql性能优化之LIKE模糊查询
- SQL 性能优化-查询优化(like查询)
- sql查询性能调试,用SET STATISTICS IO和SET STATISTICS TIME---解释比较详细
- 300万条记录 like 和 charindex 函数性能比较 .
- T-SQL like charindex patindex 性能比较