TSQL联接性能

问题描述 投票:1回答:6

我的问题是此查询永远需要运行:

Select
  tableA.CUSTOMER_NAME,
  tableB.CUSTOMER_NUMBER,
  TableB.RuleID
FROM tableA
INNER JOIN tableB on tableA.CUST_PO_NUMBER like tableB.CustomerMask

这是表的结构:

CREATE TABLE [dbo].[TableA](
    [CUSTOMER_NAME] [varchar](100) NULL,
    [CUSTOMER_NUMBER] [varchar](50) NULL,
    [CUST_PO_NUMBER] [varchar](50) NOT NULL,
    [ORDER_NUMBER] [varchar](30) NOT NULL,
    [ORDER_TYPE] [varchar](30) NULL)

CREATE TABLE [dbo].[TableB](
    [RuleID] [varchar](50) NULL,
    [CustomerMask] [varchar](500) NULL)

TableA有1400万行,TableB有1000行。 customermask列中的数据可以是'%','ttt%','%ttt%'.. etc等>

如何调整使其更快?

谢谢!

我的问题是,此查询需要永远运行:选择tableA.CUST_PO_NUMBER上的tableA INNER JOIN tableB来选择tableA.CUSTOMER_NAME,tableB.CUSTOMER_NUMBER,TableB.RuleID。...>>

sql performance sql-server-2005 tsql
6个回答
1
投票

4
投票

0
投票

0
投票

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.