Version 4.0.0.12 (EA) - functional indexes of a table are listed twice

Hello,
it seems that functional indexes are listed twice if there are two functions within the index columns.....
Example (Content from the indexes tab of the table view):
owner    ....._PK    UNIQUE    VALID    NORMAL    N    NO
NO    ....._UUID 
owner    ....._UI1    UNIQUE    VALID    FUNCTION-BASED NORMAL    N    NO    ENABLED    NO    SYS_NC00016$, SYS_NC00017$, ....._ID, ....._PLAN_ID    SYS_EXTRACT_UTC("....._START")
owner    ....._UI1    UNIQUE    VALID    FUNCTION-BASED NORMAL    N    NO    ENABLED    NO    SYS_NC00016$, SYS_NC00017$, ....._ID, ....._PLAN_ID    SYS_EXTRACT_UTC("....._END")
Both functions are in the same index "....._UI1".
The detail panel shows the same details.

MPf_dba&dataGmbH wrote:
Hello,
it seems that functional indexes are listed twice if there are two functions within the index columns.....
Example (Content from the indexes tab of the table view):
owner    ....._PK    UNIQUE    VALID    NORMAL    N    NO 
NO    ....._UUID  
owner    ....._UI1    UNIQUE    VALID    FUNCTION-BASED NORMAL    N    NO    ENABLED    NO    SYS_NC00016$, SYS_NC00017$, ....._ID, ....._PLAN_ID    SYS_EXTRACT_UTC("....._START")
owner    ....._UI1    UNIQUE    VALID    FUNCTION-BASED NORMAL    N    NO    ENABLED    NO    SYS_NC00016$, SYS_NC00017$, ....._ID, ....._PLAN_ID    SYS_EXTRACT_UTC("....._END")
Both functions are in the same index "....._UI1".
The detail panel shows the same details.
What version of SQL*Developer?
I am using 3.2.20.09 and created 2 function-based indexes on a practice employee table, upper() on both first and last names.  When displaying indexes through the table display using the Indexes tab and through the object navigator using indexes I only see each index once.
On a second pass I created a third composite index with upper on both first and last names and got the results similar to those you describe in both places.  The column names (expression name in the table index pane) were different.

