30万条数据,搜索文本字段的各种方式对比
2010-06-02 08:51
274 查看
网站速度是王道,如果在大量的数据面查加快查询速度。
/*
用户自定义函数:执行时间在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,会更快!
/*
用户自定义函数:执行时间在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,会更快!
相关文章推荐
- mssql 30万条数据 搜索文本字段的各种方式对比
- mysql数据库100万条数据插入采用jdbc的各种方式效率对比。
- 清除SQL Server数据缓存和执行计划缓存,查看执行计划的各种方式对比
- 清除SQL Server数据缓存和执行计划缓存,查看执行计划的各种方式对比
- ORACLE各种插入数据方式对比
- 各种临时表插入数据方式对比(包括自增列和GUID列)
- 清除SQL Server数据缓存和执行计划缓存,查看执行计划的各种方式对比
- 对Java中基本整数数据类型的各种操作及表示方式
- Dynamics CRM2016 查询数据的三种方式的性能对比
- 了解一下STM32数据类型及各种书写方式
- 各种流量采集方式的性能对比测试结果
- 提交数据的各种方式form,curl ,sockt,file_get_contents
- Android的各种数据存储方式_part1
- java中的各种数据类型在内存中存储的方式
- C#读取Excel数据两种方式性能对比
- 各种URL生成方式的性能对比
- 各种URL生成方式的性能对比(结论及分析)
- Opencv中Mat数据访问方式效率对比分析
- 数据泵和EXP导出方式的性能对比