2 problem with BITMAP JOIN INDEX and access plan

On my schema ("LSA") I have 3 tables:
AAB_VENDUTO (~4.200.000 record)
AAB_ARTICOLO (~8.200 record)
AAB_CLIENTE (~15.000 record)
AAB_ARTICOLO.MARCA has 1079 distinct values
AAB_CLIENTE.TITOLO_STUDIO has 22 distinct values
I create 2 different bitmap join index:
CREATE BITMAP INDEX lsa.AAB_V_ARTICOLO_MARCA_IDX ON LSA.AAB_VENDUTO(MARCA)
FROM LSA.AAB_VENDUTO vv, LSA.AAB_ARTICOLO aa WHERE vv.articolo_id=aa.articolo_id;
CREATE BITMAP INDEX lsa.AAB_V_CLIENTE_TIT_STUDIO_IDX ON LSA.AAB_VENDUTO(TITOLO_STUDIO)
FROM LSA.AAB_VENDUTO vv, LSA.AAB_CLIENTE cc WHERE vv.cliente_id=cc.cliente_id;(star_trasformation_enabled is TRUE)
I run (on SQL Developer 1.5.5) these similar queries:
SELECT DISTINCT VV.cliente_id FROM LSA.AAB_VENDUTO VV JOIN LSA.AAB_ARTICOLO AA on VV.articolo_id=AA.articolo_id
WHERE (MARCA='ALGIDA' OR MARCA='SAMMONTANTA');
SELECT DISTINCT VV.cliente_id FROM LSA.AAB_VENDUTO VV JOIN LSA.AAB_CLIENTE CC  on VV.cliente_id=CC.cliente_id  
WHERE (titolo_studio='LAUREA BREVE' OR titolo_studio='MAGISTRALE');The first one use correctly the bitmap join index, this is the access plan:
!http://bitlgs.altervista.org/_altervista_ht/marca.png!
but the second query...
!http://bitlgs.altervista.org/_altervista_ht/titolo_studio.png!
why the second query doesn't use the bitmap index?
problem #2:
I create another bitmap index:
CREATE BITMAP INDEX LSA.AAB_V_CLIENTE_SESSO_IDX ON LSA.AAB_VENDUTO(SESSO)
FROM LSA.AAB_VENDUTO vv, LSA.AAB_CLIENTE cc WHERE vv.cliente_id=cc.cliente_id;and I run this query:
SELECT VV.cliente_id, COUNT(*) FROM LSA.AAB_VENDUTO VV JOIN LSA.AAB_CLIENTE CC on VV.cliente_id=CC.cliente_id
WHERE sesso='Donna' and (titolo_studio='LAUREA BREVE' or titolo_studio='MAGISTRALE') GROUP BY VV.cliente_id;this is the access plan:
!http://bitlgs.altervista.org/_altervista_ht/terzo.png!
In my opinion, the part that I have marked as 'A' is superfluous...
why it make a join with AAB_CLIENTE table? Why it filter again the titolo_studio and sesso field?
Edited by: Nirpol on 4-set-2009 13.25

Nirpol wrote:
I create 2 different bitmap join index:
CREATE BITMAP INDEX lsa.AAB_V_ARTICOLO_MARCA_IDX ON LSA.AAB_VENDUTO(MARCA)
FROM LSA.AAB_VENDUTO vv, LSA.AAB_ARTICOLO aa WHERE vv.articolo_id=aa.articolo_id;
CREATE BITMAP INDEX lsa.AAB_V_CLIENTE_TIT_STUDIO_IDX ON LSA.AAB_VENDUTO(TITOLO_STUDIO)
FROM LSA.AAB_VENDUTO vv, LSA.AAB_CLIENTE cc WHERE vv.cliente_id=cc.cliente_id;
What happens if you just create two plain bitmap indexes without the join?
CREATE BITMAP INDEX lsa.AAB_V_ARTICOLO_MARCA_IDX ON LSA.AAB_VENDUTO(MARCA);
CREATE BITMAP INDEX lsa.AAB_V_CLIENTE_TIT_STUDIO_IDX ON LSA.AAB_VENDUTO(TITOLO_STUDIO) ;You can also go with normal indexes on the FK rows (cliente_id) and the optimizer can do a bitmap conversion from normal index to bitmap index if needed. Are the column values evenly distributed? If not you might need to go for some column histogram. but I don't have the impression that this is really useful in your case.