Similar Messages

  • Checking a functional index on a table and its metadata

    Hi,
    I have a functional based normal index (unique) defined on a table which uses a decode function and a combination of the columns of a table.
    Eg : decode (status, 'A', column1 || column 2, column1 || column2 || column3)
    Now my question is, how do we query these functional indexes from the database to see what exactly the function is...
    On the database when I run a query :-
    select from all_indexes where index_name = :index_name,*
    it retrieves the code name of the index stored as ncs$00025 (don't remember the exact value).
    How do I find out what exactly the function is? (from which table)
    and is there any way that I can query the data that has been indexed by this unique index so that I can verify why the unique constraint is being violated in some cases?
    Thanks and Regards,
    Suyash

    how do we query these functional indexes from the database to see what exactly the function is...
    select * from user_ind_expressions

  • Issue with using N'...' values in a where clause against a function index

    We have a table that is defined with non Unicode columns with a UPPER(..) function index on the index column (to allow searching in any alphabetic case)
    e.g.
    create table my_table
    index_column varchar2(20),
    desc_column varchar2(40)
    create index my_table_idx as on my_table(UPPER(index_column));
    there is approx. > 10 million rows in this table
    The issue we have is that when we do the following select
    select index_column, desc_column from my_table
    where upper(index_column) = 'SOME VALUE'; this statement runs in approx 0.03 seconds which is great
    But we also have some statements that run as
    select index_column, desc_column from my_table
    where upper(index_column) = N'SOME VALUE'; notice the N'...' string (unicode) value used. This ends up doing a full table scan (> 5 seconds)
    So... the question is how can i make this select statement passing in a Unicode string value hit this function based UPPER index? Is there anyway?
    I have tried these extra indexes - to no avail
    create index my_table_idx as on my_table(UPPER(CAST(index_column as nvarchar2(20)));
    and
    create index my_table_idx as on my_table(UPPER(COMPOSE(index_column)));
    I assumed Oracle should have done and implicit conversion back to a non unicode string value and then passed that value into the UPPER(...) function index, but it appears as though Oracle isn't recognizing that the column is a different type (varchar2 vs nvarchar2)
    Any help greatly appreciated?

    Horrible amount of irrelevant tags, and the only thing relevant , the four digit version, is of course not mentioned.
    Also the characterset of the database is relevant.
    As far as I know in 11g and higher one no longer needs the N'<string construct>'
    As to implicit conversion
    assume <number_column> = '9'
    Oracle always converts this into
    to_char(<number_column>='9'
    Same applies to your case.
    Try leaving out the N, check whether it works and whether your function based index is used.
    Sybrand Bakker
    Senior Oracle DBA

  • Function Index with Upper

    I am trying to use a function index and am having trouble. I built the index successfully using the syntax:
    CREATE INDEX COUNTRY_INDX1 ON COUNTRY(Upper(country_name));
    Then, I submitted a query such as:
    SELECT * FROM COUNTRY WHERE country_name = 'USA';
    I computed EXPLAIN PLAN and it still does a FULL access of the table. If I do something like Upper(country_name) in the where clause, it still doesn't find the correct index.
    Do I need to form my query differently to use the Function Index I created?
    Thanks so much in advance!!!

    SQL> desc emp
    Name                                      Null?    Type
    EMPNO                                              NUMBER(4)
    ENAME                                              VARCHAR2(10)
    JOB                                                VARCHAR2(9)
    MGR                                                NUMBER(4)
    HIREDATE                                           DATE
    SAL                                                NUMBER(7,2)
    COMM                                               NUMBER(7,2)
    DEPTNO                                             NUMBER(2)
    SQL> create index idx_emp_ename on emp(upper(ename)) ;
    Index created.
    SQL> analyze table emp compute statistics for table for all indexed columns ;
    Table analyzed.
    SQL> exec dbms_stats.set_table_stats(user, 'EMP', numblks => 100000) ;
    PL/SQL procedure successfully completed.
    SQL> set autotrace traceonly
    SQL> select * from emp where upper(ename) = 'A%' ;
    Execution Plan
       0      SELECT STATEMENT Optimizer=CHOOSE (Cost=60 Card=1 Bytes=40)
       1    0   TABLE ACCESS (BY INDEX ROWID) OF 'EMP' (Cost=60 Card=1 Byt
              es=40)
       2    1     INDEX (RANGE SCAN) OF 'IDX_EMP_ENAME' (NON-UNIQUE) (Cost
              =2 Card=1)
    SQL>

  • Function based indexes on object tables

    Hi,
    I am trying to create a function based index on an object table. I am getting the following error:
    SQL> create index cell1_indx on cell1(create_cell1(id)) indextype is mdsys.spatial_index;
    create index cell1_indx on cell1(create_cell1(id)) indextype is mdsys.spatial_index
    ERROR at line 1:
    ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
    ORA-13249: internal error in Spatial index: [mdidxrbd]
    ORA-13249: Error in Spatial index: index build failed
    ORA-13249: Stmt-Execute Failure: SELECT num_rows from all_tables where owner='ASHE' and table_name=
    'CELL1'
    ORA-06512: at "MDSYS.SDO_INDEX_METHOD_9I", line 7
    ORA-06512: at line 1
    Here cell1 is an object table.
    Is the procedure for creating function based indexes on object tables different from relational tables?
    Chinni

    One of the many new features in Oracle 8i is the Function-Based Index (we will refrain from using FBI, but only just). This allows the DBA to create indexes on functions or expressions; these functions can be user generated pl/sql functions, standard SQL functions (non-aggregate only) or even a C callout.
    A classic problem the DBA faces in SQL Tuning is how to tune those queries that use function calls in the where clause, and result in indexes created on these columns not to be used.
    Example
    Standard B-Tree index on SURNAME with cost based optimizer
    create index non_fbi on sale_contacts (surname);
    analyze index non_fbi compute statistics;
    analyze table sale_contacts compute statistics;
    SELECT count(*) FROM sale_contacts
    WHERE UPPER(surname) = 'ELLISON';
    Execution Plan
    0 SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=1 Bytes=17)
    1 0 SORT (AGGREGATE)
    2 1 TABLE ACCESS (FULL) OF 'SALES_CONTACTS' (Cost=3 Card=16 Bytes=272)
    Now we use a function based index
    create index fbi on sale_contacts (UPPER(surname));
    analyze index fbi compute statistics;
    analyze table sale_contacts compute statistics;
    SELECT count(*) FROM sale_contacts WHERE UPPER(surname) = 'ELLISON';
    Execution Plan
    0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=1 Bytes=17)
    1 0 SORT (AGGREGATE)
    2 1 INDEX (RANGE SCAN) OF 'FBI' (NON-UNIQUE) (Cost=2 Card=381 Bytes=6477)
    The function-based index has forced the optimizer to use index range scans (retuning zero or more rowids) on the surname column rather than doing a full table scan (non-index lookup). Optimal performance does vary depending on table size, uniqueness and selectivity of columns, use of fast full table scans etc. Therefore try both methods to gain optimal performance in your database.
    It is important to remember that the function-based B*Tree index does not store the expression results in the index but uses an "expression tree". The optimizer performs expression matching by parsing the expression used in the SQL statement and comparing the results against the expression-tree values in the function-based index. This comparison IS case sensitive (ignores spaces) and therefore your function-based index expressions should match expressions used in the SQL statement where clauses.
    Init.ora Parameters
    The following parameter must be set in your parameter file: QUERY_REWRITE_INTEGRITY = TRUSTED
    QUERY_REWRITE_ENABLED = TRUE
    COMPATIBLE = 8.1.0.0.0 (or higher)
    Grants
    Grants To create function-based indexes the user must be granted CREATE INDEX and QUERY REWRITE, or alternatively be granted CREATE ANY INDEX and GLOBAL QUERY REWRITE. The index owner must have EXECUTE access on the function used for the index. If execute access is revoked then the function-based index will be "disabled" (see dba_indexes).
    Disabled Indexes
    If your function-based index has a status of "disabled" the DBA can do one of the following:
    a) drop and create the index (take note of its current settings)
    b) alter index enable, function-based indexes only, also use disable keyword as required
    c) alter index unusable.
    Queries on a DISABLED index fail if the optimizer chooses to use the index.Here is an example ORA error:
    ERROR at line 1: ORA-30554: function-based index MYUSER.FBI is disabled.
    All DML operations on a DISABLED index also fail unless the index is also marked UNUSABLE and the initialization parameter SKIP_UNUSABLE_INDEXES is set to true.
    Some more Examples
    CREATE INDEX expression_ndx
    ON mytable ((mycola + mycolc) * mycolb);
    SELECT mycolc FROM mytable
    WHERE (mycola + mycolc) * mycolb <= 256;
    ..or a composite index..
    CREATE INDEX example_ndx
    ON myexample (mycola, UPPER(mycolb), mycolc);
    SELECT mycolc FROM myexample
    WHERE mycola = 55 AND UPPER(mycolb) = 'JONES';
    Restriction & Rule Summary
    The following restrictions apply to function based indexes. You may not index:
    a) LOB columns
    b) REF
    c) Nested table column
    d) Objects types with any of the above data types.
    Function-based indexes must always follow these rules:
    a) Cost Based optimizer only, must generate statistics after the index is created
    b) Can not store NULL values (function can not return NULL under any circumstance)
    c) If a user defined pl/sql routine is used for the function-based index, and is invalidated, the index will become "disabled"
    d) Functions must be deterministic (always return the same value for a known input)
    e) The index owner must have "execute" access on function used in the function-based index. Revocation of the privilege will render the index "disabled"
    f) May have a B-Tree and Bitmap index type only
    g) Can not use expressions that are based on aggregate functions, ie. SUM, AVG etc.
    h) To alter a function-based index as enabled, the function used must be valid, deterministic and the signature of the function matches the signature of the function when it was created.
    Joel P�rez

  • Downloaded 11.0.3 (42) 64 bit to my MacBook Pro and it crashes every time I select a song a use the 'add to' function to add to a play list. It's never done this before, is it a bug with the new version?

    downloaded 11.0.3 (42) 64 bit to my MacBook Pro and it crashes every time I select a song a use the 'add to' function to add to a play list. It's never done this before, is it a bug with the new version?

    You could just disable updates. Change these settings in about:config.
    * app.update.auto - set to false
    * app.update.enabled - set to false
    You can still check for updates with the "Check for Updates" button in the About Firefox window, but it will download the update file anyway if there is an update available. You can also check which is the current release from here:
    * http://sjc.mozilla.com/en-US/firefox/new/

  • Privilege need to create functional index

    Greeting gurus?
    What privilege I needed for create functional index
    I am writing a definer righted procedure to create index however when creating functional index, it gives me ora-0131 insufficent but unique, bitmap and reverse index works
    and I granted create any index and create any indextype already. what else is missing ?

    CREATE INDEX
    To create a function-based index, in addition to the prerequisites for creating a conventional index, if the index is based on user-defined functions, then those functions must be marked DETERMINISTIC. Also, you must have the EXECUTE object privilege on any user-defined function(s) used in the function-based index if those functions are owned by another user.

  • Export vCard is not working on Chrome; on Chrome Version 40.0.2214.93 m; function works on Mozilaa and IE.

    Export vCard is not working on Chrome; on Chrome Version 40.0.2214.93 m; function works on Mozilaa and IE; is anyone else seeing this same issue?

    Update; my OS is Windows 7 Pro 64-bit v1.08.00.AF B09 SP1.   Same issue reported (by 7 others) at => https://discussions.apple.com/thread/6779059

  • Does the trial version of Lightroom have the full functionality as the paid version

    Does the trial version of Lightroom have the full functionality as the paid version please

    Yes, it has. if you have specific issues, simply explain them.
    Mylenium

  • Maintaining functional index.

    Hi ,
    I have created a functional index on a huge table.the problem is every time
    if function gets updated , index will be disabled and even the select queries will
    fail giving exception.Can there be any effective way of maintaining the index??

    Presumably there is a person modifying the function in the (hopefully) rare case that it needs to be changed. It should be a part of your change control procedures that any modifications to this function means that the index needs to be re-built.
    I may be wrong, but I do not see any way to automatically re-build an index when the function it is based on changes.
    John

  • 9i Standard Ed has "functional index"?

    According to Oracle White Paper "Oracle9i Database Product Family", 9i SE has "functional index" feature. But V$OPTION in a complete 9i SE installation tells otherwise. Anyone knows why?
    Also, "Managed Standby" is not available in 9i SE either.

    Your posting doesn't seem to be related to how to do something in Web Dynpro. This formum isn't intended for all questions about any application that might happen to be implemented in WDA.  If your question is more about how the inner functionality of a business transaction works, there are other forums where you would have a higher chance of receiving a better response.

  • Crash in evaopn2 with functional indexes

    Hi,
    I have a problem with 3rd party application running on oracle 10.2.0.3. When a particular statement is executed, it triggers error in evaopn2.
    As far as I know, there was a bug using functional indexes, but it was supposed to be fixed in 10.2.0.3, right?
    Oracle is running on ubuntu server 7.10. This is the only problem we have so far.
    What should I do?
    Regards
    Jernej
    Trace dump:
    Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr: 0x0, PC: [0x9616d1a, evaopn2()+104]
    Registers:
    %eax: 0x0000013c %ebx: 0x00000000 %ecx: 0xb6db8f6c
    %edx: 0x3afe7144 %edi: 0x00000000 %esi: 0x80000002
    %esp: 0xbffd23f0 %ebp: 0xbffd25b0 %eip: 0x09616d1a
    %efl: 0x00200246
    evaopn2()+86 (0x9616d08) test $0x20800400,%esi
    evaopn2()+92 (0x9616d0e) jnz 0x9616f21
    evaopn2()+98 (0x9616d14) mov %ebx,0xfffffffc(%ebp)
    evaopn2()+101 (0x9616d17) mov 0x28(%edx),%ebx
    evaopn2()+104 (0x9616d1a) mov (%ebx),%esievaopn2()+106 (0x9616d1c) movzw 0x4(%ebx),%edi
    evaopn2()+110 (0x9616d20) mov (%esi,%ecx),%ebx
    evaopn2()+113 (0x9616d23) mov %edi,0xffffffe8(%ebp)
    evaopn2()+116 (0x9616d26) mov %ebx,0xfffffff0(%ebp)
    *** 2008-05-31 01:52:24.592

    What should I do?Contact 3rd party product vendor. An OS exception is thrown in the application, that may be a 3rd party problem, may be an Oracle problem, may be a combination of both. Only the code developers can analyze this.
    Werner

  • Determining Column name involve in Functional Index

    I write this query to know about the existing indexes of all tables pertains to a schema. My problem is when index is functional one, column name is not descriptive, it is like SYS_NC00047$, ..... as yet i could not find the way to know exact column name in the out put of this query. your help is required..
    SELECT index_owner,
             index_name,
             table_owner,
             table_name,
             column_name,
             column_position,
             column_length
        FROM dba_ind_columns
       WHERE index_owner = 'CORE_BUSINESS'
    ORDER BY table_name               ;

    Use DBA_IND_EXPRESSIONS or USER_IND_EXPRESSIONS.
    See this example :
    SQL> drop table X_1 purge;
    Table dropped.
    SQL>  create table X_1 (col_1  varchar2(5), col_2 number);
    Table created.
    SQL> create index X_1_UPPER_COL_1 on X_1(upper(col_1));
    Index created.
    SQL> set long 20000
    SQL> select column_expression from user_ind_expressions
      2  where index_name = 'X_1_UPPER_COL_1';
    COLUMN_EXPRESSION
    UPPER("COL_1")
    SQL>Note : COLUMN_EXPRESSION is a LONG datatype and SET LONG defaults to 80 in SQLPlus, thus it will only show the first 80 characters of the expression unless you SET LONG to a higher value.
    Hemant K Chitale

  • SOA Tablespace PITR - 'Domain/Functional Indexes not supported'

    Hi all,
    Trying to recover tablespaces from a failed 12c upgrade attempt.
    I have multiple backups prior to the upgrade attempt but it seems I can't perform a point in time recovery of the specific tablespaces due to the following:
    MDS & SOAINFRA > Domain/Functional Indexes not supported
    ORASDPM > Object not allowed in Recovery Set
    Has anyone done this? How did you get around it?

    I checked, this index is function_based...
    thank yoiu
    its DDL:
    CREATE INDEX SBSECD1_MDS.MDS_PATHS_N7 ON SBSECD1_MDS.MDS_PATHS
    (PATH_FULLNAME, "PATH_LOW_CN" DESC, PATH_HIGH_CN, PATH_PARTITION_ID)
    LOGGING
    TABLESPACE SBSECD1_MDS
    PCTFREE 10
    INITRANS 2
    MAXTRANS 255
    STORAGE (
    INITIAL 64K
    NEXT 1M
    MINEXTENTS 1
    MAXEXTENTS UNLIMITED
    PCTINCREASE 0
    BUFFER_POOL DEFAULT
    FLASH_CACHE DEFAULT
    CELL_FLASH_CACHE DEFAULT
    NOPARALLEL;

  • Should version 11.1.0 (not the Professional version) have the Test It! functionality?  Thank you.

    Should version 11.1.0 (not the Professional version) have the Test It! functionality?  Thank you.

    Hi-
    Welcome to Discussions!
    You probably need to reinstall or update your USB drivers. Please see the following:
    http://docs.info.apple.com/article.html?artnum=305136
    If you still want to downgrade, you can get previous versions of iTunes here:
    http://www.oldapps.com/itunes.htm
    I, for one, haven't upgraded from v.7. Don't see the need......
    There are some fine points to a reinstall, and the following document should lead you to answers to any issues you may encounter:
    http://docs.info.apple.com/article.html?artnum=93976
    G4 AGP(450)Sawtooth   Mac OS X (10.4.8)   2ghzPPC,1.62gbSDRAM, ATI9800, DVR-109,(IntHD)120&160,LaCie160,23"Cinema Display

Maybe you are looking for

  • Error while updating a task - Task acquired by some other user

    Hi, I have a task assigned to a Group (AdminGroup). To update the outcome of task ie to approve task i am first acquiring the task and then updating the task outcome. But while doing so i am getting following error: Invalid action on workflow task. A

  • Can i install mac osx 10.5.4 on my ibookg4

    I'm trying to install a retail version of Leopard that i purchased and i get a Kernel Panic Screen every time the install is reaching about 45%, and sometimes i even get it during the DVD Check before the installation starts. the only time i finally

  • Adobe Air apk issues! Help!

    Since we have developed our own application distribution channels for our Android tablets which our target audience are kids aged 2-13 years old, we have enabled parental control and do not install Google Play in our tablets.  However, some apps didn

  • USER EXIT FOR SAPMV45A

    hi all, id like to ask if you have any known user exit that could answer my problem i have a routine here that updates message control upon changing of the field werks in the line item. however, there are instances when output message is not updated.

  • Decimal IN BOM Qty

    Dear Experts how we can put the limit of BOM  at  5 level decimal in BOM like some of the material is put with respect of 1 bom qty is 1/100000 X material is 1/100000 Thanks & Rgds Pankaj Agarwal