如何解决添加主约束会降低MS SQL Server 2016上的联接性能吗?
主要问题:向两个表中添加主键约束会导致查询时间从1分钟30分钟增加到40分钟。
我有两个带有int身份密钥的表:
Addresses
(
[ID] [int] NOT NULL,...
)
Routes
(
[ID] [int] NOT NULL,[OriginAddressID] [int] NOT NULL,[DestinationAddressID] [int] NOT NULL,...
)
我有一个视图,该视图在其ID上加入了地址和路由:
select *
from Routes
inner join Addresses Origin on Routes.OriginAddressID = Origin.ID
inner join Addresses Destination on Routes.DestinationAddressID = Destination.ID
当我从此联接视图中查询所有行时,执行需要1分30秒,并且从两个表中都删除了主键约束。
当我在列ID上添加主键时,执行时间最多跳40分钟。
两个表都包含400.000行。我对此进行了多次测试,结果始终相同。我不知道如何进行,因为40分钟的查询时间是无法接受的。据我所知,主键不会降低查询性能吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。