如何确定SELECT通过索引列获得的性能是否会超过INSERT同一个表中的性能损失?当指数弊大于利时,表的大小是否存在"临界点"?
我在SQL Server 2008中有表,在任何给定时间有2-3百万行.每次在表上完成插入操作时,也会使用其两个列在同一个表上进行查找.我正在尝试确定将索引添加到查找中使用的两列是否有益.
我无法简洁地描述我需要什么,因此感谢任何编辑标题的帮助!
我有 3 张表:
Jobs(有JobIDPK)JobsDetail(有JobIDFK和DepartmentsIDFK)Departments(有DepartmentsIDPK)Departments记录数量较少 (~10)
如果我有 10 个部门行,我需要为每条记录重复所有 10 行Jobs。不在JobsDetail作业记录中的 DepartmentID 将NULL在作业列中显示一个值。通过一条Jobs记录,典型的LEFT JOIN工作方式将按照我想要的方式进行:
Select d.Department, jobs.JobIdentifier
From Departments d
LEFT JOIN (Select Distinct j.JobID, j.JobIdentifier, DepartmentID,
From Jobs j
Join JobsDetail jd on j.JobID = jd.JobID) jobs on d.DepartmentID = jobs.DepartmentID
Run Code Online (Sandbox Code Playgroud)
产生以下结果:
Department JobIdentifier
310 NULL
320 NULL
430 NULL
450 NULL
460 NULL …Run Code Online (Sandbox Code Playgroud)