trafodion-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anoop Sharma <anoop.sha...@esgyn.com>
Subject RE: [外部邮件] Re: How to get vsbb_scan plan?
Date Thu, 18 Oct 2018 04:38:06 GMT
you may also be able to get a vsbb scan with rowset operations
on a single table.
something like:
  select * from t where a = <rowsets>
This will internally be changed to a nested join with rowset of
key values being passed to the inner table being scanned.

So ultimately a nested join with multiple key preds is needed
to get vsbb scan, but it doesn't always have to be a join between
multiple tables.

anoop

-----Original Message-----
From: Liu, Yuan (Yuan) <yuan.liu@esgyn.cn> 
Sent: Wednesday, October 17, 2018 7:03 PM
To: dev@trafodion.apache.org
Subject: RE: [外部邮件] Re: How to get vsbb_scan plan?

Thanks Suresh.



Best regards

Yuan

-----Original Message-----
From: Suresh Subbiah <suresh.subbiah60@gmail.com> 
Sent: Wednesday, October 17, 2018 11:04 PM
To: dev@trafodion.apache.org
Subject: [外部邮件] Re: How to get vsbb_scan plan?

Hi Yuan,

 Yes, nested join on primary key is the only case I can think of too.
We need a full key match on the predicate, there also has to be multiple requests so that
the result contains more than one row, even with a full key predicate.
I think nested join on primary key is the only case.

Here is a quick example

create table tw (a int not null primary key);

>>control query shape nested_join(cut,cut) ;
--- SQL operation complete.
>>prepare s1 from select * from tw a, tw b where a.a = b.a ;
--- SQL command prepared.
>>explain options 'f' s1 ;

LC   RC   OP   OPERATOR              OPT       DESCRIPTION           CARD
---- ---- ---- --------------------  --------  --------------------
---------

3    .    4    root
1.50E+004
1    2    3    nested_join
 1.50E+004
.    .    2    trafodion_vsbb_scan             TW
1.00E+000
.    .    1    trafodion_scan                  TW
1.50E+004

--- SQL operation complete.

The method that determines what gets printed in explain is shown below.

Thank you
Suresh

const NAString HbaseAccess::getText() const { NAString op(CmpCommon::statementHeap()); NAString
tname(getTableName().getText(),CmpCommon::statementHeap());
NAString sampleOpt(CmpCommon::statementHeap());
if (isSampleScan())
sampleOpt = "sample_";
if (getIndexDesc() == NULL OR getIndexDesc()->isClusteringIndex())
{
if (isSeabaseTable())
{
if (uniqueRowsetHbaseOper())
(op += "trafodion_vsbb_") += sampleOpt += "scan "; else (op += "trafodion_") += sampleOpt
+= "scan "; } else (op += "hbase_") += sampleOpt += "scan "; } else { if (isSeabaseTable())
(op += "trafodion_index_") += sampleOpt += "scan "; else (op += "hbase_index_") += sampleOpt
+= "scan "; tname = getIndexDesc()->getIndexName().getQualifiedNameAsString() + "(" + tname
+ ")"; } if (getReverseScan()) op += NAString("rev "); return op + tname; }

On Sat, Oct 13, 2018 at 11:23 AM Liu, Yuan (Yuan) <yuan.liu@esgyn.cn> wrote:

> Hi trafodioneers,
>
>
>
> For scan operator, we have trafodion scan, index scan and vsbbscan.
>
> In which scenarios can we get a vsbb scan? Nested join on primary key?
>
>
>
> Best regards
>
>
>
> 刘源(Yuan)
>
> *上海易鲸捷信息技术有限公司* <http://www.esgyn.cn/>
>
> 地址:上海市浦东新区金科路2889号长泰广场A座603
>
> 手机:13671935540
>
> 邮箱:yuan.liu@esgyn.cn
>
> [image: 易鲸捷logo中文 - 副本]
>
>
>
Mime
View raw message