答复: MDAM on index

2016-03-28 Thread Liu, Ming (Ming)
Thanks all,

I want to confirm if all conditions meet, index access can also use MDAM.
it is supported and that is great!

I believe in practice if all PK and Index still cannot cover the query pattern, 
it is time to check the design ☺

Thanks,
Ming
发件人: Qifan Chen [mailto:qifan.c...@esgyn.com]
发送时间: 2016年3月28日 23:27
收件人: user@trafodion.incubator.apache.org
抄送: Dave Birdsall 
主题: Re: MDAM on index

The scan optimizer picks the MDAM scan or subset scan based on the cost.  For 
MDAm to win, the  low UEC on the leading key columns is a pre-condition.

Thanks --Qifan

On Mon, Mar 28, 2016 at 10:23 AM, Rohit 
mailto:rohit.j...@esgyn.com>> wrote:
And remember, the key available for MDAM in a secondary index includes both the 
secondary index columns followed by the primary key columns, or  c3, c4, c1, c2 
in this case.  Same MDAM rules should apply to the secondary index as the 
clustering index since its a clustering index too.

Rohit


 Original message 
From: Dave Birdsall mailto:dave.birds...@esgyn.com>>
Date: 03/28/2016 10:12 AM (GMT-06:00)
To: 
user@trafodion.incubator.apache.org<mailto:user@trafodion.incubator.apache.org>
Subject: RE: MDAM on index
Hi,

In principle at least, MDAM should be possible with Query 2. Whether it is a 
good plan or not depends on many things: If the UEC of column c3 is high, then 
MDAM on the index on C4 may not be a good choice. If the query accesses other 
columns in the base table besides c3 and c4, then there is an extra join using 
index access which raises the cost. It still might be a good plan though. For 
example, if there is a highly selective predicate on c3 and c4, resulting in 
just a few accesses to the base table then it still may be good. Your mileage 
will vary.

Dave

From: Liu, Ming (Ming) [mailto:ming@esgyn.cn<mailto:ming@esgyn.cn>]
Sent: Monday, March 28, 2016 5:12 AM
To: 
user@trafodion.incubator.apache.org<mailto:user@trafodion.incubator.apache.org>
Subject: MDAM on index

Hi, all,

If we are creating a table t(c1,c2,c3,c4,,c5, primary key(c1,c2)) and then 
create an index indx on t(c3,c4).
Query 1: select * from t where c2 =10;
Query 2: select * from t where c4 = 10;
I think Query 1 will use MDAM, can Query 2 use MDAM to access indx as well?

Thanks,
Ming




--
Regards, --Qifan



Re: MDAM on index

2016-03-28 Thread Qifan Chen
The scan optimizer picks the MDAM scan or subset scan based on the *cost*.
For MDAm to win, the  low UEC on the leading key columns is a
pre-condition.

Thanks --Qifan

On Mon, Mar 28, 2016 at 10:23 AM, Rohit  wrote:

> And remember, the key available for MDAM in a secondary index includes
> both the secondary index columns followed by the primary key columns, or
>  c3, c4, c1, c2 in this case.  Same MDAM rules should apply to the
> secondary index as the clustering index since its a clustering index too.
>
> Rohit
>
>
>  Original message 
> From: Dave Birdsall 
> Date: 03/28/2016 10:12 AM (GMT-06:00)
> To: user@trafodion.incubator.apache.org
> Subject: RE: MDAM on index
>
> Hi,
>
>
>
> In principle at least, MDAM should be possible with Query 2. Whether it is
> a good plan or not depends on many things: If the UEC of column c3 is high,
> then MDAM on the index on C4 may not be a good choice. If the query
> accesses other columns in the base table besides c3 and c4, then there is
> an extra join using index access which raises the cost. It still might be a
> good plan though. For example, if there is a highly selective predicate on
> c3 and c4, resulting in just a few accesses to the base table then it still
> may be good. Your mileage will vary.
>
>
>
> Dave
>
>
>
> *From:* Liu, Ming (Ming) [mailto:ming@esgyn.cn]
> *Sent:* Monday, March 28, 2016 5:12 AM
> *To:* user@trafodion.incubator.apache.org
> *Subject:* MDAM on index
>
>
>
> Hi, all,
>
>
>
> If we are creating a table t(c1,c2,c3,c4,,c5, primary key(c1,c2)) and then
> create an index indx on t(c3,c4).
>
> Query 1: select * from t where c2 =10;
>
> Query 2: select * from t where c4 = 10;
>
> I think Query 1 will use MDAM, can Query 2 use MDAM to access indx as well?
>
>
>
> Thanks,
>
> Ming
>
>
>



