数据库:
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,会更快!

更多相关文章

  1. Android(安卓)初识Retrofit
  2. 一个Demo让你掌握所有的android控件
  3. Android漂亮的Help提示框
  4. Android(安卓)TextToSpeech语音播放文本
  5. Android(安卓)加载富文本
  6. android图片上传springMvc
  7. android 之simpleAdapter详解
  8. android 编程技巧汇总
  9. android 组件,xml布局中属性详解

随机推荐

  1. Android横屏预竖屏
  2. 移动端H5的Video标签无法播放在线视频的
  3. 使用Android Studio调试smail源码
  4. Android:Error retrieving parent for it
  5. Android下拉列表
  6. android状态栏一体化(沉浸式状态栏)
  7. Android监听Home、电源键
  8. Caused by: java.lang.IllegalStateExcep
  9. android模拟器设置代理上网
  10. 【Android(安卓)framework】AndroidManag