我有2个表,一个基地表与另一个链接表。使用全球唯一密钥优化联合过滤器
所有密钥在整个数据库中都是唯一的。每个表格都有一列Market
来告诉我们每行数据属于哪个市场。我只对特定市场的数据感兴趣(比如说X)
我有这个问题,如果我要加入2个表(我希望了解内连接和左连接(Base_Table LEFT JOIN Link_Table))在两个表上是否有市场过滤器X有助于提高性能?数据明智的,所有我需要的是有我的基地台市场的过滤器,以确保我得到的数据为市场X,但在的情况下,也有我的链接表滤波器影响性能:
- 内连接
- LEFT JOIN 示例查询:
/INNER JOIN/
SELECT --COLUMNS required--
FROM
<Base Table> bt
JOIN
<Link Table> lt
ON
bt.link_column - lt.ID
WHERE
bt.Market = X
AND
lt.Market = X
/LEFT JOIN/
SELECT --COLUMNS required>--
FROM
<Base Table> bt
LEFT JOIN
<Link Table> lt
ON
bt.link_column - lt.ID
AND lt.Market = X
WHERE
bt.Market = X
是否筛选子句lt.Market = X影响性能呢?
不幸的是,我们没有权限查看表上的索引。
编辑: 我刚刚与一位具有更高权限的同事进行了核对,我所采用的“表格”实际上是视图,而且他们似乎没有任何定义的索引。我们无法访问基础表。不过,我确实设法得到2个查询的执行计划,如下所示。希望他们帮助。
基本视图命名为“订单” ,链接视图名为“呼叫” 订单有呼叫ID,因此是指呼叫。这两种观点都有一列,以指示市场
随着这两个表的市场过滤器:在基表 Filter on both tables
市场筛选: Filter on base table
什么是过滤器?发布示例查询。 – Paparazzi
@Frisbee - 将它们添加到问题中。 –
为什么减去'bt.link_column - lt.ID'? – trincot