-- 
Regards, --Qifan


RE: MDAM on index

2016-03-28 Thread Rohit


And remember, the key available for MDAM in a secondary index includes both the 
secondary index columns followed by the primary key columns, or  c3, c4, c1, c2 
in this case.  Same MDAM rules should apply to the secondary index as the 
clustering index since its a clustering index too. 
Rohit

 Original message 
From: Dave Birdsall  
Date: 03/28/2016  10:12 AM  (GMT-06:00) 
To: user@trafodion.incubator.apache.org 
Subject: RE: MDAM on index 

Hi, In principle at least, MDAM should be possible with Query 2. Whether it is 
a good plan or not depends on many things: If the UEC of column c3 is high, 
then MDAM on the index on C4 may not be a good choice. If the query accesses 
other columns in the base table besides c3 and c4, then there is an extra join 
using index access which raises the cost. It still might be a good plan though. 
For example, if there is a highly selective predicate on c3 and c4, resulting 
in just a few accesses to the base table then it still may be good. Your 
mileage will vary. Dave From: Liu, Ming (Ming) [mailto:ming@esgyn.cn] 
Sent: Monday, March 28, 2016 5:12 AM
To: user@trafodion.incubator.apache.org
Subject: MDAM on index Hi, all, If we are creating a table t(c1,c2,c3,c4,,c5, 
primary key(c1,c2)) and then create an index indx on t(c3,c4). Query 1: select 
* from t where c2 =10;  Query 2: select * from t where c4 = 10;I think Query 1 
will use MDAM, can Query 2 use MDAM to access indx as well? Thanks,Ming 

RE: MDAM on index

2016-03-28 Thread Dave Birdsall
Hi,



In principle at least, MDAM should be possible with Query 2. Whether it is
a good plan or not depends on many things: If the UEC of column c3 is high,
then MDAM on the index on C4 may not be a good choice. If the query
accesses other columns in the base table besides c3 and c4, then there is
an extra join using index access which raises the cost. It still might be a
good plan though. For example, if there is a highly selective predicate on
c3 and c4, resulting in just a few accesses to the base table then it still
may be good. Your mileage will vary.



Dave



*From:* Liu, Ming (Ming) [mailto:ming@esgyn.cn]
*Sent:* Monday, March 28, 2016 5:12 AM
*To:* user@trafodion.incubator.apache.org
*Subject:* MDAM on index



Hi, all,



If we are creating a table t(c1,c2,c3,c4,,c5, primary key(c1,c2)) and then
create an index indx on t(c3,c4).

Query 1: select * from t where c2 =10;

Query 2: select * from t where c4 = 10;

I think Query 1 will use MDAM, can Query 2 use MDAM to access indx as well?



Thanks,

Ming


MDAM on index

2016-03-28 Thread Liu, Ming (Ming)
Hi, all,

If we are creating a table t(c1,c2,c3,c4,,c5, primary key(c1,c2)) and then 
create an index indx on t(c3,c4).
Query 1: select * from t where c2 =10;
Query 2: select * from t where c4 = 10;
I think Query 1 will use MDAM, can Query 2 use MDAM to access indx as well?

Thanks,
Ming