When will i use index organization table.

when will i use index organization table.
what is the advantage of these.

See the sit
http://www.dba-oracle.com/t_index_organized_tables.htm

Similar Messages

  • Is Index organization tables better in performance compare to normal tables

    Hi,
    i am using oracle 10g and my domain is on telecom.
    my requirement is when 'A' party calls 'B' Party based on 'B' party number
    we have to find which area the call lands based on that tariff will be applied
    but the data configured in Area table is not the complete number its just a CC+NDC(4or5 digits in length)
    so i have to find which one matches the nearest to 'B' party number.
    i uses the following query
    select max(area_code)
    from ZONE_AREA
    where '9888123456' like AREA_CODE||'%'
    and network_id=1;
    this is the structure of the table
    create table ZONE_AREA(
    AREA_CODE VARCHAR2(20),
    AREA_NAME VARCHAR2(30) not null,
    ZONE_CODE VARCHAR2(10) not null,
    CALL_TYPE VARCHAR2(1) not null,
    NETWORK_ID NUMBER(2),
    primary key (NETWORK_ID, AREA_CODE))
    the table contains around 200000 rows.
    the data in table look like
    AREA_CODE
    98812
    90020
    900
    9732
    the hit ratio for the above query is massive since it fires for every call but my DBA complaining me
    this query utilizes more CPU need to be tuned.
    i thought of going for Index organization tables since i never used this but want to give a try to see any improvisation is there
    Hence i created the Index organization table(IOT) for the same above structure in my development environment
    with 60,000 rows in it.
    create table ZONE_AREA_IOT
    AREA_CODE VARCHAR2(20),
    AREA_NAME VARCHAR2(30) not null,
    ZONE_CODE VARCHAR2(10) not null,
    CALL_TYPE VARCHAR2(1) not null,
    NETWORK_ID NUMBER(2),
    CONSTRAINT pk_admin_docindex1 PRIMARY KEY (NETWORK_ID, AREA_CODE))
    ORGANIZATION INDEX
    also the plain table (ZONE_AREA) have 60,000 rows in my development server.
    now i fired the query on my plain table
    select max(area_code)
    from ZONE_AREA
    where '9888123456' like AREA_CODE||'%'
    and network_id=1;
    the following is the execution plan
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 11 | 3 (34)| 00:00:01 |
    | 1 | SORT AGGREGATE | | 1 | 11 | | |
    | 2 | FIRST ROW | | 1 | 11 | 3 (34)| 00:00:01 |
    |* 3 | INDEX RANGE SCAN (MIN/MAX)| SYS_C007738 | 1 | 11 | 3 (34)| 00:00:01 |
    now i fired the query on the newly created IOT table
    select max(area_code)
    from ZONE_AREA_IOT
    where '9888123456' like AREA_CODE||'%'
    and network_id=1;
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 25 | 2 (0)| 00:00:01 |
    | 1 | SORT AGGREGATE | | 1 | 25 | | |
    | 2 | FIRST ROW | | 21 | 525 | 2 (0)| 00:00:01 |
    |* 3 | INDEX RANGE SCAN (MIN/MAX)| PK_ADMIN_DOCINDEX1 | 21 | 525 | 2 (0)| 00:00:01 |
    both tables have similar record count
    but the plans differ don't under stand the Rows column in the above plans for normal table its shows 11 bytes
    for IOT table it shows 525 bytes why this difference ?
    also CPU cost shows 3 in normal table and for IOT it shows 2
    for the above scenario is IOT table is advisable will it cut down the CPU cost is any overheads there for using IOT
    please respond
    regards
    naveen

    I think you are deviating from the real problem.
    I'm also in Telecom domain and what you are talking about is what is called "most matching" algorithm.
    Practically suppose that party A calls party B and you want to know which is the tariff to apply.
    Usually tariff tables are based on this "most matching" criteria where the correct tariff is the most matching with the called number.
    Let me give you an example.
    Suppose that I have a tariff table in this way:
    WITH mytariff AS
       SELECT '90123' destination, 1.5 tariff_per_min FROM DUAL UNION ALL
       SELECT '9012'  destination, 1.6 tariff_per_min FROM DUAL UNION ALL
       SELECT '901'   destination, 1.7 tariff_per_min FROM DUAL UNION ALL
       SELECT '90'    destination, 1.8 tariff_per_min FROM DUAL UNION ALL
       SELECT '55123' destination, 1.0 tariff_per_min FROM DUAL UNION ALL
       SELECT '5512'  destination, 1.1 tariff_per_min FROM DUAL UNION ALL
       SELECT '551'   destination, 1.2 tariff_per_min FROM DUAL UNION ALL
       SELECT '55'    destination, 1.3 tariff_per_min FROM DUAL
    SELECT * FROM mytariff;
    DESTINATION          TARIFF_PER_MIN
    90123                           1.5
    9012                            1.6
    901                             1.7
    90                              1.8
    55123                             1
    5512                            1.1
    551                             1.2
    55                              1.3
    {code}
    Correct me if I'm wrong:
    {code}
    if party A dials 901234567 then it will match destination 90123 and tariff_per_min 1.5
    if party A dials 901244567 then it will match destination 9012  and tariff_per_min 1.6
    if party A dials 901344567 then it will match destination 901   and tariff_per_min 1.6
    if party A dials 551244567 then it will match destination 5512  and tariff_per_min 1.1
    etc.
    {code}
    Confirm if this is your criteria in finding the tariff.
    The billing/rating systems I know usually store this information in database tables but the rating engine (generally a c++ program in Unix) is normally reading this information once, putting them in memory and rating the calls by reading information in memory.
    I'm not saying that this is the only approach but it seems the most used.
    In your case, It looks that you are using to do the same thing SQL or PL/SQL and definitely I understand that applying this algorithm by reading the tariff table for each call records is going to affect your performances heavily.
    I have a couple of questions for your:
    1) Are you using a SQL statement or a PL/SQL procedure to rate your calls?
    2) Could you show us how you assign the tariff to your calls?
    I don't think using IOT will solve your problem. IOT has the advantage to read the data together with the index and it is suitable especially if you read your data always with a certain key.
    If your data about tariff is static, or doesn't change so often, which I suppose it the case, you could consider a different approach like loading them in a collection in PL/SQL and them retrieving them from collection. It might not be the optimal solution but it is worth considering it.
    In order to evaluate your problem please give the details mentioned above.
    Regards.
    Al                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • What is document date? When will you use it?in A/R invoice  in SAP B1

    Hi
    I would like to know the meaning of document date for A/R invoice  in sap b1.
    when will u use? and How will u use it?
    I know Posting Date is date when u add invoice
    Due Date is a last date that customer have to pay you.
    But I don't know document date.
    I know only it use to caculate in payment terms.
    Does document date in A/R invoice use when u closing-Period?
    Please guide it to me.
    Thank U
    Theerawat

    Hi Theerawat,
    You may check these threads first:
    Document Date
    Posting / Due / Document date trouble
    Re: Posting Date
    Re: Difference between posting & system date in Inventory Audit Report
    Thanks,
    Gordon

  • When will we use inner class

    hi
    when will we use inner class?

    JosAH basically already wrote this, but another way
    to say the same thing is this. If you are writing a
    class and you find it would be handy to have another
    class for that class to use, you can either write a
    separate class for each, or you can embed one in the
    other, making it an inner class. One advantage of an
    inner class is that you can meet a set of
    specifications by not having an extra class. It also
    makes more sense to have an inner class if it's
    something that's not useful on its own.I think it is the second most important advantage of inner class
    (First is: you can access the private members of the outer class)

  • Query plan changes when query is used in CREATE TABLE AS

    We've puzzled by the fact that EXPLAIN PLAN gives a much different output for a SELECT statement than it does when the same statement is used for CREATE TABLE . . . AS SELECT.
    The bad part is that the CREATE TABLE version performs very badly, and that's what we want the query for.
    Why does this happen? Is there a difference (from the database's point of view) between retrieving a set of rows to display to the user and putting that same set into a new table? Doesn't this make it harder to diagnose and fix query performance problems?
    Here's our query:
    create table query_test AS
    select term, parentTerm, apidb.tab_to_string(cast(collect(trim(to_char(internal)))
                       as apidb.varchartab), ', ') as internal
                 from (
                     select distinct ga.organism as term,
                                     ga.species as parentTerm,
                                     tn.taxon_id as internal
                     from apidb.GeneAttributes ga, SRES.TaxonName tn, sres.Taxon t,
                          dots.AaSequence aas, dots.SecondaryStructure ss
                     where ga.organism = tn.name
               and tn.taxon_id = t.taxon_id
                       and t.taxon_id = aas.taxon_id
       and aas.aa_sequence_id = ss.aa_sequence_id
               and t.rank != 'species'
               union
                     select distinct ga.species as term,
                       '' as parentTerm,
                                     ts.taxon_id as internal
                     from apidb.GeneAttributes ga, SRES.TaxonName tn, apidb.taxonSpecies ts,
                          dots.aasequence aas, dots.SecondaryStructure ss
                     where ga.organism = tn.name
                      and tn.taxon_id = ts.taxon_id
                      and ts.taxon_id = aas.taxon_id
                     and aas.aa_sequence_id = ss.aa_sequence_id
       group by term,parentTerm;Without the CREATE TABLE, the plan looks like this:
    | Id  | Operation                             | Name                      | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
    |   0 | CREATE TABLE STATEMENT                |                           |  2911 |  5986K|       | 18840   (1)| 00:03:47 |
    |   1 |  LOAD AS SELECT                       | QUERY_TEST                |       |       |       |            |          |
    |   2 |   VIEW                                |                           |  2911 |  5986K|       | 18669   (1)| 00:03:45 |
    |   3 |    SORT GROUP BY                      |                           |  2911 |   332K|       | 18660   (1)| 00:03:44 |
    |   4 |     VIEW                              |                           |  2911 |   332K|       | 18659   (1)| 00:03:44 |
    |   5 |      SORT UNIQUE                      |                           |  2911 |   292K|       | 18659   (6)| 00:03:44 |
    |   6 |       UNION-ALL                       |                           |       |       |       |            |          |
    |*  7 |        HASH JOIN                      |                           |  2907 |   292K|  2160K| 17762   (1)| 00:03:34 |
    |   8 |         TABLE ACCESS FULL             | GENEATTRIBUTES10650       | 40957 |  1679K|       |   795   (1)| 00:00:10 |
    |*  9 |         HASH JOIN                     |                           | 53794 |  3204K|  1552K| 16675   (1)| 00:03:21 |
    |* 10 |          HASH JOIN                    |                           | 37802 |  1107K|       | 12326   (1)| 00:02:28 |
    |* 11 |           HASH JOIN                   |                           | 37945 |   629K|       | 10874   (1)| 00:02:11 |
    |  12 |            INDEX FAST FULL SCAN       | SECONDARYSTRUCTURE_REVIX9 | 37945 |   222K|       |    33   (0)| 00:00:01 |
    |  13 |            INDEX FAST FULL SCAN       | AASEQUENCEIMP_REVIX6      |  7886K|    82M|       | 10816   (1)| 00:02:10 |
    |* 14 |           TABLE ACCESS FULL           | TAXON                     |   514K|  6530K|       |  1450   (1)| 00:00:18 |
    |  15 |          TABLE ACCESS FULL            | TAXONNAME                 |   760K|    22M|       |  2721   (1)| 00:00:33 |
    |* 16 |        HASH JOIN                      |                           |     4 |   380 |       |   886   (1)| 00:00:11 |
    |  17 |         NESTED LOOPS                  |                           |   730 | 64970 |       |   852   (1)| 00:00:11 |
    |* 18 |          HASH JOIN                    |                           |     1 |    78 |       |   847   (1)| 00:00:11 |
    |  19 |           NESTED LOOPS                |                           |       |       |       |            |          |
    |  20 |            NESTED LOOPS               |                           |    17 |   612 |       |    51   (0)| 00:00:01 |
    |  21 |             TABLE ACCESS FULL         | TAXONSPECIES10646         |    12 |    60 |       |     3   (0)| 00:00:01 |
    |* 22 |             INDEX RANGE SCAN          | TAXONNAME_IND01           |     1 |       |       |     2   (0)| 00:00:01 |
    |  23 |            TABLE ACCESS BY INDEX ROWID| TAXONNAME                 |     1 |    31 |       |     4   (0)| 00:00:01 |
    |  24 |           TABLE ACCESS FULL           | GENEATTRIBUTES10650       | 40957 |  1679K|       |   795   (1)| 00:00:10 |
    |* 25 |          INDEX RANGE SCAN             | AASEQUENCEIMP_REVIX6      |   768 |  8448 |       |     5   (0)| 00:00:01 |
    |  26 |         INDEX FAST FULL SCAN          | SECONDARYSTRUCTURE_REVIX9 | 37945 |   222K|       |    33   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       7 - access("GA"."ORGANISM"="TN"."NAME")
       9 - access("TN"."TAXON_ID"="T"."TAXON_ID")
      10 - access("T"."TAXON_ID"="TAXON_ID")
      11 - access("AA_SEQUENCE_ID"="SS"."AA_SEQUENCE_ID")
      14 - filter("T"."RANK"<>'species')
      16 - access("AA_SEQUENCE_ID"="SS"."AA_SEQUENCE_ID")
      18 - access("GA"."ORGANISM"="TN"."NAME")
      22 - access("TN"."TAXON_ID"="TS"."TAXON_ID")
      25 - access("TS"."TAXON_ID"="TAXON_ID")
    46 rows selected.With the CREATE TABLE, the plan for the SELECT alone looks like this:
    | Id  | Operation                           | Name                      | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT                    |                           |     2 |   234 |  1786   (1)| 00:00:22 |
    |   1 |  SORT GROUP BY                      |                           |     2 |   234 |  1786   (1)| 00:00:22 |
    |   2 |   VIEW                              |                           |     2 |   234 |  1785   (1)| 00:00:22 |
    |   3 |    SORT UNIQUE                      |                           |     2 |   198 |  1785  (48)| 00:00:22 |
    |   4 |     UNION-ALL                       |                           |       |       |            |          |
    |*  5 |      HASH JOIN                      |                           |     1 |   103 |   949   (1)| 00:00:12 |
    |   6 |       NESTED LOOPS                  |                           |   199 | 19303 |   915   (1)| 00:00:11 |
    |   7 |        NESTED LOOPS                 |                           |    13 |  1118 |   850   (1)| 00:00:11 |
    |   8 |         NESTED LOOPS                |                           |    13 |   949 |   824   (1)| 00:00:10 |
    |   9 |          VIEW                       | VW_DTP_E387155E           |    13 |   546 |   797   (1)| 00:00:10 |
    |  10 |           HASH UNIQUE               |                           |    13 |   546 |   797   (1)| 00:00:10 |
    |  11 |            TABLE ACCESS FULL        | GENEATTRIBUTES10650       | 40957 |  1679K|   795   (1)| 00:00:10 |
    |  12 |          TABLE ACCESS BY INDEX ROWID| TAXONNAME                 |     1 |    31 |     3   (0)| 00:00:01 |
    |* 13 |           INDEX RANGE SCAN          | TAXONNAME_IND02           |     1 |       |     2   (0)| 00:00:01 |
    |* 14 |         TABLE ACCESS BY INDEX ROWID | TAXON                     |     1 |    13 |     2   (0)| 00:00:01 |
    |* 15 |          INDEX UNIQUE SCAN          | PK_TAXON                  |     1 |       |     1   (0)| 00:00:01 |
    |* 16 |        INDEX RANGE SCAN             | AASEQUENCEIMP_REVIX6      |    15 |   165 |     5   (0)| 00:00:01 |
    |  17 |       INDEX FAST FULL SCAN          | SECONDARYSTRUCTURE_REVIX9 | 37945 |   222K|    33   (0)| 00:00:01 |
    |  18 |      NESTED LOOPS                   |                           |     1 |    95 |   834   (1)| 00:00:11 |
    |  19 |       NESTED LOOPS                  |                           |     1 |    89 |   833   (1)| 00:00:10 |
    |* 20 |        HASH JOIN                    |                           |     1 |    78 |   828   (1)| 00:00:10 |
    |  21 |         NESTED LOOPS                |                           |       |       |            |          |
    |  22 |          NESTED LOOPS               |                           |    13 |   949 |   824   (1)| 00:00:10 |
    |  23 |           VIEW                      | VW_DTP_2AAE9FCE           |    13 |   546 |   797   (1)| 00:00:10 |
    |  24 |            HASH UNIQUE              |                           |    13 |   546 |   797   (1)| 00:00:10 |
    |  25 |             TABLE ACCESS FULL       | GENEATTRIBUTES10650       | 40957 |  1679K|   795   (1)| 00:00:10 |
    |* 26 |           INDEX RANGE SCAN          | TAXONNAME_IND02           |     1 |       |     2   (0)| 00:00:01 |
    |  27 |          TABLE ACCESS BY INDEX ROWID| TAXONNAME                 |     1 |    31 |     3   (0)| 00:00:01 |
    |  28 |         TABLE ACCESS FULL           | TAXONSPECIES10646         |    12 |    60 |     3   (0)| 00:00:01 |
    |* 29 |        INDEX RANGE SCAN             | AASEQUENCEIMP_REVIX6      |   768 |  8448 |     5   (0)| 00:00:01 |
    |* 30 |       INDEX RANGE SCAN              | SECONDARYSTRUCTURE_REVIX9 |     1 |     6 |     1   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       5 - access("AA_SEQUENCE_ID"="SS"."AA_SEQUENCE_ID")
      13 - access("ITEM_1"="TN"."NAME")
      14 - filter("T"."RANK"<>'species')
      15 - access("TN"."TAXON_ID"="T"."TAXON_ID")
      16 - access("T"."TAXON_ID"="TAXON_ID")
      20 - access("TN"."TAXON_ID"="TS"."TAXON_ID")
      26 - access("ITEM_1"="TN"."NAME")
      29 - access("TS"."TAXON_ID"="TAXON_ID")
      30 - access("AA_SEQUENCE_ID"="SS"."AA_SEQUENCE_ID")
    50 rows selected.Edited by: JohnI on Jul 18, 2011 2:19 PM
    Edited by: JohnI on Jul 18, 2011 2:28 PM

    Charles Hooper wrote a series of blog entries on a similar topic some time ago: http://hoopercharles.wordpress.com/2010/12/15/select-statement-is-fast-insert-into-using-the-select-statement-is-brutally-slow-1/ (including a lot of useful comments) and two following articles. I have to confess that I did not read the posts again - but I think you will find some good ideas how to analyze the problem.
    Regards
    Martin Preiss

  • How can I use Indexed Temp tables to optimize performance?

    Instead of joining two CTEs together, I am now going to attempt to join two indexed temp tables. 
    The first temp table is a number of encounters that returns 147 rows in 2 seconds. The second temp table
    is progress notes for all those encounters returning 136 rows in 18 seconds. Joining the indexed views comes back at 3 1/2 minutes.
    What can I do to optimize performance?
    Code is below. Thanks in advance!
    if object_id('tempdb..#arpb') is not null begin drop table #arpb end;
    if object_id('tempdb..#progress_notes') is not null begin drop table #progress_notes end;
    SELECT DISTINCT
    ARPB.PAT_ENC_CSN_ID, ARPB.SERVICE_DATE, ARPB.BILLING_PROV_ID, ARPB.DEPARTMENT_ID,
    SER.PROV_NAME, DEP.DEPARTMENT_NAME, E.APPT_TIME, ZC_APPT.NAME AS APPT_STATUS
    INTO #arpb
    FROM ARPB_TRANSACTIONS ARPB
    LEFT OUTER JOIN CLARITY_SER AS SER ON SER.PROV_ID = ARPB.BILLING_PROV_ID
    LEFT OUTER JOIN CLARITY_DEP AS DEP ON DEP.DEPARTMENT_ID = ARPB.DEPARTMENT_ID
    LEFT OUTER JOIN PAT_ENC AS E ON E.PAT_ENC_CSN_ID = ARPB.PAT_ENC_CSN_ID
    LEFT OUTER JOIN ZC_APPT_STATUS AS ZC_APPT ON ZC_APPT.APPT_STATUS_C = E.APPT_STATUS_C
    WHERE ARPB.DEPARTMENT_ID = xxxx
    AND ARPB.TX_TYPE_C = 1
    AND ARPB.VOID_DATE IS NULL
    AND ARPB.BILLING_PROV_ID = xxxx
    AND ARPB.SERVICE_DATE BETWEEN
    'xxxx' AND 'xxxxx'
    create clustered index idx_temp_arpb on #arpb(PAT_ENC_CSN_ID)
    SELECT DISTINCT
    ARPB.PAT_ENC_CSN_ID,
    ZCNT.NAME AS NOTE_TYPE, PR.NAME AS PURPOSE, HNO_INFO.NOTE_ID,
    EMP.NAME AS EMP_NAME, STS.NAME AS NOTE_STATUS
    INTO #progress_notes
    FROM ARPB_TRANSACTIONS ARPB
    LEFT OUTER JOIN ENC_NOTE_INFO AS ENC_NOTE_INFO ON ARPB.PAT_ENC_CSN_ID = ENC_NOTE_INFO.PAT_ENC_CSN_ID
    LEFT OUTER JOIN HNO_INFO AS HNO_INFO ON ENC_NOTE_INFO.ENCOUNTER_NOTE_ID = HNO_INFO.NOTE_ID
    LEFT OUTER JOIN ZC_NOTE_TYPE AS ZCNT ON ZCNT.NOTE_TYPE_C = ENC_NOTE_INFO.NOTE_TYPE_C
    LEFT OUTER JOIN ZC_NOTE_PURPOSE AS PR ON PR.NOTE_PURPOSE_C = HNO_INFO.NOTE_PURPOSE_C
    LEFT OUTER JOIN CLARITY_EMP AS EMP ON EMP.EPIC_EMP_ID = HNO_INFO.CURRENT_AUTHOR_ID
    LEFT OUTER JOIN ZC_NOTE_STATUS AS STS ON STS.NOTE_STATUS_C = ENC_NOTE_INFO.NOTE_STATUS_C
    WHERE ARPB.DEPARTMENT_ID = xxxx
    AND ARPB.TX_TYPE_C = 1
    AND ARPB.VOID_DATE IS NULL
    AND ARPB.BILLING_PROV_ID = xxxx
    AND ZCNT.NAME = 'xxxx'
    AND ARPB.SERVICE_DATE BETWEEN
    'xxxx' AND 'xxxx'
    AND PR.NAME = 'xxxxx'
    create index idx_temp_pn on #progress_notes(PAT_ENC_CSN_ID)
    SELECT
    #arpb.PAT_ENC_CSN_ID,
    #arpb.APPT_TIME,
    #arpb.SERVICE_DATE,
    #arpb.BILLING_PROV_ID,
    #arpb.PROV_NAME,
    #arpb.DEPARTMENT_ID,
    #arpb.DEPARTMENT_NAME,
    #progress_notes.EMP_NAME as NoteEmp,
    CASE #progress_notes.NOTE_ID
    WHEN null THEN 'No Progress Note'
    ELSE #progress_notes.NOTE_ID
    END as NoteId,
    #progress_notes.NOTE_STATUS,
    #progress_notes.NOTE_TYPE,
    #progress_notes.PURPOSE
    FROM #ARPB
    LEFT JOIN #PROGRESS_NOTES ON #ARPB.PAT_ENC_CSN_ID = #PROGRESS_NOTES.PAT_ENC_CSN_ID
    To err is human, to REALLY foul things up requires a computer

    Something is not right here. What is the type of that column in both temp tables?
    I would assume that joining 147 and 136 rows should be done in less than 1 sec. even without indexes.
    How did you measure the time?
    BTW, I suggest to use aliases in your last query - it will be easier to read. Also use COALESCE function instead of CASE for the Note_ID (BTW, is Note_ID a character column - otherwise you supposed to get an error).
    For every expert, there is an equal and opposite expert. - Becker's Law
    My blog
    My TechNet articles

  • Having a problem with commandButton attribute when i am using it under tabl

    Having a problem with {color:#800000}commandButton {color}{color:#339966}attribute {color}when i am using it under{color:#ff0000} table{color}
    I am using a command button under a table.
    here is the example
    <h:dataTable value="#{wlmHandler.plexes.plexes}" var="{color:#ff0000}onePlex{color}" border="0" cellspacing="0" cellpadding="0" width="100%" border="0">
    <h:column>
    <h:panelGrid border="0" cellpadding="0" cellspacing="0" columns="5">
    <h:commandButton action="" styleClass="tixbutton" value="#{labels.ADD}" onclick="#{onePlex.tran}"/>
    <f:verbatim> </f:verbatim>
    <h:commandButton action="#{createTransaction.transactionCommand}" styleClass="tixbutton"
    value="#{labels.SUBMIT}" actionListener="#{createTransaction.processAction}">
    <f:attribute name="dbName" value="#{wlmHandler.dbName}"/>
    <f:attribute name="plexName" value="{color:#ff9900}#{onePlex.name}"{color}/>
    </h:commandButton>
    </h:panelGrid>
    <h:/column>
    </h:dataTable >
    when i am using this plex name atribute it is giving nullPointerException
    {color:#ff9900}this value #{onePlex.name} i cant able to access inside the command button{color}

    balu i have tried by seeing u r blog.
    this is my structure of tables
    plexes (if i iterate plexes table gives plex object)
    |
    ------ plex (plex table gives transaction object)
    |
    ------transactions(transactions table gives transaction table)
    |
    here i will have a command link to this link i have to pass the plex name which
    will come from
    i tried in this command action with HTMLDataTable getRowData()
    i am not getting the selected row data .i am downcasting this getRowData() to plex.

  • When will Excel Support Tabular Model Table and Column Descriptions via Tool Tip or other display mechanism

    I have noticed that SSMS supports tool tips for the Tabular Model (tables and columns) however Excel 2013 doesn't appear to.   This is a very important feature to our end users.
    Does anyone know when this will be supported?
    Thanks
    M Meyer

    Hi Meyer,
    According to your description, you want to use the tooltip function in Microsoft Excel for the SQL Server Analysis Services Tabular model, right?
    I have tested it on my local environment (Microsoft SQL Server 2012 SP1 and Excel 2013), the result is that the feature is not supported currently. It's hard to say the detail date when this will be supported. If this feature is enabled, Microsoft will announce
    it on the document.
    Besides, if you have any concern about this behavior, you can submit a feedback at
    http://connect.microsoft.com/SQLServer/Feedback and hope it is resolved in the next release of service pack or product. Your feedback enables Microsoft to make software and services the best that
    they can be, Microsoft might consider to add this feature in the following release after official confirmation.
    Regards,
    Charlie Liao
    TechNet Community Support

  • What Strategies are there for updating a table when you're using a multi-table view to display it.

    I'm using a view and am able to create a grid that allows editing of one of the columns. Let's call the table where the column is updated "DepartmentFeeDetail." The view has several joins but up till now the column was editable.
    Today I needed to join DepartmentFeeDetail with itself to pick up the debit side of a debit/credit pair. I want to show the gl account number for both
    the debit and credit on the same row. I also need to update the value for both debit and credit.
    I can no longer edit the column to no surprise. When updating using MSSQLMS I get the following error:
    View or function 'MyTestView' is not updatable because the modification affects multiple base tables.
    What should my strategy be in lightswitch? The grid is populated by a query that includes my lynq expressions in DepartmentFeeRateQuery_PreprocessQuery. The query may return 1000+ rows. I need to allow the accountant to edit either a single row's column
    or enter a value in a field outside the grid and click a button "Apply fee rate to entire page."
    All this was working fine until the requirement to show the debit side gl account number and to change the debit side value somehow.
    I've tried adding a property to DepartmentFeeDetail but the "Is Computed" property wouldn't allow me to uncheck it. Is there a way to add an editable property for each grid row and initialize it to the
    current value of the column returned by the view? I could then update a collection when one of the fields changes. If they change the global value and press "Apply fee rate to entire page"
    I can update the collection as well.
    Scott Mitchell

    What I do is instead of using a View I use a updatable
    WCF RIA Service.
    This is an example of an updateable method:
    public void UpdateQuestionDetailForUser(QuestionDetailForUser objQuestionDetailForUser)
    // Get the current user
    string strCurrentUserName = System.Web.HttpContext.Current.User.Identity.Name;
    // We are under Forms Authentication so if user is blank then we
    // are debugging and we are TestUser
    if (strCurrentUserName == "")
    strCurrentUserName = "TestUser";
    // Check for an existing Answer for this Question for this User
    var objSurveyAnswer = (from SurveyAnswers in this.Context.SurveyAnswers
    where SurveyAnswers.SurveyQuestion.Id == objQuestionDetailForUser.QuestionId
    where SurveyAnswers.UserName == strCurrentUserName
    select SurveyAnswers).FirstOrDefault();
    if (objSurveyAnswer != null)
    try // This is an update ****
    // Set values
    objSurveyAnswer.Choice = Convert.ToInt32(objQuestionDetailForUser.SelectedChoice);
    objSurveyAnswer.Comment = objQuestionDetailForUser.Comments;
    // Update LightSwitch Database
    this.Context.SaveChanges(
    System.Data.Objects.SaveOptions.DetectChangesBeforeSave);
    catch (Exception ex)
    throw new Exception("Error inserting QuestionId " + objQuestionDetailForUser.QuestionId, ex);
    else // This is an Insert ****
    // Query the GetAllQuestionsForUser method because it calculates if a Question
    // is Active or not for the QuestionId being inserted
    // If it is not in the collection, do not allow the insert
    var objUserQuestion = (from QuestionForUser in this.GetAllQuestionsForUser()
    where QuestionForUser.UserName == strCurrentUserName
    where QuestionForUser.QuestionId == objQuestionDetailForUser.QuestionId
    select QuestionForUser).FirstOrDefault();
    if (objUserQuestion != null)
    try
    // Get the Survey Question
    var objSurveyQuestion = (from SurveyQuestions in this.Context.SurveyQuestions
    where SurveyQuestions.Id == objQuestionDetailForUser.QuestionId
    select SurveyQuestions).FirstOrDefault();
    // Create a SurveyAnswer object
    SurveyAnswer objNewSurveyAnswer = this.Context.CreateObject<SurveyAnswer>();
    // Set values
    objNewSurveyAnswer.UserName = strCurrentUserName;
    objNewSurveyAnswer.Choice = Convert.ToInt32(objQuestionDetailForUser.SelectedChoice);
    objNewSurveyAnswer.Comment = objQuestionDetailForUser.Comments;
    objNewSurveyAnswer.SurveyQuestion = objSurveyQuestion;
    // Update LightSwitch Database
    this.Context.SurveyAnswers.AddObject(objNewSurveyAnswer);
    this.Context.SaveChanges(
    System.Data.Objects.SaveOptions.DetectChangesBeforeSave);
    catch (Exception ex)
    throw new Exception("Error inserting QuestionId " + objQuestionDetailForUser.QuestionId, ex);
    else
    throw new Exception("Error inserting Answer. Answer is not marked Active.");
    Unleash the Power - Get the LightSwitch 2013 HTML Client / SharePoint 2013 book
    http://LightSwitchHelpWebsite.com

  • When we are using Event pooling tables explicitly we have insert data into

    hi all
    i have read about event pooling table,
    if we implement event pooling tables then explicitly we have insert table information (like product_dim) in event pooling table explicitly
    suppose i have updated more then 5 tables in my database that time i have to enter(insert) 5 table information in event pooling table(Tables_nq_emt) in the back end
    if so then what is the use of event pooling table???
    this is event pooling table i have crated in back end
    CREATE TABLE S_NQ_EPT (
    UPDATE_TYPE DECIMAL(10,0) DEFAULT 1 NOT NULL,
    UPDATE_TS DATE DEFAULT SYSDATE NOT NULL,
    DATABASE_NAME VARCHAR2(120) NULL,
    CATALOG_NAME VARCHAR2(120) NULL,
    SCHEMA_NAME VARCHAR2(120) NULL,
    TABLE_NAME VARCHAR2(120) NOT NULL,
    OTHER_RESERVED VARCHAR2(120) DEFAULT NULL NULL
    Thanks

    Hi,
    IF you are using event pooling then you should make use of triggres in database.Create a trigger 'after insert' on some major table which you think is gonna update after every etl load.As soon as some data is inserted into this table trigger will automatically insert a record in event pooling table and cache will be purged.I am not sure about the syntax of triggers.Please google it around.
    If you are trying to purge cache through oDBC procdure then you need to create a shell script and based on whether ETL load has completed ,you need to execute this script.
    regards,
    Sandeep

  • Q: General : When will you use Web Service as opposed to just Servlet and/or EJB?

    Hi,
    I don't know if this is an appropriate question to ask for this class as it's not
    workshop
    specific. I was wondering how will I decide when it is appropriate to use a web
    service as opposed to say servlet or an EJB for my application? What is a good
    rationale to use?
    Thanks,
    Sadhana

    Hi Adam,
    Thanks a lot for giving such a lucid explanation of my vague question!
    I understand now the difference between when to use EJBs/Servlets/Web Services.
    Thanks again!
    Sadhana
    "Adam FitzGerald" <[email protected]> wrote:
    >
    Hi Sadhana,
    Web service versus Servlet versus EJB. Which one to use? That is a very
    good question.
    EJBs should be the core desription and processing of your business rules.
    They generally
    have good performance, are easy to integrate into your security set up but
    they require
    access using the RMI-IIOP protocol. This means that generally EJBs are not
    accessible
    outside of your firewall and their clients have to be written in Java (other
    enterprise
    objects or applets or GUI applications).
    Servlets often form a web-based front end to EJBs. They also have good performance,
    integrate into security and only require HTTP access. This means they are
    accessible
    outside your firewall and any client with a HTTP or web API can call on
    them, however,
    there is no standard contract or rules for this type of interaction so you
    will need
    provide direct input into development of the client.
    Web services are also accessible via HTTP and so can be accessed from outside
    your
    firewall. In fact, Web services internally within Workshop and WebLogic
    actually
    operate by using servlets and EJBs but the main advantage is that the mechanism/contract
    for interacting with the web service is a well defined standard (WSDL) and
    can actually
    be registered or retreived dynamically (UDDI). Since web service standards
    are open,
    most popular programming languages already provide client APIs to interact
    with them
    thus freeing the web service developer from direct interaction with the
    client developer
    and letting the client be developed on any platform. The penalty for this
    openness
    is a small performance hit (XML translation) and a slowly maturing security
    model.
    So in summary, use EJBs for business operations that have Java clients within
    your
    enterprise, use servlets to provide web style access to your business operations
    (like web pages) and use web services to enable automated clients that can
    be written
    on any platform either inside or outside your enterprise (firewall). In
    fact, it
    is common to write the EJB first and then to expose some parts of it outside
    of your
    enterprise by writing a web service wrapper (maybe using the EJB controls
    that we
    saw in class).
    I hope this helps.
    Adam
    "Sadhana Jain" <[email protected]> wrote:
    Hi,
    I don't know if this is an appropriate question to ask for this class as
    it's not
    workshop
    specific. I was wondering how will I decide when it is appropriate to use
    a web
    service as opposed to say servlet or an EJB for my application? What is
    a good
    rationale to use?
    Thanks,
    Sadhana

  • Error When try to use rowid with table alias

    I tried to use table alias to test functions of rules manager and met the following problems.
    1. I clone tables employees and departments from HR schema.
    2. create event_struct as following:
    BEGIN
    dbms_rlmgr.create_event_struct(event_struct => 't_a');
    dbms_rlmgr.add_elementary_attribute(event_struct => 't_a',
    attr_name => 'a_employees',
    tab_alias => exf$table_alias('employees'));
    dbms_rlmgr.add_elementary_attribute(event_struct => 't_a',
    attr_name => 'a_departments',
    tab_alias => exf$table_alias('departments'));
    END;
    3. create rule class as following:
    BEGIN
    dbms_rlmgr.create_rule_class(rule_class => 't_as',
    event_struct => 't_a',
    action_cbk => 't_acb',
    rslt_viewnm => 't_arv');
    END;
    4. after adding a rule to the rule class, I try to test as the following
    DECLARE
    r_emp ROWID;
    r_dept ROWID;
    CURSOR a_cur IS
    SELECT emp.ROWID, dept.ROWID
    FROM employees emp, departments dept
    WHERE emp.department_id = dept.department_id;
    i NUMBER := 1;
    BEGIN
    OPEN a_cur;
    LOOP
    FETCH a_cur
    INTO r_emp, r_dept;
    EXIT WHEN a_cur%NOTFOUND;
    dbms_output.put_line(i);
    i := i + 1;
    dbms_output.put_line(r_emp);
    dbms_rlmgr.add_event(rule_class => 't_alia',
    event_inst => r_emp,
    event_type => 'employees');
    dbms_rlmgr.add_event(rule_class => 't_alia',
    event_inst => r_dept,
    event_type => 'departments');
    END LOOP;
    END;
    But I got the following error
    SQL> DECLARE
    2 r_emp ROWID;
    3 r_dept ROWID;
    4 CURSOR a_cur IS
    5 SELECT emp.ROWID, dept.ROWID
    6 FROM employees emp, departments dept
    7 WHERE emp.department_id = dept.department_id;
    8 i NUMBER := 1;
    9 BEGIN
    10 OPEN a_cur;
    11 LOOP
    12 FETCH a_cur
    13 INTO r_emp, r_dept;
    14 EXIT WHEN a_cur%NOTFOUND;
    15 dbms_output.put_line(i);
    16 i := i + 1;
    17 dbms_output.put_line(r_emp);
    18 dbms_rlmgr.add_event(rule_class => 't_alia',
    19 event_inst => r_emp,
    20 event_type => 'employees');
    21 dbms_rlmgr.add_event(rule_class => 't_alia',
    22 event_inst => r_dept,
    23 event_type => 'departments');
    24 END LOOP;
    25 END;
    26 /
    DECLARE
    ERROR at line 1:
    ORA-06550: line 1, column 36:
    PLS-00201: identifier 'AAAVN9AAEAAAQH8AAA' must be declared
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    ORA-06512: at "EXFSYS.DBMS_RLMGR", line 974
    ORA-06512: at line 18

    Hello,
    Rowids for the individual tables can be added as events only if the rule class is configured as a Composite one. For all other cases, rowids are treated just as data and they should be formatted as string of name-value pairs or instances of AnyData. Your script suggests that you intended to create a composite rule class so that you could add rowids individually. Please recreate the rule class as composite and try again. The error message you received is incorrect and has been fixed to indicate that the error is with the format of the data item passed in.
    Hope this helps,
    -Aravind.

  • When will UniverseDesigner support SAP ERP Tables,InfoSets and ABAP Func. ?

    Hi there,
    to the SAP guys in this Forum to keep the rumour mill running: is it planned to extend the connectivity of the Universe Designer to access to SAP ERP Tables, Infosets and ABAP Functions ?! Is there any date when this will happen ?!
    Thanks,
    Sebastian
    Edited by: smenzl on Apr 15, 2010 9:08 AM

    Hi,
    if you need an official statement i would recommend you open a SAP OSS Message for that.
    Regards
    -Seb.

  • When will I use object locking by User ID report?

    Hello,
    I am using EP7 SP9.
    I would like to see all the locked users at the portal.
    The problem is that even that there are locked users (I can locate them individually using the UME), the object locking report doesn't show them when I search by User ID.
    I know I can search it at the UME advanced search, so what the object locking by User ID is used for?

    Hi,
    You can view all the locked objects in your portal under System Administration>>Monitoring. Under the Portal tree node, click on the Object Locking. You can enter the search criteria to UserId and perform the search operation.
    Regards,
    Sujana

  • When does MaxDB use Index strategy?

    Hello,
    I want to improve the performance of my MaxDB. So I tried to create indexes and now I want to check if these indexes are used or not!
    1st: Is there a possibility to force MaxDB to use the index, if the sql statement consists e.g. LIKE '%N600%'?
    2nd: Exist a list or something else where I can see which sql statements in MaxDB dont support index strategy?
    Thx for help and kind regards,
    Frank

    Hello Frank,
    A1: You could force MaxDB to use an index - but this wouldn't help much. The index could not be used efficiently with a like condition which starts with %.
    Q2: Please check out the tuning section in the Wiki:
    https://wiki.sdn.sap.com/wiki/x/jRI
    Especially this section might be of interest for you:
    https://wiki.sdn.sap.com/wiki/x/GXE
    In General: if you want to check the execution plan for a specific SQL statement, use the EXPLAIN statement (just add EXPLAIN before the SELECT and execute it in SQLStudio).
    HTH,
    Melanie

Maybe you are looking for

  • Transfers

    how do I transfer content of my itunes library from one account to another on the same computer?

  • Black screen with white flashing line on startup

    ~computer info~ Mac OS X Version 10.6.7 2.66 GHz Intel Core 2 Duo 4GB 1067 MHz DDR3 24 in. Montior Startup disk: Macintosh HD ~Partition info~ FAT32 Windows XP ~issue~ Hello; I've recently encountered a problem with bootcamp that I can't find a solut

  • Japanese text input problem.

    I created a small swing application which has a JTextField. I changed my keyboard input to Japanese(Hiragana) and entered some characters(. ,). They are coming as center aligned (But, they are coming as bottom aligned in notepad.). And I could confir

  • How to run application on comp. with only jre installed?

    Hi guys! I've written an application and somebody wants to use it. I have an applet too but it does not have full functionality and slower. I am running applications from my desktop using shortcut on javaw.exe file located in jdk/bin folder. No probl

  • Can not find item

    Went to upgrade my library. It said I had 429 songs to upgrade for $99.40. Went back a few minutes later and it said I had 429 songs to upgrade for $100.60. Try to upgrade and then received "Can not find item. Try again later" error message. This mor