ms sql 大概100万条记录 全文检索 速度太慢 请老手指点

asp2001_1 2017-12-26 10:20:07
假设表tbla的结构如下
id int
title nvarchar(64)
body ntext

大概有100万条数据

对title进行检索 在title上定义全文检索 第一次完整填充 以后每天增量填充

然后用 select top 500 title,id from tbla where CONTAINS(title,'关键词1') and CONTAINS(title,'关键词2') order by id desc 来检索

如果结果比较多时 比如几千条符合要求 整个检索需要8秒以上 有点慢 如何改进呢?

...全文
391 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
asp2001_1 2019-12-25
  • 打赏
  • 举报
回复
换新服务器 解决了 填充速度几秒吧 原来是几小时
还有就是增加了时间戳 增量填充... 避免每次都全部填充



asp2001_1 2017-12-28
  • 打赏
  • 举报
回复
引用 5 楼 u014726793 的回复:
[quote=引用 3 楼 wmxcn2000 的回复:] 把 order by 去掉试试
去掉了order by 似乎reads减少到原来的1/3 而且输出结果 要按日期(id)显示 一般要加order by [/quote] 又确认一下 duration 减少了40% 效果还是比较明显
asp2001_1 2017-12-28
  • 打赏
  • 举报
回复
引用 3 楼 wmxcn2000 的回复:
把 order by 去掉试试
去掉了order by 似乎reads减少到原来的1/3 但duration变化不大 而且输出结果 要按日期(id)显示 一般要加order by
asp2001_1 2017-12-28
  • 打赏
  • 举报
回复
引用 2 楼 z10843087 的回复:
一次查询500条多少时间,为什么要一次查询5000条数据呢
是说有5000条符合要求 但只显示前500条
OwenZeng_DBA 2017-12-26
  • 打赏
  • 举报
回复
一次查询500条多少时间,为什么要一次查询5000条数据呢
asp2001_1 2017-12-26
  • 打赏
  • 举报
回复
在sql 时间探查器中看 cpu 188 reads 34491 duration 8300
卖水果的net 2017-12-26
  • 打赏
  • 举报
回复
把 order by 去掉试试
通过慢sql分析的学习,了解什么是慢sql,以及慢SQL会引起那些性能问题。清楚慢sql日志的设置,然后再通过慢sql分析工具的学习,清楚慢sql分析的步骤和流程。慢sql分析工具:mysqldumpslow工具、explain工具、profile工具、Optimizer Trace工具。 提供课程中所使用的sql语句。 课程内容:第一章:课程简介1、课程介绍2、课程大纲 第二章:慢sql简介1、慢sql简介2、慢sql会引起的问题 第三章:慢日志的设置1、慢sql的分析流程2、慢日志参数理解3、慢日志参数设置:第1种方式:my.ini文件设置4、慢日志参数设置:第2种方式:sql脚本设置5、慢日志参数设置-效果验证 第四章:如何发现慢sql1、如何发现慢sql:第1种方式:慢日志文件2、如何发现慢sql:第2种方式:mysql库的slow_log表 第五章:慢sql分析工具1、慢sql提取-mysqldumpslow工具-使用方法2、慢sql提取-mysqldumpslow工具-操作实战3、慢sql的执行计划分析-explain分析-执行计划结果说明4、慢sql的执行计划分析-explain分析-索引介绍+type类型举例5、慢sql的资源开销分析-profile分析-分析步骤6、慢sql的资源开销分析-profile分析-show profile执行阶段说明7、慢sql的资源开销分析-profile分析-完整列表说明+操作实战8、慢sql的跟踪分析-Optimizer Trace分析-分析步骤9、慢sql的跟踪分析-Optimizer Trace表的介绍10、索引失效场景举例 第六章:慢日志清理1、慢日志清理

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