0

我有两个表dbo.Jobs(JobID(Primary Key), Name, Status(Foreign key))dbo.JobStatusMaster(StatusID(Primary key), StatusName) dbo.Jobs 有一个字段状态,它是引用 dbo.JobStatusMaster 的外键。现在我有一个 JobID 和 StatusName,我想知道给定的 jobId 是否处于给定状态。我做了如下查询:

IF EXISTS (SELECT 1 
FROM dbo.Jobs 
INNER JOIN dbo.JobStatusMaster
ON dbo.Jobs.JobStatusID=dbo.JobStatusMaster.ID
WHERE dbo.Jobs.ID=@JobID
AND dbo.JobStatusMaster.Status='draft')
BEGIN
            --Do something
END

鉴于 dbo.Jobs 表可以有大量记录,是否可以进一步优化上述查询。我正在使用 SQL Server 2012。

提前致谢。

4

1 回答 1

0

我建议 JobStatusID 需要一个索引。外键几乎总是应该被索引并且它们不会被自动索引。

于 2013-05-22T14:52:25.983 回答