问题描述
exec sp_executesql N'select top 201 N0."id" from "dbo"."tab1" N0
where ((N0."dateTime1" >= @p0) and (N0."dataTime1" <= @p1) and ((N0."varchar1" <> @p2) or N0."varchar1" is null))
order by N0."id" asc',N'@p0 datetime,@p1 datetime,@p2 nvarchar(4000)',@p0='2020-10-01 00:00:00',@p1='2020-10-31 23:59:59',@p2=N'ZZ'
我确实尝试了许多不同的 indexex,但服务器没有在其执行计划中使用它。
CREATE NONCLUSTERED INDEX [index1] ON [dbo].[tab1]
(
[dateTime1] ASC,[varchar1] ASC
)
WITH (PAD_INDEX = OFF,STATISTICS_norECOmpuTE = OFF,SORT_IN_TEMPDB = OFF,DROP_EXISTING = OFF,ONLINE = OFF,ALLOW_ROW_LOCKS = ON,ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
当我手动将 WITH(INDEX(index1))
添加到查询时,它就像一个魅力,但我无法访问生成该查询的应用程序,只能访问数据库
当我删除 order by N0."id" asc
时,查询使用索引成功,但正如我所说,我无法修改查询。
我将不胜感激! :)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)