sql-server - 使用 row_number 时全文索引查询变慢?
问题描述
table1
有很大的行并且是field1
文本,所以我创建了一个全文索引field1
。
我运行下面的sql,速度很慢,CPU一直到100%。
select * from (
select *, ROW_NUMBER() OVER(Order by [createtime] DESC) AS RowId
from table1
where CONTAINS(field1, 'sometext')
) AS t1
where t1.RowId between 1 and 10
我删除RowId
查询,它变得很快,不到 1 秒。
select * from (
select *, ROW_NUMBER() OVER(Order by [createtime] DESC) AS RowId
from table1
where CONTAINS(field1, 'sometext')
) AS t1
然后我认为这是关于 SQLServer 优化,我尝试添加zero
到RowId
查询字段。
它走得很快!但为什么?
select * from (
select *, ROW_NUMBER() OVER(Order by [createtime] DESC) AS RowId
from table1
where CONTAINS(field1, 'sometext')
) AS t1
where t1.RowId + 0 between 1 and 10
解决方案
推荐阅读
- java - 将值日期设置为 Jspinner 作为时间格式
- javascript - 每次触发A帧点击事件如何触发相关动画?
- node.js - Mongo 查询预订之间
- php - Razorpay OrderId 未使用 curl Php 获取 paymentId
- string - 如何转换 [i8; 88]到一些粘稠的东西
- python-3.x - 聚类中的网格搜索
- python - 如何在 Selenium Python 中使用 WebDriverWait 修复此语法错误
- javascript - 在我现有的 html 列表中使用 javascript 添加删除按钮
- python - mysql 编码以允许表情符号
- react-native - npm VS yarn 反应原生