mssql 30万条数据 搜索文本字段的各种方式对比

 更新时间:2010年04月28日 10:55:16   作者:  
30万条,有ID列但无主键,在要搜索的“分类”字段上建有非聚集索引
数据库:
30万条,有ID列但无主键,在要搜索的“分类”字段上建有非聚集索引
过程T-SQL:
复制代码 代码如下:

/*
用户自定义函数:执行时间在1150-1200毫秒左右
CREATE FUNCTION [dbo].[gethl] (@types nvarchar(4))
RETURNS table AS
return select 书名 from 图书三十万条 Where 分类 Like '%'+@types+'%'
存储过程:
CREATE PROCEDURE [dbo].[getfl](@typen nvarchar(4))
AS
select 书名 from 图书三十万条 Where 分类 Like '%'+@typen+'%'
*/


复制代码 代码如下:

declare @a datetime,@b nvarchar(4)
set @a=getDate()
select 书名 from 图书三十万条 Where 分类 Like '%医学%' --“分类”列有非聚集索引,比聚集索引1150快一点,差不多执行时间在1100左右
-- select 书名 from gethl('医学') --使用用户自定义函数,效率和建立聚集索引一样,还稍慢一点 在1150-1200
-- Execute getfl '医学' --调用存储过程不能用括号包含参数 Execute getfl('医学')
-- select 书名 from VIEW1 --视图
print '运行时间:
print datediff(ms,@a,getDate())


结论:
1、以上各种使用直接查询、函数、视图、存储过程性能都差不多;
2、在这种文本字段,非聚集比聚集索引效果好。
比这些更好的方法是,在另外一个表上建立相应的检索ID,会更快!

相关文章

  • SQL Server"错误 21002: [SQL-DMO]用户 * 已经存在问题解决

    SQL Server"错误 21002: [SQL-DMO]用户 * 已经存在问题解决

    在分配数据库登录用户的数据库访问权限的时候出现这种错误,如果选中某一个数据库的任何一个角色就会出现这个错误
    2009-04-04
  • Spark SQL的整体实现逻辑解析

    Spark SQL的整体实现逻辑解析

    使用sparkSQL是为了解决一般用sql不能解决的复杂逻辑,使用编程语言的优势来解决问题,今天通过本文给大家分享Spark SQL的整体实现逻辑,需要的朋友参考下吧
    2021-07-07
  • sql多条件多字段排序(图文教程)

    sql多条件多字段排序(图文教程)

    sql多条件多字段排序是日常应用中比不可少的,本人搜集整理了一些,以供不时之需,需要了解的朋友可以参考下
    2012-12-12
  • sqlserver数据库中的表、字段sql语句

    sqlserver数据库中的表、字段sql语句

    在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都对应一行。
    2010-06-06
  • SQL LOADER错误小结

    SQL LOADER错误小结

    在使用SQL*LOADER装载数据时,由于平面文件的多样化和数据格式问题总会遇到形形色色的一些小问题,下面是小编抽时间整理的一些错误,感兴趣的朋友一起学习吧
    2015-12-12
  • 判断一个表的数据不在另一个表中最优秀方法

    判断一个表的数据不在另一个表中最优秀方法

    判断一个表的数据不在另一个表中最优秀方法
    2009-11-11
  • SQL Transcation的一些总结分享

    SQL Transcation的一些总结分享

    相信大家对于SQL Transcation再熟悉不过,它确保了数据库的数据一致性和安全性,尤其在对数据执行增删时,如果发生异常和错误它就会触发事务回滚,从而确保了我们数据的一致性和安全性,下面我们将通过分四部分介绍事件(Transcation)
    2012-08-08
  • mysql如何优化插入记录速度

    mysql如何优化插入记录速度

    插入记录时,影响插入速度的主要是索引、唯一性校验、一次插入记录条数等。根据这些情况,可以分别进行优化,本节将介绍优化插入记录速度的几种方法。下面跟着小编一起来看下吧
    2017-03-03
  • SQLServer性能优化--间接实现函数索引或者Hash索引

    SQLServer性能优化--间接实现函数索引或者Hash索引

    本文主要介绍了SQLServer性能优化--间接实现函数索引或者Hash索引的解决方式。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 为什么我们需要在SQL Server里更新锁

    为什么我们需要在SQL Server里更新锁

    这篇文章告诉我们为什么我们需要在SQL Server里更新锁,需要的朋友可以参考下
    2015-07-07

最新评论