Sql server 需要帮助使用数据函数优化SQL select查询吗
我实现了一个SQL查询,如下所述Sql server 需要帮助使用数据函数优化SQL select查询吗,sql-server,Sql Server,我实现了一个SQL查询,如下所述 SELECT OLT.status, OLT.queuedate, ( CONVERT(VARCHAR(10), OLT.queuedate, 101) + ' ' + Stuff(RIGHT(CONVERT(VARCHAR(30), OLT.queuedate, 109), 14), 9, 4, ' ') ) FROM onlineresults OLT WITH(nolock)
SELECT OLT.status,
OLT.queuedate,
( CONVERT(VARCHAR(10), OLT.queuedate, 101)
+ ' '
+ Stuff(RIGHT(CONVERT(VARCHAR(30), OLT.queuedate, 109), 14), 9, 4, ' ')
)
FROM onlineresults OLT WITH(nolock)
LEFT JOIN roadmap CR WITH(nolock)
ON OLT.roadmapid = CR.content_roadmap_id
OnlineResults只有143000条记录,但完成上述查询需要将近5分钟
我们是否有其他方法通过创建索引来加快查询速度
Onlineresults表的架构
OnlineID (Primary Key)
RoadmapId
StudentId
SectionId
Status
Retries
QueueDate
路线图表中有许多字段,内容_roadmap _id是主键是索引将影响结果 你可以这样做 1.检查两列是否有主键或索引,如果没有,则在其上创建。始终使用pk值筛选数据。当您的查询占用太多数据时,还应尽可能多地过滤数据
ALTER TABLE MyTable
Add Column queuedateCalculated As (CONVERT(VARCHAR(10), OLT.QueueDate , 101)
Then create an index on this.
CREATE INDEX queuedateCalculatedIdx ON MyTable.queuedateCalculated
参考链接
请检查这两种情况的执行计划。这里有一篇很好的文章,可以理解带有索引的计划
也可以创建索引视图
Bhuvan,您可以使用EXPLAIN分析并粘贴结果。还请包括表格定义(如果可能,或至少包括相关字段)@Vlad,我通过添加表的架构更新了我的问题。.解释分析是什么意思?它是SQL Server中的查询执行计划吗?在SQL Server中,您可以使用数据库引擎优化顾问来识别缺少的索引。您为什么要使用
路线图
?adrianm,因为我需要显示路线图ta中的路线图日期B我们是否可以创建索引视图?来解决此问题