2

当我将以下查询发送到我们的数据库时,它会在 < 2 秒内返回 4636 行:

select
    company3_.Un_ID as col_0_0_ 
from
    MNT_Equipments equip
inner join
    DynamicProperties dprops
        on equip.propertiesId=dprops.id
inner join
    DynamicPropertiesValue dvalues
        on dprops.id=dvalues.dynamicPropertiesId
inner join
    Companies company3_
        on dvalues.companyId=COMPANY.Un_ID
where
    equip.discriminator='9000'
    and equip.active=1
    and dvalues.propertyName='Eigentuemer' 

但是当我向 select 子句添加 distinct 时,返回剩余的 40 个条目需要将近 4.5 分钟。这似乎有点不成比例 - 我能做些什么来改进它,解决它或者至少找出这里到底发生了什么?

执行计划

没有区别

计划一

具有鲜明的

计划 2

非常感激您的帮忙!

4

1 回答 1

2

聚集索引扫描表明查询的表上没有好的索引。如果您创建以下索引,则执行时间应该会有所改善。

CREATE NONCLUSTERED INDEX [IX_MNT_Equipments_Active] ON [MNT_Equipments] 
(
    [propertiesId] ASC,
    [discriminator] ASC,
    [active] ASC
)
GO

CREATE NONCLUSTERED INDEX [IX_DynamicPropertiesValue_Name] ON [DynamicPropertiesValue] 
(
    [propertyName] ASC
)
GO
于 2012-04-10T13:00:37.517 回答