小编Tra*_*Jon的帖子

SQL Server 2008索引 - 查询的性能提升与INSERT/UPDATE的丢失

如何确定SELECT通过索引列获得的性能是否会超过INSERT同一个表中的性能损失?当指数弊大于利时,表的大小是否存在"临界点"?

我在SQL Server 2008中有表,在任何给定时间有2-3百万行.每次在表上完成插入操作时,也会使用其两个列在同一个表上进行查找.我正在尝试确定将索引添加到查找中使用的两列是否有益.

sql-server indexing performance sql-server-2008

7
推荐指数
1
解决办法
817
查看次数

为每个左连接行匹配重复所有基表行

我无法简洁地描述我需要什么,因此感谢任何编辑标题的帮助!

我有 3 张表:

  1. Jobs(有JobIDPK)
  2. JobsDetail(有JobIDFK和DepartmentsIDFK)
  3. 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)

sql left-join sql-server-2012

3
推荐指数
1
解决办法
3587
查看次数