【发布时间】:2026-01-18 01:10:01
【问题描述】:
我得到了优化数据库的任务,因为这个数据库响应慢。 这可能吗,如果我有大约 90k 条记录,如果我想选择大约 27k 条记录,响应时间是 15s? 我的查询有什么问题吗?或者这是关于索引的?
SET NOCOUNT ON;
SELECT workID AS pageID,
projectName AS recProject,
workType AS recType,
workTitle AS recTitle,
workDescription,
workDate AS recDate,
startTime,
endTime,
RTRIM(LTRIM(firstName + ' ' + lastName)) AS recName
FROM dbo.vTimesheets WITH (NOLOCK)
WHERE isActiveProject = 1
AND workType = 1
AND timeFor = 2
ORDER BY recdate DESC, pageID DESC;
SET NOCOUNT OFF;
此视图查询
SELECT dbo.tblTimesheet.workID,
dbo.tblTimesheet.staffID,
dbo.tblTimesheet.workDate,
dbo.tblTimesheet.startTime,
dbo.tblTimesheet.endTime,
dbo.tblTimesheet.projectID,
dbo.tblTimesheet.timeFor,
dbo.tblTimesheet.workType,
dbo.tblTimesheet.workTitle,
dbo.tblTimesheet.workDescription,
dbo.tblProject.projectName,
dbo.tblProject.isDeleted AS isDeletedProject,
dbo.tblProject.isActive AS isActiveProject,
dbo.tblUser.firstName,
dbo.tblUser.lastName,
dbo.tblUser.isDeleted AS isDeletedStaff,
dbo.tblUser.staffType
FROM dbo.tblTimesheet WITH (NOLOCK)
INNER JOIN dbo.tblUser WITH (NOLOCK) ON dbo.tblTimesheet.staffID = dbo.tblUser.userID
INNER JOIN dbo.tblProject WITH (NOLOCK) ON dbo.tblTimesheet.projectID = dbo.tblProject.projectID
WHERE (dbo.tblTimesheet.isDeleted = 0)
【问题讨论】:
-
检查你的执行计划它使用的是什么类型的扫描?
-
发布您的执行计划以及您的问题
-
如果您不包含索引,我们如何知道您的索引是否正常?
-
对不起,我是 sql server 的新手
-
所以您正在查询一个视图,请也发布它的代码
标签: sql-server database optimization sql-server-2012