Sql IN子句导致查询运行缓慢
为了获得更好的性能,我将变量存储在全局表中,然后在子查询中使用它,但事实恰恰相反——性能非常慢。如果删除in子句,查询性能会更快。在下面的第条中,我是否可以使用其他不同的方法来优化性能,或者为提高性能提供建议。谢谢你的帮助Sql IN子句导致查询运行缓慢,sql,oracle,Sql,Oracle,为了获得更好的性能,我将变量存储在全局表中,然后在子查询中使用它,但事实恰恰相反——性能非常慢。如果删除in子句,查询性能会更快。在下面的第条中,我是否可以使用其他不同的方法来优化性能,或者为提高性能提供建议。谢谢你的帮助 插入到GlobalTempTable中( BranchID;//在gtt中插入BranchID,这不是必需的,可以为null ); 选择Orders.OrderID、Customers.CustomerName、Orders.OrderDate、Employee.EmpNa
插入到GlobalTempTable中(
BranchID;//在gtt中插入BranchID,这不是必需的,可以为null
);
选择Orders.OrderID、Customers.CustomerName、Orders.OrderDate、Employee.EmpName
从命令
根据订单加入客户。CustomerID=Customers.CustomerID;
在Customers.SalesID=Employee.EmpID上加入Employee;
如果Orders.OrDate存在,请尝试替换为:
EXISTS ( SELECT 1 FROM GlobalTempTable gtt Employee.BranchID = gtt.BranchID )
请确保您在GlobalTempTable(BranchID)
上有索引。请运行解释计划并发布结果。我们对这些表、行、索引等一无所知。GTT表中没有索引,它只包含一列。我也在做你暗示的事,但它一直在说,错过了正确的偏执,但在我看来一切都很好。您建议的子查询中是否缺少Where子句我认为应该是存在(选择…
@Gordon LInoff谢谢您的帮助,现在性能很快。