小编Dev*_*per的帖子

非主键上的 FK

如果我有一个外键指向另一个不是 PK 的表索引字段,是否有任何性能问题/差异?

就像是

DECLARE @T1 TABLE 
(   
    T1_ID INT IDENTITY PRIMARY KEY,    
    T1_SOMEID INT NOT NULL,    
    OfficeID VARCHAR(3) NOT NULL,   
    Data VARCHAR(200) NOT NULL 
);

DECLARE @T2 TABLE 
(   
    T2_ID INT IDENTITY PRIMARY KEY,    
    T1_SOMEID_FK INT NOT NULL,    
    OfficeID VARCHAR(3) NOT NULL,   
    OtherData VARCHAR(100) NOT NULL 
);
Run Code Online (Sandbox Code Playgroud)

问题:
当我运行如下所示的查询时,性能是否会下降:

SELECT t1.T1_ID, t1.Data, t2.T2_ID, t2.OtherData 
FROM @T1 t1 
    INNER JOIN @T2 
       ON t1.T1_SOMEID = t2.T1_SOMEID_FK 
          AND t1.OfficeID = t2.OfficeID
Run Code Online (Sandbox Code Playgroud)

sql-server

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

标签 统计

sql-server ×1