Tsql 由于左连接,速度较低

Tsql 由于左连接,速度较低,tsql,Tsql,有时我知道查询的性能问题是因为左连接,我能做什么?(建议替换子查询?) 假设我们有表A和表B,低速是因为左连接,您推荐的解决方案是什么? 感谢您的任何帮助 CREATE TABLE A ( a1 VARCHAR(10), a2 INT, a3 INT ) CREATE TABLE B ( b1 VARCHAR(10), b2 INT, ab3 INT )

有时我知道查询的性能问题是因为左连接,我能做什么?(建议替换子查询?)

假设我们有表A和表B,低速是因为左连接,您推荐的解决方案是什么? 感谢您的任何帮助

CREATE TABLE A ( a1 VARCHAR(10),
                 a2 INT,
                 a3 INT )

CREATE TABLE B ( b1  VARCHAR(10),
                 b2  INT,
                 ab3 INT )

INSERT INTO A
VALUES ( 'a1', 11, 91 ),
       ( 'a2', 12, 92 ),
       ( 'a3', 13, 93 ),
       ( 'a4', 14, 94 )

INSERT INTO B
VALUES ( 'b1', 21, 91 ),
       ( 'b2', 22, 92 ),
       ( 'b3', 23, 93 )

-------------------------
SELECT *
FROM      A
LEFT JOIN B ON a3 = ab3

根据我的经验,我建议你考虑以下事项 -删除不必要的左连接
-如果where子句可以与内部联接条件一起使用,则将其删除
-可以在列上创建索引
-选择所需的列,避免对所有列使用*

-避免为列指定较大的长度

是否在这些表/列上设置了索引?由于我检查索引在这种情况下无效,我希望每个表中都有一个主键列,以便为这些列设置聚集索引。然后你有没有尝试过在A(a3)和B(ab3)上添加非聚集索引@Stephan我相信聚集索引比非聚集索引更能提高速度性能。小更正:“Remove
WHERE
子句,如果它可以与内部连接条件一起使用”是的内部连接谢谢