`
pleasetojava
  • 浏览: 730428 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

300万条记录 like 和 charindex 函数性能比较

 
阅读更多

300万条记录 like charindex 函数性能比较

环境:sql2005

数据量:300

查询结果数据量:127221

机器环境

P4 3.0双核 1G内存

1. 执行语句

--无索引

select count(*) from testing where [name] like '%00%'

select count(*) from testing where charindex('00',[name])>0

--有索引

select id from testing where [name] like '%00%'

select id from testing where charindex('00',[name])>0

--查询字段全部为索引

select id,[name] from testing where [name] like '%00%'

select id,[name] from testing where charindex('00',[name])>0

--查询所有字段

select * from testing where [name] like '%00%'

select * from testing where charindex('00',[name])>0

--查询字段不全部为索引

select id,bname from testing where [name] like '%00%'

select id,bname from testing where charindex('00',[name])>0

2. 没有 索引的情况下测试

结论:

a) 在完全没有添加索引时 charindex函数的性能比like

3. name字段添加索引测试:

结论:

a) charindex函数的性能比like

b) 检索的全部为索引项耗时要少的多,性能提升很高

4. 对单字段查询测试

结论:

a) charindex函数的性能比like

5. 对查询字段全部为索引项的测试

结论:

a) charindex函数的性能比like

6. 对表全字段查询测试

结论:

a) charindex函数的性能比like略好

7. 查询同等列数一个字段为索引项一个不是索引项字段的测试

结论:

a) charindex函数的性能比like略好

b) bname不为索引项查询的速度近似于第一的测试。

总结:

a) 在模糊查询时用charindex函数比用like性能好

b) 查询的字段数量越多速度越慢,在查询时只查需要的字段

c) 查询字段中如果有字段不为索引项则查询的速度和无索引时差不多即使where条件查询字段是索引项

d) ...也许你能从数据中再发现些什么欢迎补充

分享到:
评论

相关推荐

    sqlserver 中charindex/patindex/like 的比较

    在SQL Server中,`CHARINDEX`、`PATINDEX`和`LIKE`是三种常见的文本搜索函数,它们在处理字符串匹配时各有特点。本篇文章将详细分析这三个函数在SQL Server 2008环境下针对不同场景的性能和适用性。 1. `CHARINDEX`...

    CHARINDEX函数

    ### CHARINDEX函数详解 #### 一、函数简介 **CHARINDEX** 函数是数据库系统中常用的字符串处理函数之一,主要用于返回一个字符串(`expression2`)中另一个子字符串(`expression1`)的起始位置。如果在指定的字符...

    charindex instruction

    通过这些示例和解释,我们可以看出`CHARINDEX`函数是SQL中一个强大且实用的工具,对于处理和分析字符串数据具有很高的价值。了解其用法和特点,能够帮助我们编写更高效的SQL查询,更好地处理字符串数据。

    SQLserver中字符串查找功能patindex和charindex的区别

    在SQL Server中,`CHARINDEX`和`PATINDEX`都是用于查找字符串中特定模式的函数,它们都返回模式在字符串中首次出现的位置。然而,两者之间存在关键的区别。 `CHARINDEX`函数主要用于执行精确的字符串匹配,它不支持...

    SQL中Charindex和Oracle中对应的函数Instr对比

    在数据库查询语言SQL中,有时候我们需要在字符串中查找特定字符或子串的位置,这时就可以使用`Charindex`(在SQL Server中)和`Instr`(在Oracle中)这两个函数。它们都提供了查找子串在主字符串中出现位置的功能,...

    SQL内置函数说明

    在SQL中,内置函数是处理数据的关键工具,它们允许我们执行各种操作,如计算、...因此,对于任何在Oracle 9i环境中工作的数据库管理员或开发人员来说,深入理解这些内置函数和格式元素都是提升工作效率和技能的基础。

    Oracle sql 函数大全 比较常用的一些 函数 整理

    本文将对 Oracle SQL 函数大全进行分类和讲解,涵盖字符串函数、字符转换函数、去空格函数、取子串函数、字符串比较函数、字符串操作函数等多种函数。 一、字符转换函数 字符转换函数是将字符或字符串从一种形式...

    SQL Server CHARINDEX和PATINDEX详解

    CHARINDEX 和 PATINDEX 是两个非常实用且强大的函数,用于搜索字符串中的指定模式或子串,并返回该模式或子串在目标字符串中的位置。下面我们将详细探讨这两个函数的用法、特点以及它们之间的区别。 #### 一、...

    sql server和oracle中常用函数的比较

    本文将深入探讨SQL Server和Oracle中常用函数的比较,旨在帮助开发者更好地理解和选择适合自己需求的函数。以下是对给定内容中提及的SQL Server与Oracle函数的详细对比: ### 数学函数 1. **绝对值函数** - **SQL...

    sql-函数大全-常用函数整理.doc

    SQL Server 是一种强大的关系型数据库管理系统,由Microsoft公司开发,广泛应用于企业级的数据管理和商业智能(BI)解决方案。...在实际开发中,理解并灵活运用这些函数对于优化查询性能和编写高效的SQL代码至关重要。

    SQL2008表达式:是常量、变量、列或函数等运算符的任意组合

    在SQL Server 2008中,还有许多内置函数可以用于构建表达式,如ASCII函数、CHAR函数、CHARINDEX函数、DIFFERENCE函数、LEFT函数、RIGHT函数、LEN函数、LOWER函数、UPPER函数、LTRIM函数、RTRIM函数、PATINDEX函数、...

    SQL中代替Like语句的另一种写法

    "SQL中代替Like语句的另...在 SQL 中,使用 CHARINDEX 函数可以代替 LIKE 语句,提供了一种更加灵活和高效的字符串搜索方法。然而,在使用 CHARINDEX 函数时,需要注意性能问题,并且需要根据实际情况选择合适的方法。

    sql server 和oracle函数

    根据给定的信息,本文将对SQL Server与Oracle数据库系统中的函数进行详细对比分析,主要涉及数学函数、字符函数以及日期函数。以下是对这些知识点的具体展开: ### 数学函数 #### 绝对值 - **SQL Server**: 使用 `...

    sql server常用函数大全

    SQL Server 中常用的数学函数、字符串函数和其他函数,包括绝对值、取整、四舍五入、幂函数、对数函数、平方根函数、随机数函数、符号函数、数学常数函数、圆周率、反三角函数、三角函数、弧度角度互换函数、数值间...

    oracle和sql的常用函数的区别

    在数据库管理领域,Oracle 和 SQL Server 是两种广泛使用的数据库系统,它们都提供了丰富的函数来处理各种数据类型。...了解这些区别对于数据库管理员和开发人员来说至关重要,可以避免潜在的兼容性和性能问题。

    Sql Server参数化查询之where in和like实现详解

    Sql Server参数化查询之where in和like实现详解 在Sql Server中,参数化查询是提高查询性能和防止SQL注入攻击的有效...where in和like的参数化查询实现可以使用CHARINDEX函数、临时表、XML和DataTable等方法来实现。

    真正的SQL函数大全

    本文总结了一些常用的 SQL 函数,包括字符串处理函数、数学函数、日期函数和系统函数等。 一、字符串处理函数 字符串处理函数是 SQL 中最常用的函数之一,它们可以帮助我们对字符串进行各种操作,例如字符串转换、...

Global site tag (gtag.js) - Google Analytics