Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion Groups
Database Servers
DB2InformixIngresMS SQLOraclePervasive.SQLPostgreSQLProgressSybase
Desktop Databases
FileMakerFoxProMS AccessParadox
General
General DB TopicsDatabase Theory
Related Topics
Java Development.NET DevelopmentVB DevelopmentMore Topics ...

Database Forum / DB2 Topics / February 2006

Tip: Looking for answers? Try searching our database.

Tablescan - why?

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
bughunter@ru - 17 Feb 2006 09:43 GMT
I have a problem with simple query like this (PK - Primary key)

select  t1.*, t2.col1, t3.col2
from
    T1
    inner join T2 on T2.PK = T1.col1
    inner join T3 on T3.PK = T2.col1

T1 is very small table ~20-30 rows, T2 and T3 large. In query plan and
monitor output  I see table scan on T3. Why?

Index T2_PK has included column col1.

Access Plan:
-----------
    Total Cost:         43603.2
    Query Degree:        1

              Rows
             RETURN
             (   1)
              Cost
               I/O
               |
              3092
             HSJOIN
             (   2)
             43602.9
              10783
         /------+------\
    227641              3092
    TBSCAN             NLJOIN
    (   3)             (   4)
    40666.2            2926.35
     10361             422.045
      |                         /---+---\
    227641        3092           1
TABLE: S   TBSCAN       IXSCAN
    T3       (   5)       (   8)
                 406.107      50.016
                   100           2
                   |            |
                  3092         64931
                 SORT     INDEX: S
                 (   6)     T2_PK
                 406.107
                   100
                   |
                  3092
                 TBSCAN
                 (   7)
                 404.727
                   100
                   |
                  3092
             TABLE: S
              T1

Andy

P.S. UDB 8.2 FP10 win32
Hardy - 17 Feb 2006 10:39 GMT
hey, do you have any index on T3? if not how can they be used?
bughunter@ru - 17 Feb 2006 12:14 GMT
watch closely! PK - primary key - always have a unique index. I'm try
also create index like (PK) include (col2) because this column used in
select - without success.

Andy
Serge Rielau - 17 Feb 2006 13:04 GMT
> watch closely! PK - primary key - always have a unique index. I'm try
> also create index like (PK) include (col2) because this column used in
> select - without success.
>
> Andy

This does look odd.
Making T1 the outer and probing T2 and T3 using the PKs is obviously the
better plan.

Cheers
Serge
Signature

Serge Rielau
DB2 Solutions Development
IBM Toronto Lab

Tonkuma - 17 Feb 2006 14:27 GMT
What are column attributes?
Would you show us your DDLs?
bughunter@ru - 20 Feb 2006 14:04 GMT
DDL is simple like

T1
(DEALID      INTEGER         NOT NULL,          -- PK
 APPLID      INTEGER         NOT NULL,          -- T1.Col1
.... -- ~10 short columns like date, dec, int)

T2 (
 APPLID      INTEGER         NOT NULL,          -- PK
 STOCKID     CHARACTER(4)    NOT NULL,    -- T2.Col1
.... -- ~20 short columns like timestamp, dec, int, char)

T3 (
 STOCKID     CHARACTER(4)    NOT NULL,    -- PK
 CRDDATE    DATE     NOT NULL,          -- T3.Col1
.... -- ~20 short columns like timestamp, dec, int, char)
Knut Stolze - 20 Feb 2006 17:25 GMT
> DDL is simple like
>
[quoted text clipped - 12 lines]
>   CRDDATE    DATE     NOT NULL,          -- T3.Col1
> .... -- ~20 short columns like timestamp, dec, int, char)

What's the data you have in there and what's your query?

Signature

Knut Stolze
DB2 Information Integration Development
IBM Germany

miro - 20 Feb 2006 18:21 GMT
According to your explain output below DB2 seems to believe that there
are 3092 rows in table T1. You seem to think T1 is much smaller. Have
you ran runstats recently? If the size of T1 in the plan explain below
is correct, and if the index on T3_PK is not a clustering one, then it
might actually be cheaper to do the join like shown below (build the
hash table based on the result of T1 join T2, the probe it with rows
from T3).

Regards,
Miro

> I have a problem with simple query like this (PK - Primary key)
>
[quoted text clipped - 57 lines]
>
> P.S. UDB 8.2 FP10 win32
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.