Similar Messages

  • Problem with bitmap partitioned index

    My order table (3.6 M rows) has got 4 partitions (one per year). I've defined 24 LOCAL BITMAP INDEXES on the data (DSS environment); every index is built on one column.
    The cardinality of these columns is quite various (from 10% to 80%) - I know in some case the use of bitmap index is not OK -.
    The table is manipulated in this way:
    - Nightly it has about 5K new rows inserted.
    - All of this rows have update after insertion (only some of this update are referred to indexed column).
    - Early in the morning the partition table referred to actual data, is analyzed with COMPUTE STATISTICS option.
    - During the day the data are queried thousand times.
    The problem is:
    1. Before table/index partitioning all the indexes of the table were BITMAP too, and their size were acceptable; these size did not grow up to much during the time. We use to rebuild index once at 2-3 months.
    2. After table/index partitioning some of the bitmap indexes related to the partition that contain actual data, get poor in few days. Their size grow up very quickly (about 16mb at day) and they can allocate 100 times more space than before partitioning. So, I must rebuild these indexes / partitions once at 2-3 days. I have checked the distinct values of poor indexes column, and there is not correlation between cardinality and growth (I mean, this problem happens on index with low cardinality as well as high cardinality).
    3. I have the same order table in another schema with the same indexes and similar number of rows (1.7 M). Any of these indexes have strange growth. (I.E.: size of index on AGENT column is normally 2Mb; the poor index is about 200Mb after 4 work days).
    We work with 8.1.7.2 on Windows 2000.
    Does anyone have any idea about my problem?
    Thanks in advance L.

    Nirpol wrote:
    I create 2 different bitmap join index:
    CREATE BITMAP INDEX lsa.AAB_V_ARTICOLO_MARCA_IDX ON LSA.AAB_VENDUTO(MARCA)
    FROM LSA.AAB_VENDUTO vv, LSA.AAB_ARTICOLO aa WHERE vv.articolo_id=aa.articolo_id;
    CREATE BITMAP INDEX lsa.AAB_V_CLIENTE_TIT_STUDIO_IDX ON LSA.AAB_VENDUTO(TITOLO_STUDIO)
    FROM LSA.AAB_VENDUTO vv, LSA.AAB_CLIENTE cc WHERE vv.cliente_id=cc.cliente_id;
    What happens if you just create two plain bitmap indexes without the join?
    CREATE BITMAP INDEX lsa.AAB_V_ARTICOLO_MARCA_IDX ON LSA.AAB_VENDUTO(MARCA);
    CREATE BITMAP INDEX lsa.AAB_V_CLIENTE_TIT_STUDIO_IDX ON LSA.AAB_VENDUTO(TITOLO_STUDIO) ;You can also go with normal indexes on the FK rows (cliente_id) and the optimizer can do a bitmap conversion from normal index to bitmap index if needed. Are the column values evenly distributed? If not you might need to go for some column histogram. but I don't have the impression that this is really useful in your case.

  • Bitmap Join Indexes Still Causing Problems

    Hello again,
    I thought I had fixed this problem in a previous post, but it turns out I was incorrect. Once again, there is an issue with bitmap join indexes in Oracle 10g EE. I'm getting an empty result when I shouldn't be. Below I've pasted the output of a SQL session to illustrate the point, but here's a summary of what's in the trace:
    I run a query and get an empty result. Then I drop a bitmap join index and re-run the query and get a result. Then I recreate the bitmap join index and run the same query again, but get an empty result. Then I show the explain plan for the query.
    This is clearly wrong behavior, so I'm wondering if there are any restrictions, perhaps not well documented, on when it's ok to use bitmap join indexes. For example, what's the maximum length allowed on a varchar field that the bitmap index is on? Is there some cardinality threshold? I'm aware that bitmap indexes are intended for columns with low cardinality, but even if that's not the case, it shouldn't affect the correctness of the result, only the computation time. Does anyone have an idea of what exactly is going wrong here? Do I have any chance of fixing it?
    Trace follows:
    SQL*Plus: Release 10.2.0.3.0 - Production on Tue May 5 02:07:50 2009
    Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
    With the Partitioning, OLAP and Data Mining options
    SQL> SELECT 
      2     o1.lex as label,
      3     o2.lex as "comment",
      4     o4.lex as producer
      5  FROM
      6     bmTriples250K t1, bmsNodes250K s1, bmpNodes250K p1, bmoNodes250K o1,
      7     bmTriples250K t2, bmpNodes250K p2, bmoNodes250K o2,
      8     bmTriples250K t3, bmpNodes250K p3,
      9     bmTriples250K t4, bmpNodes250K p4, bmoNodes250K o4
    10  WHERE
    11     t1.s = s1.hash
    12     and t1.p = p1.hash
    13     and t1.o = o1.hash
    14     and s1.lex = 'http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromProducer9/Product399'
    15     and p1.lex = 'http://www.w3.org/2000/01/rdf-schema#label'
    16     and t1.s = t2.s 
    17     and t2.p = p2.hash
    18     and t2.o = o2.hash
    19     and p2.lex = 'http://www.w3.org/2000/01/rdf-schema#comment'
    20     and t1.s = t3.s
    21     and t3.p = p3.hash
    22     and p3.lex = 'http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/producer'
    23     and t3.o = t4.s
    24     and t4.p = p4.hash
    25     and t4.o = o4.hash
    26     and p4.lex = 'http://www.w3.org/2000/01/rdf-schema#label';
    no rows selected
    SQL>
    SQL> DROP INDEX BMSJOINNODES250K;
    Index dropped.
    SQL> SELECT 
      2     o1.lex as label,
      3     o2.lex as "comment",
      4     o4.lex as producer
      5  FROM
      6     bmTriples250K t1, bmsNodes250K s1, bmpNodes250K p1, bmoNodes250K o1,
      7     bmTriples250K t2, bmpNodes250K p2, bmoNodes250K o2,
      8     bmTriples250K t3, bmpNodes250K p3,
      9     bmTriples250K t4, bmpNodes250K p4, bmoNodes250K o4
    10  WHERE
    11     t1.s = s1.hash
    12     and t1.p = p1.hash
    13     and t1.o = o1.hash
    14     and s1.lex = 'http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromProducer9/Product399'
    15     and p1.lex = 'http://www.w3.org/2000/01/rdf-schema#label'
    16     and t1.s = t2.s 
    17     and t2.p = p2.hash
    18     and t2.o = o2.hash
    19     and p2.lex = 'http://www.w3.org/2000/01/rdf-schema#comment'
    20     and t1.s = t3.s
    21     and t3.p = p3.hash
    22     and p3.lex = 'http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/producer'
    23     and t3.o = t4.s
    24     and t4.p = p4.hash
    25     and t4.o = o4.hash
    26     and p4.lex = 'http://www.w3.org/2000/01/rdf-schema#label';
    LABEL
    comment
    PRODUCER
    surcharged rekindles wireworm
    shimmery colures stockpiles pipetted globes majuscule gaggled crypto poisonously
    corrosively explanted unaccepted chippewas filmsets clocks fluctuating vindicat
    or emeerate impending duffle werwolves fishers manumissions luxuriance centavos
    lumping cancan begrimes cheerer bustards influxes frogfishes peevishly photosphe
    rically expropriating udder authored styleless idyl collards foreknow balkers ch
    ews damner hawknoses onerosities macs araks seines pawl physiques readers recoil
    LABEL
    comment
    PRODUCER
    monstrosities penes choiring hydrocephalies familiarity lumberers ricked offbea
    ts weightlessness weakness synergist stained mouthpieces brakes gnarlier twittin
    g draper misarranges misinterpretations japanner runout carbonates catalepsy enf
    eoffing engined pallor partitioning pseudoartistic resistances wideness teacakes
    payers profferers dolts conceited scrunches thickener relishable heehawed greys
    transparency durableness pandemics finable groomers heirships
    ethicians fondler turks
    LABEL
    comment
    PRODUCER
    SQL>
    SQL> CREATE BITMAP INDEX BMSJOINNODES250K
      2  ON BMTRIPLES250K(BMSNODES250K.LEX)
      3  FROM BMTRIPLES250K, BMSNODES250K
      4  WHERE BMTRIPLES250K.S = BMSNODES250K.HASH;
    Index created.
    SQL> SELECT 
      2     o1.lex as label,
      3     o2.lex as "comment",
      4     o4.lex as producer
      5  FROM
      6     bmTriples250K t1, bmsNodes250K s1, bmpNodes250K p1, bmoNodes250K o1,
      7     bmTriples250K t2, bmpNodes250K p2, bmoNodes250K o2,
      8     bmTriples250K t3, bmpNodes250K p3,
      9     bmTriples250K t4, bmpNodes250K p4, bmoNodes250K o4
    10  WHERE
    11     t1.s = s1.hash
    12     and t1.p = p1.hash
    13     and t1.o = o1.hash
    14     and s1.lex = 'http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromProducer9/Product399'
    15     and p1.lex = 'http://www.w3.org/2000/01/rdf-schema#label'
    16     and t1.s = t2.s 
    17     and t2.p = p2.hash
    18     and t2.o = o2.hash
    19     and p2.lex = 'http://www.w3.org/2000/01/rdf-schema#comment'
    20     and t1.s = t3.s
    21     and t3.p = p3.hash
    22     and p3.lex = 'http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/producer'
    23     and t3.o = t4.s
    24     and t4.p = p4.hash
    25     and t4.o = o4.hash
    26     and p4.lex = 'http://www.w3.org/2000/01/rdf-schema#label';
    no rows selected
    SQL>
    SQL>
    SQL>
    SQL> explain plan for
      2  SELECT 
      3     o1.lex as label,
      4     o2.lex as "comment",
      5     o4.lex as producer
      6  FROM
      7     bmTriples250K t1, bmsNodes250K s1, bmpNodes250K p1, bmoNodes250K o1,
      8     bmTriples250K t2, bmpNodes250K p2, bmoNodes250K o2,
      9     bmTriples250K t3, bmpNodes250K p3,
    10     bmTriples250K t4, bmpNodes250K p4, bmoNodes250K o4
    11  WHERE
    12     t1.s = s1.hash
    13     and t1.p = p1.hash
    14     and t1.o = o1.hash
    15     and s1.lex = 'http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromProducer9/Product399'
    16     and p1.lex = 'http://www.w3.org/2000/01/rdf-schema#label'
    17     and t1.s = t2.s 
    18     and t2.p = p2.hash
    19     and t2.o = o2.hash
    20     and p2.lex = 'http://www.w3.org/2000/01/rdf-schema#comment'
    21     and t1.s = t3.s
    22     and t3.p = p3.hash
    23     and p3.lex = 'http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/producer'
    24     and t3.o = t4.s
    25     and t4.p = p4.hash
    26     and t4.o = o4.hash
    27     and p4.lex = 'http://www.w3.org/2000/01/rdf-schema#label';
    Explained.
    SQL>
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 3609661641
    | Id  | Operation                               | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
    PLAN_TABLE_OUTPUT
    |   0 | SELECT STATEMENT                        |                  |     1 |  1716 |    23   (5)| 00:00:01 |
    |   1 |  NESTED LOOPS                           |                  |     1 |  1716 |    23   (5)| 00:00:01 |
    |   2 |   NESTED LOOPS                          |                  |     1 |  1520 |    22   (5)| 00:00:01 |
    |   3 |    NESTED LOOPS                         |                  |     1 |  1324 |    21   (5)| 00:00:01 |
    |   4 |     NESTED LOOPS                        |                  |     1 |  1287 |    19   (6)| 00:00:01 |
    |   5 |      NESTED LOOPS                       |                  |     1 |  1091 |    18   (6)| 00:00:01 |
    |   6 |       NESTED LOOPS                      |                  |     1 |   895 |    17   (6)| 00:00:01 |
    |   7 |        NESTED LOOPS                     |                  |     1 |   699 |    16   (7)| 00:00:01 |
    |   8 |         NESTED LOOPS                    |                  |     1 |   662 |    14   (8)| 00:00:01 |
    |   9 |          NESTED LOOPS                   |                  |     1 |   466 |    13   (8)| 00:00:01 |
    |  10 |           NESTED LOOPS                  |                  |     1 |   270 |    12   (9)| 00:00:01 |
    |* 11 |            HASH JOIN                    |                  |     1 |74 |    11  (10)| 00:00:01 |
    |  12 |             TABLE ACCESS BY INDEX ROWID | BMTRIPLES250K    |    10 |   370 |     5   (0)| 00:00:01 |
    |  13 |              BITMAP CONVERSION TO ROWIDS|                  |       |   |            |          |
    |* 14 |               BITMAP INDEX SINGLE VALUE | BMSJOINNODES250K |       |   |            |          |
    |  15 |             TABLE ACCESS BY INDEX ROWID | BMTRIPLES250K    |    10 |   370 |     5   (0)| 00:00:01 |
    |  16 |              BITMAP CONVERSION TO ROWIDS|                  |       |   |            |          |
    |* 17 |               BITMAP INDEX SINGLE VALUE | BMSJOINNODES250K |       |   |            |          |
    |* 18 |            TABLE ACCESS BY INDEX ROWID  | BMPNODES250K     |     1 |   196 |     1   (0)| 00:00:01 |
    |* 19 |             INDEX UNIQUE SCAN           | PKBMPNODES250K   |     1 |   |     0   (0)| 00:00:01 |
    |  20 |           TABLE ACCESS BY INDEX ROWID   | BMONODES250K     |     1 |   196 |     1   (0)| 00:00:01 |
    |* 21 |            INDEX UNIQUE SCAN            | PKBMONODES250K   |     1 |   |     0   (0)| 00:00:01 |
    |* 22 |          TABLE ACCESS BY INDEX ROWID    | BMPNODES250K     |     1 |   196 |     1   (0)| 00:00:01 |
    |* 23 |           INDEX UNIQUE SCAN             | PKBMPNODES250K   |     1 |   |     0   (0)| 00:00:01 |
    |* 24 |         INDEX RANGE SCAN                | PKBMTRIPLES250K  |     1 |37 |     2   (0)| 00:00:01 |
    |  25 |        TABLE ACCESS BY INDEX ROWID      | BMONODES250K     |     1 |   196 |     1   (0)| 00:00:01 |
    |* 26 |         INDEX UNIQUE SCAN               | PKBMONODES250K   |     1 |   |     0   (0)| 00:00:01 |
    |* 27 |       TABLE ACCESS BY INDEX ROWID       | BMPNODES250K     |     1 |   196 |     1   (0)| 00:00:01 |
    |* 28 |        INDEX UNIQUE SCAN                | PKBMPNODES250K   |     1 |   |     0   (0)| 00:00:01 |
    |* 29 |      TABLE ACCESS BY INDEX ROWID        | BMSNODES250K     |     1 |   196 |     1   (0)| 00:00:01 |
    |* 30 |       INDEX UNIQUE SCAN                 | PKBMSNODES250K   |     1 |   |     0   (0)| 00:00:01 |
    |* 31 |     INDEX RANGE SCAN                    | PKBMTRIPLES250K  |     1 |37 |     2   (0)| 00:00:01 |
    |  32 |    TABLE ACCESS BY INDEX ROWID          | BMONODES250K     |     1 |   196 |     1   (0)| 00:00:01 |
    |* 33 |     INDEX UNIQUE SCAN                   | PKBMONODES250K   |     1 |   |     0   (0)| 00:00:01 |
    |* 34 |   TABLE ACCESS BY INDEX ROWID           | BMPNODES250K     |     1 |   196 |     1   (0)| 00:00:01 |
    |* 35 |    INDEX UNIQUE SCAN                    | PKBMPNODES250K   |     1 |   |     0   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
      11 - access("T3"."O"="T4"."S")
      14 - access("T4"."SYS_NC00006$"='http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromProducer9/Product399')
      17 - access("T3"."SYS_NC00006$"='http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromProducer9/Product399')
      18 - filter("P3"."LEX"='http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/producer')
      19 - access("T3"."P"="P3"."HASH")
      21 - access("T4"."O"="O4"."HASH")
      22 - filter("P4"."LEX"='http://www.w3.org/2000/01/rdf-schema#label')
      23 - access("T4"."P"="P4"."HASH")
      24 - access("T1"."S"="T3"."S")
      26 - access("T1"."O"="O1"."HASH")
      27 - filter("P1"."LEX"='http://www.w3.org/2000/01/rdf-schema#label')
      28 - access("T1"."P"="P1"."HASH")
      29 - filter("S1"."LEX"='http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromProducer9/Product399')
      30 - access("T1"."S"="S1"."HASH")
      31 - access("T1"."S"="T2"."S")
      33 - access("T2"."O"="O2"."HASH")
      34 - filter("P2"."LEX"='http://www.w3.org/2000/01/rdf-schema#comment')
      35 - access("T2"."P"="P2"."HASH")
    67 rows selected.

    Well, I didn't finally get an execution plan that uses the bitmap join index. The following statement with hint will use it, but I'm somewhat surprised that the optimizer doesn't choose this index without a hint. I'm still looking for more knowledge on this issue, so if you have any experiences to share regarding these bitmap join indexes, please do post.
    Thanks,
    Dave
    select /*+ INDEX(mmw_drug_pack ext_drug_pack_i12) */ mmw_drug_pack.*,
    mmw_drug_route.description as routedesc,
    mmw_drug_route.abbrev as routeabbrev,
    mmw_drug_doseform.description as doseformdesc,
    mmw_drug_doseform.abbrev as doseformabbrev,
    mmw_drug_labeler.namefull as labelername,
    mmw_drug_disp.rpid,
    mmw_drug_disp.pnid,
    mmw_drug_disp.descdisplay as dispdescription
    from mmw_drug_pack,
    mmw_drug_route,
    mmw_drug_doseform,
    mmw_drug_disp,
    mmw_drug_labeler
    where mmw_drug_pack.rtid = mmw_drug_route.rtid
    and mmw_drug_pack.dfid = mmw_drug_doseform.dfid
    and mmw_drug_pack.ddid = mmw_drug_disp.ddid
    and mmw_drug_pack.labelerid = mmw_drug_labeler.labelerid

  • Bitmap join indexes

    Hi all,
    here's the background to my problem: have 4 large tables (40 mill records) - each with an id (same id for all of them) and lots of low-cardinality columns ('classification'-columns).
    The objective is to be able to do a fast count of the id's across the tables based on various criterias for the 'classification' columns.
    I also need to be able to add tables of the same format ideally without having to rebuild the whole thing.
    To this end I've been experimenting with bitmap-indexes and bitmap join indexes.
    Quering one table with a bitmap index on each of the 'class' columns achieves the performance goal:
    select count(*)
    from cl_dumc1
    where class1 in (1,2,3)
    and class2 = 4
    and class3=2
    However when I need to select across 2 or more tables I do not get the required performance:
    select count(*)
    from cl_dumc1 c1,
    cl_dumc2 c2
    where c1.class1 in (1,2,3)
    and c1.class2 = 4
    and c1.class3=2
    and c2.class21=5
    and c1.id = c2.id
    As you know a bitmap index is a map (one map per distinct value of the column) onto the rowid's in the table.
    So what I really wanted was bitmap indexes that maps not to the the rowids but my ID column (since this is common across all the tables).
    I figured I could do this by having a skinny table (cl_central) with only one column (ID), and then create bitmap join indexes that binds my 'real' tables together to one central id (being the rowid of my cl_central table).
    Here's a sample script:
    create sequence dum;
    create table cl_central
    (id number);
    insert into cl_central
    select dum.nextval,dum.nextval
    from all_objects;
    create table cl_dumc1(id number, class1 number, class2 number, class3 number, class4 number, class5 number);
    insert into cl_dumc1
    select id,mod(id,4), mod(id+1,4), mod(id+2,4), mod(id+3,4), mod(id+4,4) from cl_central;
    create table cl_dumc2
    (id number, class21 number, class22 number, class23 number, class24 number, class25 number);
    insert into cl_dumc2
    select id,mod(id,4),mod(id+1,4),mod(id+2,4),mod(id+3,4),mod(id+4,4) from cl_central;
    create table cl_dumc3 (id number, class31 number, class32 number, class33 number, class34 number, class35 number);
    insert into cl_dumc3
    select id,mod(id,4),mod(id+1,4),mod(id+2,4),mod(id+3,4),mod(id+4,4)from cl_central;
    create table cl_dumc4(id number, class41 number, class42 number, class43 number, class44 number, class45 number);
    insert into cl_dumc4
    select id,mod(id,4),mod(id+1,4),mod(id+2,4),mod(id+3,4),mod(id+4,4)from cl_central;
    create unique index cl_central_pk on cl_central (id);
    alter table cl_central add constraint cl_central_pk primary key (id);
    create unique index cl_dumc1_pk on cl_dumc1 (id);
    create unique index cl_dumc2_pk on cl_dumc2 (id);
    create unique index cl_dumc3_pk on cl_dumc3 (id);
    create unique index cl_dumc4_pk on cl_dumc4 (id);
    alter table cl_dumc1 add constraint cl_dumc1_pk primary key (id);
    alter table cl_dumc2 add constraint cl_dumc2_pk primary key (id);
    alter table cl_dumc3 add constraint cl_dumc3_pk primary key (id);
    alter table cl_dumc4 add constraint cl_dumc4_pk primary key (id);
    declare
    i number;
    begin
    for c in (select table_name,column_name from user_tab_columns where table_name in ('CL_DUMC1','CL_DUMC2','CL_DUMC3','CL_DUMC4') and column_name !='ID') loop
    select count(*) into i from user_indexes where index_name=c.column_name;
    if i = 0 then
    EXECUTE IMMEDIATE 'CREATE BITMAP INDEX '||c.column_name||'
    ON cl_central('||c.table_name||'.'||c.column_name||')
    FROM cl_central, '||c.table_name||'
    WHERE cl_central.id = '||c.table_name||'.id';
    end if;
    end loop;
    end;
    Test some queries:
    select /*+INDEX(z class1)
    count(*)
    from cl_central z,
    cl_dumc1 c1
    where z.person_urn = c1.person_urn
    and c1.class1=0
    Explain plan:
    SELECT STATEMENT Cost= 15
    SORT AGGREGATE
    BITMAP CONVERSION COUNT
    BITMAP INDEX SINGLE VALUE CLASS1
    So far so good - very quick with just selecting on the bitmap.
    select /*+INDEX(z class1)
    INDEX(z class21)
              INDEX(z class31)
              INDEX(z class41)
              INDEX(z class42)          
    count(*)
    from cl_central z,
    cl_dumc1 c1,
    cl_dumc2 c2,
    cl_dumc3 c3,
    cl_dumc4 c4               
    where z.id= c1.id
    and z.id = c2.id
    and z.id = c3.id
    and z.id = c4.id
    and c1.class1=0
    and c2.class21=0
    and c3.class31=0
    and c4.class41=0
    SELECT STATEMENT Cost= 4
    SORT AGGREGATE
    BITMAP CONVERSION COUNT
    BITMAP AND
    BITMAP INDEX SINGLE VALUE CLASS1
    BITMAP INDEX SINGLE VALUE CLASS21
    BITMAP INDEX SINGLE VALUE CLASS31
    BITMAP INDEX SINGLE VALUE CLASS41
    Look great - very fast accessing just small bitmap indexes.
    select /*+INDEX(z class1)
    INDEX(z class21)
    INDEX(z class31)
    INDEX(z class41)
    INDEX(z class42)
    count(*)
    from cl_central z,
    cl_dumc1 c1,
    cl_dumc2 c2,
    cl_dumc3 c3,
    cl_dumc4 c4
    where z.id = c1.id
    and z.id = c2.id
    and z.id = c3.id
    and z.id = c4.id
    and c1.class1=0
    and c2.class21=0
    and c3.class31=0
    and c4.class41=0
    and c4.class42 =1
    SELECT STATEMENT Cost= 16
    SORT AGGREGATE
    HASH JOIN
    TABLE ACCESS FULL CL_DUMC4
    TABLE ACCESS BY INDEX ROWID CL_CENTRAL
    BITMAP CONVERSION TO ROWIDS
    BITMAP AND
    BITMAP INDEX SINGLE VALUE CLASS1
    BITMAP INDEX SINGLE VALUE CLASS21
    BITMAP INDEX SINGLE VALUE CLASS31
    BITMAP INDEX SINGLE VALUE CLASS41
    BITMAP INDEX SINGLE VALUE CLASS42
    Disaster (well it is with my volumes...) - it visits the tables in addition to the bitmaps - AND I CANT SEE THE REASON FOR IT - all I did was to add a second condition to the last classification table.
    Does anyone have any explanation for this?

    Is the cardinality of
    c4.class41 and c4.class42
    combined also low?
    Probably Oracle thinks that the cardinality of class41 and class42 column values is not low and it needs to do a full table access of table C4. Check the cardinality of class41 and class42 put together.
    Did you try creating a bitmap index (or a regular composite index) on both class41 and class42 columns? A regular index on both the columns together will help in this case.
    Shakti
    (http://www.impact-sol.com)
    (Developers of Guggi Oracle - Tool for DBAs and Developers)

  • Schema Design for 10^6+ rows table (Indicator Column / Bitmap Join Index?)

    Hi all,
    I read following suggestion for a SELECT with LEFT OUTER JOIN in a DB2 consulting company paper for a 10 million-rows table:
    SELECT columns
    FROM ACCTS A LEFT JOIN OPT1 O1
    ON      A.ACCT_NO = O1.ACCT_NO
    AND     A.FLAG1 = ‘Y’
    LEFT JOIN OPT2 O2
    ON      A.ACCT_NO = O2.ACCT_NO
    AND     A.FLAG2 = ‘Y’
    WHERE A.ACCT_NO = 1
    For DB2, according to the paper, the following is true: Iff A.FLAG1 <> ‘Y’ Then no Table or Index Access on OPT1 is done. Same for A.FLAG2/OPT2.
    I recreated the situation for ORACLE with the following script and came to some really interesting questions
    DROP TABLE maintbl CASCADE CONSTRAINTS;
    DROP TABLE opt1 CASCADE CONSTRAINTS;
    DROP TABLE opt2 CASCADE CONSTRAINTS;
    CREATE TABLE maintbl
    id INTEGER NOT NULL,
    dat VARCHAR2 (2000 CHAR),
    opt1 CHAR (1),
    opt2 CHAR (1),
    CONSTRAINT CK_maintbl_opt1 CHECK(opt1 IN ('Y', 'N')) INITIALLY IMMEDIATE ENABLE VALIDATE,
    CONSTRAINT CK_maintbl_opt2 CHECK(opt2 IN ('Y', 'N')) INITIALLY IMMEDIATE ENABLE VALIDATE,
    CONSTRAINT PK_maintbl PRIMARY KEY(id)
    CREATE TABLE opt1
    maintbl_id INTEGER NOT NULL,
    adddat1 VARCHAR2 (100 CHAR),
    adddat2 VARCHAR2 (100 CHAR),
    CONSTRAINT PK_opt1 PRIMARY KEY(maintbl_id),
    CONSTRAINT FK_opt1_maintbltable FOREIGN KEY(maintbl_id) REFERENCES maintbl(id)
    CREATE TABLE opt2
    maintbl_id INTEGER NOT NULL,
    adddat1 VARCHAR2 (100 CHAR),
    adddat2 VARCHAR2 (100 CHAR),
    CONSTRAINT PK_opt2 PRIMARY KEY(maintbl_id),
    CONSTRAINT FK_opt2_maintbltable FOREIGN KEY(maintbl_id) REFERENCES maintbl(id)
    INSERT ALL
    WHEN 1 = 1 THEN
    INTO maintbl (ID, opt1, opt2, dat) VALUES (nr, is_even, is_odd, maintbldat)
    WHEN is_even = 'N' THEN
    INTO opt1 (maintbl_id, adddat1, adddat2) VALUES (nr, adddat1, adddat2)
    WHEN is_even = 'Y' THEN
    INTO opt2 (maintbl_ID, adddat1, adddat2) VALUES (nr, ADDdat1, ADDdat2)
    SELECT LEVEL AS NR,
    CASE WHEN MOD(LEVEL, 2) = 0 THEN 'Y' ELSE 'N' END AS is_even,
    CASE WHEN MOD(LEVEL, 2) = 1 THEN 'Y' ELSE 'N' END AS is_odd,
    TO_CHAR(DBMS_RANDOM.RANDOM) AS maintbldat,
    TO_CHAR(DBMS_RANDOM.RANDOM) AS adddat1,
    TO_CHAR(DBMS_RANDOM.RANDOM) AS adddat2
    FROM DUAL
    CONNECT BY LEVEL <= 100;
    COMMIT;
    SELECT * FROM maintbl
    LEFT OUTER JOIN opt1 ON maintbl.id = opt1.maintbl_id AND maintbl.opt1 = 'Y'
    LEFT OUTER JOIN opt2 ON maintbl.id = opt2.maintbl_id AND maintbl.opt2 = 'Y'
    WHERE id = 1;
    Explain plan for "Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi":
    http://i.imgur.com/f0AiA.png
    As one can see, the DB uses a view to index-access the opt tables iff indicator column maintbl.opt1='Y' in the main table.
    Explain plan for "Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production":
    http://i.imgur.com/iKfj8.png
    As one can see, the DB does NOT use the view, instead uses a pretty useless case-statement
    Now my questions:
    1) What does the optimizer do in 11.2 XE?!?
    2) In General: Do you suggest this table-setup? Does your yes/no suggestion depend on the rowcount in the tables? Of course I see the problem with incorrectly updated columns and would NEVER do it if there is another truly relational solution with same performance possibly.
    3) Is there a way to avoid performance issues if I don't use an indicator column in ORACLE? Is this what a [Bitmap Join Index|http://docs.oracle.com/cd/E11882_01/server.112/e25789/indexiot.htm#autoId14] is for?
    Thanks in advance and happy discussing,
    Blama

    Fair enough. I've included a cut-down set of SQL below.
    CREATE TABLE DIMENSION_DATE
    DATE_ID NUMBER,
    CALENDAR_DATE DATE,
    CONSTRAINT DATE_ID
    PRIMARY KEY
    (DATE_ID)
    CREATE UNIQUE INDEX DATE_I1 ON DIMENSION_DATE
    (CALENDAR_DATE, DATE_ID);
    CREATE TABLE ORDER_F
    ORDER_ID VARCHAR2(40 BYTE),
    SUBMITTEDDATE_FK NUMBER,
    COMPLETEDDATE_FK NUMBER,
    -- Then I add the first bitmap index, which works:
    CREATE BITMAP INDEX SUBMITTEDDATE_FK ON ORDER_F
    (DIMENSION_DATE.DATE_ID)
    FROM ORDER_F, DIMENSION_DATE
    WHERE ORDER_F.SUBMITTEDDATE_FK = DIMENSION_DATE.DATE_ID;
    -- Then attempt the next one:
    CREATE BITMAP INDEX completeddate_fk
    ON ORDER_F(b.date_id)
    FROM ORDER_F, DIMENSION_DATE b
    WHERE ORDER_F.completeddate_fk = b.date_id;
    -- which results in:
    -- ORA-01408: such column list already indexed

  • Bitmap join indexes in 9i?

    Has anyone successfully used bitmap join indexes? I've created several over what is logically a fact table and dimension tables (fits the model as best I can tell), but queries that sure look like they should use the index don't. I've tried it on 9.0.1.0.0 on Solaris, and 9.2.0.1.0 on AIX. Here's an example (mmw_drug_pack is the fact table, the others are dimension tables). Any thoughts or ideas? Is there an unpublished initialization parameter that activates this capability?
    Bitmap join index:
    CREATE BITMAP INDEX ext_drug_pack_i12
    ON mmw_drug_pack (mmw_drug_route.description,
    mmw_drug_route.abbrev,
    mmw_drug_doseform.description,
    mmw_drug_doseform.abbrev,
    mmw_drug_labeler.namefull,
    mmw_drug_disp.rpid,
    mmw_drug_disp.pnid,
    mmw_drug_disp.descdisplay)
    FROM mmw_drug_pack, mmw_drug_route, mmw_drug_doseform, mmw_drug_disp, mmw_drug_labeler
    WHERE mmw_drug_pack.rtid = mmw_drug_route.rtid
    AND mmw_drug_pack.dfid = mmw_drug_doseform.dfid
    AND mmw_drug_pack.ddid = mmw_drug_disp.ddid
    AND mmw_drug_pack.labelerid = mmw_drug_labeler.labelerid
    TABLESPACE indx COMPUTE STATISTICS;
    Statement that (I think) should use the bitmap join index, but doesn't. Even if I add an additional filter predicate like "mmw_drug_pack.rtid = 1", Oracle still doesn't use the index.
    select mmw_drug_pack.*,
    mmw_drug_route.description as routedesc,
    mmw_drug_route.abbrev as routeabbrev,
    mmw_drug_doseform.description as doseformdesc,
    mmw_drug_doseform.abbrev as doseformabbrev,
    mmw_drug_labeler.namefull as labelername,
    mmw_drug_disp.rpid,
    mmw_drug_disp.pnid,
    mmw_drug_disp.descdisplay as dispdescription
    from mmw_drug_pack,
    mmw_drug_route,
    mmw_drug_doseform,
    mmw_drug_disp,
    mmw_drug_labeler
    where mmw_drug_pack.rtid = mmw_drug_route.rtid
    and mmw_drug_pack.dfid = mmw_drug_doseform.dfid
    and mmw_drug_pack.ddid = mmw_drug_disp.ddid
    and mmw_drug_pack.labelerid = mmw_drug_labeler.labelerid
    [and mmw_drug_pack.rtid = 1 --additional filter predicate]

    Well, I didn't finally get an execution plan that uses the bitmap join index. The following statement with hint will use it, but I'm somewhat surprised that the optimizer doesn't choose this index without a hint. I'm still looking for more knowledge on this issue, so if you have any experiences to share regarding these bitmap join indexes, please do post.
    Thanks,
    Dave
    select /*+ INDEX(mmw_drug_pack ext_drug_pack_i12) */ mmw_drug_pack.*,
    mmw_drug_route.description as routedesc,
    mmw_drug_route.abbrev as routeabbrev,
    mmw_drug_doseform.description as doseformdesc,
    mmw_drug_doseform.abbrev as doseformabbrev,
    mmw_drug_labeler.namefull as labelername,
    mmw_drug_disp.rpid,
    mmw_drug_disp.pnid,
    mmw_drug_disp.descdisplay as dispdescription
    from mmw_drug_pack,
    mmw_drug_route,
    mmw_drug_doseform,
    mmw_drug_disp,
    mmw_drug_labeler
    where mmw_drug_pack.rtid = mmw_drug_route.rtid
    and mmw_drug_pack.dfid = mmw_drug_doseform.dfid
    and mmw_drug_pack.ddid = mmw_drug_disp.ddid
    and mmw_drug_pack.labelerid = mmw_drug_labeler.labelerid

  • Problem with java swing button and loop

    Problem with java swing button and loop
    I�m using VAJ 4.0. and I�m doing normal GUI application. I have next problem.
    I have in the same class two jswing buttons named start (ivjGStart) and stop (ivjGStop) and private static int field named Status where initial value is 0. This buttons should work something like this:
    When I click on start button it must do next:
    Start button must set disenabled and Stop button must set enabled and selected. Field status is set to 1, because this is a condition in next procedure in some loop. And then procedure named IzvajajNeprekinjeno() is invoked.
    And when I click on stop button it must do next:
    Start button must set enabled and selected and Stop button must set disenabled.
    Field status is set to 0.
    This works everything fine without loop �do .. while� inside the procedure IzvajajNeprekinjeno(). But when used this loop the start button all the time stay (like) pressed. And this means that a can�t stop my loop.
    There is java code, so you can get better picture:
    /** start button */
    public void gStart_ActionEvents() {
    try {
    ivjGStart.setEnabled(false);
    ivjGStop.setEnabled(true);
    ivjGStop.setSelected(true);
    getJTextPane1().setText("Program is running ...");
    Status = 1;
    } catch (Exception e) {}
    /** stop button */
    public void gStop_ActionEvents() {
    try {
    ivjGStart.setEnabled(true);
    ivjGStart.setSelected(true);
    ivjGStop.setEnabled(false);
    getJTextPane1().setText("Program is NOT running ...");
    Status = 0;
    } catch (Exception e) {
    /** procedure IzvajajNeprekinjeno() */
    public void IzvajajNeprekinjeno() {  //RunLoop
    try {
    int zamik = 2000; //delay
    do {
    Thread.sleep(zamik);
    PreberiDat(); //procedure
    } while (Status == 1);
    } catch (Exception e) {
    So, I'm asking what I have to do, that start button will not all the time stay pressed? Or some other aspect of solving this problem.
    Any help will be appreciated.
    Best regards,
    Tomi

    This is a multi thread problem. When you start the gui, it is running in one thread. Lets call that GUI_Thread so we know what we are talking about.
    Since java is task-based this will happen if you do like this:
    1. Button "Start" is pressed. Thread running: GUI_Thread
    2. Event gStart_ActionEvents() called. Thread running: GUI_Thread
    3. Method IzvajajNeprekinjeno() called. Thread running: GUI_Thread
    4. Sleep in method IzvajajNeprekinjeno() on thread GUI_Thread
    5. Call PreberiDat(). Thread running: GUI_Thread
    6. Check status. If == 1, go tho 4. Thread running: GUI_Thread.
    Since the method IzvajajNeprekinjeno() (what does that mean?) and the GUI is running in the same thread and the event that the Start button has thrown isn't done yet, the program will go on in the IzvajajNeprekinjeno() method forever and never let you press the Stop-button.
    What you have to do is do put either the GUI in a thread of its own or start a new thread that will do the task of the IzvajajNeprekinjeno() method.
    http://java.sun.com/docs/books/tutorial/uiswing/index.html
    This tutorial explains how to build a multi threaded gui.
    /Lime

  • I have an older version of Adobe Digital Editions (around 3 years old) and was very happy with it.  Then I had problems with my Kobo Reader and asked a friend who works in IT to assist. She could not fix the Kobo but she messed up my Addobe. She downloade

    I have an older version of Adobe Digital Editions (around 3 years old) and was very happy with it.
    Then I had problems with my Kobo Reader and asked a friend who works in IT to assist. She could not fix the Kobo but she messed up my Addobe. She downloaded version three and I have an account and a password - was not able to transfer my books from my reader to version three (and I don't like the lay-out - I would prefer to stay with the old version as I also loose all my download date info..)
    But all the books I have bought over the last three years are in the old Adobe Digital and I cannot access them any more. When I use it I get the message "that the document is licensed to a different account. I can't even open the books on my computer.
    When I go to my Kobo library, I cannot also not open my books and get the message "this doc is protected by adobe digital rights management and is not currently authorized for use with your adobe. please sign in with your authorized adobe id and try again"
    I believe the problem is that I do not seem to have a digital id for my old adobe or that the Kobo is not in sync with it anymore.
    can you please help me - going on vacation in three days and cannot go without books.

    Please authorize ADE 3 with same credentials that you used with older version of ADE

  • I have been having problems with my iPod touch and my WRT...

    I have been having problems with my iPod touch and my WRT54G router. I am so frustrated right now because after following the various steps mentioned in one of these threads, following Earthlink's prompts, and speaking with Apple, my iPod touch will still not work. It is connected to the internet but will not download the pages. It is quite frustrating. I have changed from WPA to WEP, I switched the 4th Generated key to the 1st. I've disabled this, enabled that. I've done just about everything. I updated the firmware. I made the switch from a partial bridge to a full bridge. Still nothing seems to work. Does anyone have any other suggestions? The one thing I have not done is enter the Apple code into the iPod which searches for website...-- I cannot access the internet with my iPod so this web address does not work. If anyone has been successful, will you please give me step by step instructions? Yesterday I was on the phone with Linksys for about an hour. Before that with Apple for about an hour and before that with Earthlink. How it is that I can walk into a Bread Co. or Apple Store and immediately connect to the internet with my iPod but I can't in my own house?? Everyone seems to think it is someone else's problem so I've gone around and around. Not one of the Linksys support personnel suggested I look here on this community forum. I had to pay the $9 fee to have advanced Linksys help but still my iPod does not work and when I called back, the man I spoke with seemed to think the case was closed because my PC, Laptop, and iPod are connected to the internet -- the iPod just won't download the webpages or get mail. My iPod's IP address begins with 192. I would appreciate any help on this matter
    Message Edited by AlliW on 10-02-2008 02:06 PM

    I had the same issues with my iPod touch & iPhone. It's a known issue with the touch & Linksys G routers. Go into settings on the touch & do the following.
    1. Settings - wifi - linksys
    2. Erase your DNS settings & input same numbers as in router
    Settings.
    3. Http proxy should be
    in off position.
    4. Close out & open safari you should now have a wireless
    connection.

  • SQL 2012 database behaves differently with a unique index and ignore_dup_key = on when inserting data. It works on SQL 2008 db

    If you have a table with a unique index and ignore_dup_key = on and you INSERT rows into that table with an ORDER BY clause (because you want to control which of the duplicate
    key rows gets inserted),  the wrong row gets inserted in SQL2012.  It works correctly in SQL 2008.
    We have recently migrated  a database from SQL 2008 to SQL 2012.  We do have few other dbs which are in compatability mode 100.  The above operation works fine
    in SQL 2008 dbs but not SQL 2012.
    I've even tried applying the latest patch for SQL 2012 SP2 with CU2. Still the problem exists.  I'm going to call MS support, but want to know if anyone has come across this problem ?

    The MS documentation doesn't guarantee that the first row of the duplicates will always be inserted and the next duplicate row(s) get(s) ignored. Where did you find it in the MS documentation? I think you were just lucky that it was always inserting the
    first row in SQL 2008 (and ignoring the rest of the duplicates) - I don't think this is guaranteed
    Satish Kartan http://www.sqlfood.com/

  • Bitmap join Index

    I'm using oracle9i.2.
    When I execute select * from v$option;
    Bit-mapped indexes FALSE
    How can I enable Bitmap Join Index ?
    Is bitmap join index feature enable in Standard Edition ?

    Nanda Kishore,
    Unfortunately you cannot currently define bitmap join indexes in Warehouse Builder. We are planning to include those in an upcoming release.
    Mark.

  • I'm having problems with Adobe Illustrator , Photoshop and MediaEncoder !

    I'm having problems with Adobe Illustrator , Photoshop and MediaEncoder !
    The ilustrator when opening files from a lack of memory of which I own already find it hard 11Gbram , Photoshop crashes inesperdamente and the Media Encoder is not converting the video in nnehuma the options requested .
    Would like guidance , never had such problems with Adobe software . Today got a MacPro 2x2,2.66 Ghz Dual Core Intel Xeon 11Gbram 240GB SSD .

    Hi Mw,
    Will it be possible for you to join the connect session: https://my.adobeconnect.com/rbhunwal
    I want to have a look into this.
    Thanks & Regards,
    Raghuveer

  • I'm Having problems with the video freezing and the sound carrying on since I up graded my iPad to ios8  BBC IPLAYER

    I Am having problems with the video freezing and the sound carrying on whilst watching BBC IPLAYER ITV PLAYER until I reboot video and the problem acures again

    Your Mac runs maintenance in the background for you.
    Command + R gives you access to restore, repair, or reformat the drive using OS X Recovery
    No idea why that was suggested.
    You may have a third party video player installed that's causing an incompatibility issue.
    Check these folders:
    /Library/Internet Plug-Ins/
    /Library/Input Methods/
    /Library/InputManagers/
    /Library/ScriptingAdditions
    ~/Library/Internet Plug-Ins/
    ~/Library/Input Methods/
    ~/Library/InputManagers/
    ~/Library/ScriptingAdditions
    The first four locations listed are in the root-level Library on your hard disk, not the user-level Library in your Home folder.The tilde (~) represents your Home folder.
    To access the Home folder in OS X Lion or Mountain Lion, open the Finder, hold the Option key, and chooseGo > Library.

  • Bitmap Join Index generation in DDL

    I am unable to figure out how to have a bitmap join index defined in the Physical Model be generated in the DDL out of Oracle SQL Deleveloper Data Modeler.
    Please advise how this can be done.
    Thanks!

    Hi,
    The Properties Editor for a Bitmap Join Index has an "Index Columns" tab. The relevant columns on the related "Dimension" Tables should be moved to the "Selected Columns" list on this tab.
    As Philip said, you need to make sure the Physical Model is open before you do the DDL generation.
    When you select the Generate button, the DDL Generation Options dialog is displayed. This has a set of tabs below the main panel. You can select the Bitmap Join Indexes tab, and check that your Bitmap Join Index appears there and its "Selected" check box is selected. (If it's not selected, select it.)
    The DDL for your Bitmap Join Index should appear close to the end of the generated DDL.
    David

  • Problem with Wifi Traveler app and ipass

    This product is causing lots of problem on my Nokia E72 phone. First it was working okay, asking me to update it, but after I installed the iPass plug in , then it manipulated my phone's internet connection and many of my apps couldn't get connected to my Home's Wifi network and load up and even this app would'nt let my Apps to use the 3G netowrk of my Provider to get connected unless I was out of the range of my Home Wireless Connection. I tried everything to enabling and disabling the Internet connection in the App, changing the Access Point , disabling the IPass , nothing worked .
     I even tried to update the app but it fails. I tried to unintall the apllication and it fails, I removed then Ipass plugin of the app , and it made it much worse...  now vice versa , my apps can never connect to 3G network, and only bring the option to get it connected to WIFi. 
    Tired to install the Ipass Plug in again , but now it doesn't get installed, it asks for Wifi Travelers to be updated first, but that one fails to be updated either. The app cannot be uninstalled too, leaving me in limbo. I tired to reinstall the application, but it fails ... does any one who how to get rid of this app or at least make it to update ? This app is just driving me nuts, Thanks
    Solved!
    Go to Solution.

    This problem with deleting protected iPass WiFi access point is SOLVED.This is the way:
    READ POINT 3c FIRST!!   After that,read from the beggining.
    1.stop any connection/ data or wifi/. -DONT touch iPass wifi app.
    2.go to psiloc world traveller -iPass wifi app - and choose DISABLED.
    3.go to settings-installations-already installed-choose REMOVE psiloc world traveller /both apps from there/..Big one and the small one-about 22kb.
    4.go to settings-connectivity-settings-network destinations-chek is the access point deleted..
    If not,you must go to little bit complicated way..
    1a.establish wifi connection-NOT by iPass Wifi app./ONLY WI FI - NOT DATA / connection.
    2b.go to psiloc world traveller-open it-go to iPass wifi app, go to UPDATE it..Make update of iPass wifi app,after that choose DISABLE.
    3c.It is recommandable -before any work on removing protected access point  - to move temporary all access points to another destination,/protected acces point cant be moved/ in order to make protected access point /iPass wifi/ be alone in the folder/destination/ INTERNET-or the folder where it is ...If it is neccessary open new destination folder...And put all other access points there..I do that before removeing this **bleep**...protected acc.point.
    4d.now,CLOSE ALL CONNECTIONS - IT IS VERY IMPORTANT - go to app manager/ installations/-REMOVE Psiloc world traveller-DONT TOUCH ANY WIFI APPS-Remove both Psiloc traveller apps..Big one and the small one.
    5e.Restart phone.
    6f.Make check,your internet acc.point destination would be empty - without iPass access point **bleep**....If it is all Ok,you must  bring back your old access point order.
    7g.remember,removing of psiloc world traveller you automatically removed protected iPass wifi access point.DONT TRY TO REMOVE iPass WIFi application itself!
    GOOD LUCK!

Maybe you are looking for

  • How to select a random cell in the DataGridView?

    Good day I am new to the DataGridView control. I was wondering if one can select a random cell in the DataGridView and if it is possible can someone help me with the code or a link to do it please. Thank you.

  • Trying to install php 5 broke my webserver

    I wanted to use the image creating GD2 capabilities of php and I heard I had to update the version of php currently used in Mac OS X 10.4.8. So I followed the directions on the site (http://www.entropy.ch/software/macosx/php/) and downloaded the vers

  • Modeling transaction data

    Hello all, I have 2 questions that I was hoping to get an answer to: Question 1: What is the normal way of modeling transaction data with a changing status in a BW system? Are there any links/threads to read? I thought that transaction  idata would g

  • *** Using Keynote on an AppleTV

    Does anyone know if it's possible to watch a Keynote presentation through AppleTV?

  • How do you preview .dxf files in Outlook 2010?

    Is there something I can install that will allow me to preview .dxf files in my preview plane for Outlook 2010?