Do CTXCAT/CATSEARCH indexes need maintenance???

Hi,
Today I dropped and re-created some of our CATSEARCH indexes. The only change was that I removed the NUMBERS-stopclass from the index configuration (to include numbers also in the text index).
I expected the indexes to grow (as we are indexing numbers additionally). But they did not. Instead index size reduced from 2.6GB to 1.7GB (ctx_report.index_size()). I did some further investigation with a small test table and found the following: When adding entries to the data table, the index tokens appear in $I table, also some entries are created in $P table. When removing the data from the text tables the $I table goes empty while $P still holds all the data.
So I think my indexes reduced their sizes because of the growing $P table which never seems to to be deleted. I am not sure if this is expected behaviour. But it wastes a of tablespace in our database.
My question: do CTXCAT indexes need maintenance? I know about optimize_index procedure which seems to be suiteable for CONTEXT indexes only. But I could not find anything similiar concerning CTXCAT in the documentation.
Thanks in advance.
PS: Oracle Version is 10.2.0.5.0
Edited by: user5740061 on Jan 6, 2011 12:39 AM

Hi,
I can confirm your findings. If you delete records from the table, records in dr$index_name$p are not deleted, tested today on 10.2.04, 11.1.07 and 11.2.1. I think this is, because there is no relation between the rows in the $P table and the records in the base table. So that is why, I think Oracle is not deleting any rows in the $P table. I did find out that if you truncate the base table, the $P table is also cleaned.
So the problem only occurs if you delete a lot of records and insert others again, delete again and again inserts. So my advice would be to keep record of the statistics on such table.
If you want more to know, maybe make a SR with Oracle Support (or maybe Roger can tell more).
Herald ten Dam
http://htendam.wordpress.com

Similar Messages

  • Is it possible to use count_hits with a catsearch index

    i am trying to find the count of hits in an index, but i have tried the count_hits but this did not wotk with my catsearch index.
    I cannot just do a count as this is to trap an error message from Bug 4006624 , which we cannot correct by upgrading for a few months due to project live dates and current systems on different versions

    If you want to use ctx_query.count_hits, you will need to use a context index, not a ctxcat index.

  • X4270 M24 HDD led AMBER - needs maintenance

    Hi,
    I hope one of you can help me with an X4270 storage issue.
    I am busy installing OS and application on a X4270 with 24 LSI disks and 2 of the disks have the amber "needs maintenance" led activated so I cannot see
    these disks in the Solaris 10 "format" command.
    Issue happened after we ejected and re-inserted these disks (disks should be hot-swappable), I am pretty sure that the disks are fine but cannot manage to
    get them back into operation.
    Any help and suggestions are more than welcome, thanks a lot in advance.

    Hi.
    x4270 - it's general server, not storage.
    Docs' about server:
    http://docs.oracle.com/cd/E19245-01/index.html
    This server can content different raid card for support disk.
    Read http://docs.oracle.com/cd/E19245-01/820-6350-16/z400016d9112.html#z40003a21330433
    You need identify type insalled raid-controller and use corresponded way for resolve this issue.
    It's look like you have: SG-XPCIESAS-R-INT-Z, Adaptec/Intel-based
    You can install software for manage this controller or use BIOS based utility for understand status of disks and clear faulted state.
    Regards.

  • Index value maintenance directly in a Production system

    Hi,
    Is it possible to control the access to T-code: REAJINDX ( Index value maintenance) by Authorization Management (Profile Generator/Role management) in a closed system (Production) for configuration?
    Authorization Object: S_TABU_NAM
    Activity: 02
    Table: V_REAJINDXCLASS
    The requirement is the Index value maintenance directly in a Production system (closed system for the configuration) through the Authorizacion Management.
    Thanks and best regards,
    Fernando

    Hi Franz,
    First, thanks for your quick response. I haven´t got to solve the problem with these notes. I would like to explain in further detail the issue and the current system configuration.
    The configuration for the Client (T000) is the following:
    Client Role: T (Test) or P (Production)
    Changes and Transport for Client-Specific objects: No Changes Allowed
    Cross-Client Objects changes: 3-No Changes to Repository and Cross-Client Customizing objects
    The configuration for the object VC_REAJINDX (SOBJ) is the following:
    Category: CUST
    Transport: 2-Automatic Transport
    Adjustment: Automatically adjustable
    Current Settings: Marked
    With this configuration at client level and for this object, it is not possible to maintain the Index values in the target client. Then my question (doubt) is if it´s possible to maintain the index values in despite of this configuration by Authorization management (User roles/Profile Generator) for this object (Example: Give authorization to modify this object (in order to maintain the values) to a Key User with a specific role, SU01). Or if it´s not possible, then It´s necessary to change the configuration for the object (VC_REAJINDX) for the fields, Category, or/and Transport,... For this option, it´s necessary to modify the SAP standard using a Developer key and I´m not sure if it is a recommended solution.
    But my client wants to maintain the index values directly from PRD system and not from a DEV system and after transport the updates to PRD.
    On the other hand, the error message that the system shows it isn´t the message number TK430, It is the message nº SV052, No maintenance authorization for requested data (Diagnosis: You have attempted, in change mode, to access data for which you have no authorization.). This is the reason I think, maybe, it is possible to control it through the Authorization management.
    Thanks in advance and best regards,
    Fernando

  • How CSSCAN determines which indexes need to be rebuild ?

    Hi everybody,
    i'm currently migrating 3 Oracle databases that contain CP1252 characters unproperly stored in WE8ISO8859P1 instances.
    The key steps of the migration are :
    1. ALTERing CHARACTERSET to WE8MSWIN1252
    2. changing CHARACTER SEMANTIC LENGTH for CHAR and VARCHAR2 columns
    3. truncating data stored in VARCHAR2(4000) columns
    2. Full export
    3. Full import in a ALL32UTF8 instance
    To do all of this (and especially the step 3), i use the CSSCAN utility (very practical !!!).
    And i have a question about CSSCAN: how CSSCAN determines which indexes need to be rebuild. What is the logic ?
    Looking at the CSSCAN report, i have a lot of cells/columns that are affected by the characterset migration, and i have just a few index to rebuild.
    Why would i like to understand the logic ? Because i would like to rebuild ONLY indexes that REALLY need to be rebuilt and i am not sure that all the indexes specified by CSSCAN really need to be rebuilt.
    Thanks for any information about that.
    (and sorry for my english)
    NB: i have managed "function-based indexes" specifically: i drop them before the export, and i recreate them after the import. So my question mostly target the "regular indexes"

    1. All indexes whose key contains at least one character column with convertible or exceptional data, excluding indexes with names equal to some constraint name for the same owner.
    plus
    2. All functional indexes on tables that have columns needing conversion, excluding indexes with names equal to some constraint name for the same owner.
    The condition regarding constraints does not seem to be very fortunate but it comes from times when the appropriate flag in index metadata was not yet available.
    But note that in your migration scenario, you do not actually have to care much about indexes. Step 1 & 2 do not need any modifications to the user data and hence to index contents. Step 3, if done through UPDATE, will modify affected indexes automatically. Step 4 does not affect the database. Step 5 will recreate all existing indexes anyway.
    -- Sergiusz

  • Disk needs maintenance - metasync required ??? - now getting Invalid VTOC !

    Hi there,
    Can someone advise me on the following please.
    I'm running solaris 5.8
    I have a failed disk on a 3300 storedge array....
    (extract from messages file.......)
    c3t11d0 Soft Errors: 703 Hard Errors: 570 Transport Errors: 0
    Vendor: SEAGATE Product: ST336607LSUN36G Revision: 0707 Serial No: 3JAX0Y8Q00007420
    Size: 36.42GB <36418595328 bytes>
    Media Error: 569 Device Not Ready: 0 No Device: 1 Recoverable: 703
    Illegal Request: 0 Predictive Failure Analysis: 1
    This is being flagged by metastat also......
    # metastat d80
    d80: Mirror
    Submirror 0: d81
    State: Okay
    Submirror 1: d82
    State: Needs maintenance
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 37750563 blocks
    d81: Submirror of d80
    State: Okay
    Size: 37750563 blocks
    Stripe 0:
    Device Start Block Dbase State Hot Spare
    c3t8d0s5 0 No Okay
    d82: Submirror of d80
    State: Needs maintenance
    Invoke: metareplace d80 c3t11d0s5 <new device>
    Size: 37750563 blocks
    Stripe 0:
    Device Start Block Dbase State Hot Spare
    c3t11d0s5 0 No Maintenance
    I have just received the new disk so can anyone confirm please, are any manual steps required to replace the disk or is it just a straight swap ?
    I presume the metareplace is only required if i wanted to introduce a new location into the D80 mirror ?
    Is there any manual formatting, metasyncs required afterwards ?
    Many thanks in advance.
    Sean
    Edited by: 853016 on 08-Aug-2011 06:17

    Hi there - thanks for your help !
    I am getting an Invalid VTOC error when i use the file detailed below......
    # fmthard -s /tmp/vtoc-c3t11d0s2 /dev/rdsk/c3t11d0s2
    /dev/rdsk/c3t11d0s2: Invalid VTOC
    # cat /tmp/vtoc-c3t11d0s2
    * /dev/rdsk/c3t11d0s2 partition map
    * Dimensions:
    * 512 bytes/sector
    * 107 sectors/track
    * 27 tracks/cylinder
    * 2889 sectors/cylinder
    * 24622 cylinders
    * 24620 accessible cylinders
    * Flags:
    * 1: unmountable
    * 10: read-only
    * Unallocated space:
    * First Sector Last
    * Sector Count Sector
    * 38285028 32842152 71127179
    * First Sector Last
    * Partition Tag Flags Sector Count Sector Mount Directory
    0 2 00 0 262899 262898
    1 3 01 262899 262899 525797
    2 5 01 0 71127180 71127179
    5 0 00 525798 37750563 38276360
    7 0 00 38276361 8667 38285027
    Can you advise what might be causing this please ?
    Thanks,
    Sean

  • CTXCAT search index Issue - trying to index multi columns

    i can index more than one column in the same table using MULTI_COLUMN_DATASTORE but when the index type is CONTEXT
    but i need to index more than one column ,when the index type is CTXCAT
    putting into considerations that i found that MULTI_COLUMN_DATASTORE doesn't work with ctxcat
    if anybody knows any other way pleaze Help...
    thanks in advance

    MULTI_COLUMN_DATASTORE cannot be used with CTXCAT search as the this parameter is not supported
    i am asking about abnother way,or a work around MULTI_COLUMN_DATASTORE
    in order to work

  • Multiple Users need (maintenance) access to a customized table.

    Hi Gurus
    We created a z table and maintained couple of values in it
    The _attributes _ are as follows:
    Delivery Class : A (Application table (master and transaction data)
    Table Maintenance : Display and Maintenance allowed
    ISSUE :
    This table does not allow multiple access. In other words, multiple users have to enter this table and change values in this table. Is that possible?
    Could you let me know how can this be done?
    Thanks a lot
    Sridevi

    By default, I think SM30, and probably SE16 as well, will lock the entire table if someone is trying to change it.  So, only one person can maintain the table at a time.  This is the simplest way that it can ensure data integrity. 
    If I wanted multiple users to be able to maintain a table simultaneously, I'd create a custom screen (dynpro, user dialog, whatever you want to call it) to do it, using lock objects (ENQUEUE and DEQUEUE function modules that you create for the key of your table) to lock / unlock specific rows when a user wanted to change them.  I also might use some sort of reference number generator to ensure unique keys. 
    Not a terrifically complicated piece of development but you'd need to get a Abaper to do it.

  • After rebuild a index need do more something?

    If i move the indexes of "TESTE" schema to other tablespace and that indexes have been access for user "TESTEC" i will need to grant and recriate sinonym again for the that user?
    O will use:
    select     'alter index "'||owner||'"."'||index_name||'" rebuild tablespace "'||tablespace_name||'" ;' cmd
    from     dba_indexes
    where     owner = 'TESTE'
    TKS,
    ELBER.

    I usually do the following
    1) set sort area big:
    -- Check the available memory on the OS with top.
    -- If you go overboard on the memory allocation, sar –g will show paging
    -- I usually set the sort_area_size some where between 200 and 900 meg to speed up index rebuilds
    alter session set workarea_size_policy='MANUAL';
    alter session set sort_area_size=900000000;
    alter session set sort_area_retained_size=900000000;
    2) use the following to rebuild each index so I can control the parallelism:
    -- can also use online compress parallel 8
    alter index "&1"."&2" rebuild parallel 8 nologging tablespace &3;
    alter index "&1"."&2" noparallel;
    execute dbms_stats.gather_index_stats('&1','&2',estimate_percent=>3)
    3) You can also control the parallelism by setting:
    parallel_min_percent=25
    parallel_min_servers=10
    parallel_max_servers=100

  • Do I need maintenance scripts ?

    I am using Macaroni which runs Unix maintenance script every time I start the computer. At night the cpmputer is shut off. Do I really need to run these scripts with Snow Leopard ?

    I know people have weighed in on this before.
    sudo periodic all
    that is all and no I don't leave mine on, or run them daily, in fact hardly at all. But I do other things to keep the system in top shape.
    as long as the utility is certified compatible, you are fine. I think Onyx, SL Cache Cleaner and others can also automatically schedule cron to run next time, I just don't do anything automatic.
    Every time you start? or once a day? some scripts are only weekly and monthly anyway.

  • Mobo replaced, need "maintenance disk"

    Hello,
    I've recently needed to replace the MB on my T61 due to "video card issues" and now I need to update the BIOS I guess, because it doesn't know what kind of machine it is, which doesn't play well for the system update, among other things. I don't recall ever being given a maintenance disk when I purchased the machine, so I'm not sure what to do here. The machine is an 8891CTO. If you folks could point me in the right direction I'd appreciate it! Thanks! 

    Hi,
    Curious as to why a 60 Gb hard drive.
    I have the same machine with 100 Gb.
    Your topic cured my question as well, Thanks.

  • ITunes Update broke index - Need to recover music - Apple No Help

    We have our music on an external drive and downloaded music on the local drive along with iTunes. A recent update to iTunes (last two weeks) seems to have lost the external drive setting then started migrating music (instead on pointers) to the local drive. It also seems to have changed the index to point to the local drive for all music where there is not enough room so the pointers do not match the data.
    Solution - fix 2500 songs 1 by 1. Bleahhhhhhh!!!!!!
    Reimport does not work.
    I already have 6 hours wasted on fixing the problem created by the updated software. And I have gotten nowhere except to frustrate myself.
    Do I have to delete all music, redownload the purchased files and then reimport the 200 albums. That is, spend about 50 hours fixing a bug Apple sent out and will not comment on without being paid?
    Apple will only respond to the problem with a $30 service call to "possibly" fix the bad update they sent out.

    What has happend is not clear from your post.
    When you talk about migrating music do you mean iTunes has been copying music from your external drive to your c: drive?
    This could happen if your iTunes Music folder is in My Music\iTunes on the c:drive and you either selected "consolidate library..." on the advanced menu or you tried to add music on the external drive to your library and had "Copy files to iTunes Music folder when adding to library" checked in your preferences.
    You can check the location of your iTunes Music fodler in "Edit>Prefernce>Advanced>General.
    These problems are difficult to deal with from a distance without precise information about how you have your iTunes set up and what you have done.

  • Item indexes need, where to get them?

    I am wanting to get a list of cars and toys and games and
    well everything th
    at could be sold.
    Been looking for a little while but thought i'd ask for some
    help as others
    might type in a search query other than what i have!
    Does anyone have such a list of know where i can get bit a
    pieces from,
    i have tried car indexes, makes of cars index, but nothing
    comes of it yet.
    any ideas people?
    thanks in advance.

    Sorry, but I have NO clue what you are talking about...
    Could you clarify - rephrase the question?
    Anurag
    cheers mate wrote:
    > I am wanting to get a list of cars and toys and games
    and well everything th
    > at could be sold.
    >
    > Been looking for a little while but thought i'd ask for
    some help as others
    > might type in a search query other than what i have!
    >
    > Does anyone have such a list of know where i can get bit
    a pieces from,
    >
    > i have tried car indexes, makes of cars index, but
    nothing comes of it yet.
    >
    > any ideas people?
    >
    > thanks in advance.
    >

  • Does a data external drive needs maintenance under iMAC OS X 10.6?

    Hi, I am new to Apple. I wonder if the external drive I use for storing data, WD My Book Essential 3TG, needs any maintenace such as defragmentation under Windows since data is deleted as needed from it.  I have an iMac OX 10.6.  I am not using WD software with the external HD.  Thanks!

    To be more precise, I currently use another WD 1TB external drive to store data.  I want to reformat it in HFS+ and use it with WD sotware to automatically and continuously back up my iMac complete drive in case, for any reason, something goes wrong with the iMAC HD and it needs to be re-installed with all the settings and data saved before the problem occurs. 
    I have used before the 1TB HD and WD software to back up the iMAC HD and believe it should not an issue here, unless I misunderstand how to best save the Mac HD complete data (or image?) in case something goes wrong.
    All that being said, I intend to use the 3TB external drive only for storing data from iMAC (Microsoft Suite files, picutres, music, films and the like), as needed.  I have not formatted it yet, but intend to do it for MAC only in HFS+. 
    I am no computer wiz, but, reading from WD manual and assitance site, I understand that using the 3TB drive to simply store data has to be done without the WD software since the latter is intended for constant perpetual back up only. 
    If I am mistaken or misunderstood how to proceed, please provide me with your comments.  All I want is to use the 1TB drive to restore iMAC to its prior condition if needed and the 3TB drive to safely store data, add and remove files manually as needed.
    Your help is much appreciated!

  • Question on optimum choice of index - whether to use CTXCAT or CONTEXT

    Hi ,
    I have a situation in which there are short texts that are to be searched for diacritical characters and for that I implemented CTXCAT type of index. The solution works fine except for left side wild card search - in that case I have suggested the developers to use the query template feature. -this is the background information for the question I have and following example demonstrates it:
    CREATE TABLE TEST_USER
      FIRST_NAME  VARCHAR2(64 CHAR)                 NOT NULL,
      LAST_NAME   VARCHAR2(64 CHAR)                 NOT NULL
    CREATE INDEX TEST_USER_IDX3 ON TEST_USER
    (FIRST_NAME)
    INDEXTYPE IS CTXSYS.CTXCAT
    PARAMETERS('LEXER cust_lexer');
    CREATE INDEX TEST_USER_IDX4 ON TEST_USER
    (LAST_NAME)
    INDEXTYPE IS CTXSYS.CTXCAT
    PARAMETERS('LEXER cust_lexer');
    Don't worry about the cust_lexer, it is for diacritical search and it is not relevant to this question so I am not copying the code for the preference I created etc.
    Now I have a row of data in the table with first_name column as Supervisor. If I run the below sql, it gives output:
    SELECT *
      FROM test_user
    WHERE catsearch (first_name, 'Supervisor', NULL) > 0;
    FIRST_NAME                     LAST_NAME
    Supervisor                     upervisor
    --even the below sql with wild card (*) at the end works fine...
    SQL> SELECT *
      2    FROM test_user
      3   WHERE catsearch (first_name, 'Super*', NULL) > 0;
    FIRST_NAME                     LAST_NAME
    Supervisor                     upervisor
    However the below sql queries doesn't give any output, though they should return the same row as above!
    SQL> SELECT *
      2    FROM test_user
      3   WHERE catsearch (first_name, '*visor', NULL) > 0;
    no rows selected
    SQL> SELECT *
      2    FROM test_user
      3   WHERE catsearch (first_name, '*vis*', NULL) > 0;
    no rows selected
    --Using query template as below solves the issue:
    select * from test_user
    where catsearch(first_name,
    '<query>
      <textquery grammar="context">
         %viso%
      </textquery>
    </query>','')>0
    FIRST_NAME                     LAST_NAME
    Supervisor                     upervisor
    Note that I verified the query execution plan and it uses the index and there is no Full Table Scan:
    | Id  | Operation                   | Name           | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT            |                |       |       |     9 (100)|          |
    |   1 |  TABLE ACCESS BY INDEX ROWID| TEST_USER      |   376 |    99K|     9   (0)| 00:00:01 |
    |*  2 |   DOMAIN INDEX              | TEST_USER_IDX3 |       |       |            |          |
    ---------------------------------------------------------------------------------------------- Up to the above , all details were by way of the back ground...now the question is - it is this the right choice? I am using context grammer using query template. There is another thread on this forum where an expert (Barbara) said that
    ". It should be better to use a context index than a ctxcat index with a query template that uses context grammar. " -this was said on this question link: Re: Wildcard Search
    So I am getting this doubt. However I have good data here that shows that the query doesn't do full table scan - still is it a bad choice? Note that there are several issues with CONTENT type of indexes( as per my limited understanding) - because they are not transactional in nature and so we have to take extra steps/measures to have the indexes updated which seems like a major pain area to me.
    My doubt is , did I do the right thing by using query template or should I use the CONTEXT type of index instead of CTXCAT type of index?
    Thanks,
    Nirav
    Edited by: orausern on Jan 17, 2013 1:40 AM
    Edited by: orausern on Jan 17, 2013 1:43 AM

    I would just like to add a few comments.
    Alhough it is documented that the ctxcxat index and catsearch do not support a wildcard in front of the term, a workaround is to use two asterisks on the left side of the term, as demonstrated below. I provide this only for clarification and interesting trivia. I would still use a context index for various reasons.
    SCOTT@orcl_11gR2> CREATE TABLE TEST_USER
      2    (FIRST_NAME  VARCHAR2(64 CHAR))
      3  /
    Table created.
    SCOTT@orcl_11gR2> INSERT INTO test_user VALUES ('Supervisor')
      2  /
    1 row created.
    SCOTT@orcl_11gR2> CREATE INDEX TEST_USER_IDX
      2  ON TEST_USER (FIRST_NAME)
      3  INDEXTYPE IS CTXSYS.CTXCAT
      4  /
    Index created.
    SCOTT@orcl_11gR2> SET AUTOTRACE ON EXPLAIN
    SCOTT@orcl_11gR2> SELECT * FROM test_user
      2  WHERE  catsearch (first_name, '**vis*', NULL) > 0
      3  /
    FIRST_NAME
    Supervisor
    1 row selected.
    Execution Plan
    Plan hash value: 4046491764
    | Id  | Operation                   | Name          | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT            |               |     1 |   142 |     3   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| TEST_USER     |     1 |   142 |     3   (0)| 00:00:01 |
    |*  2 |   DOMAIN INDEX              | TEST_USER_IDX |       |       |            |          |
    Predicate Information (identified by operation id):
       2 - access("CTXSYS"."CATSEARCH"("FIRST_NAME",'**vis*',NULL)>0)
    Note
       - dynamic sampling used for this statement (level=2)
    SCOTT@orcl_11gR2>The only time that I am aware of that there is a conflict between a wordlist and a lexer is when you specify stemming in both. If you are using stemming, you can still use both a wordlist and a lexer, but only set the stemmer attribute in the wordlist, not the index_stems attribute in the lexer.

Maybe you are looking for

  • Question for Experts / Instructors

    Hi, I have a minor dilemma on my hands. Working as a professional in the photographic and post-production fields, and I've been tasked with providing some instruction (across 2 or 3 apps) for a small group of clients (or clients of a friend I should

  • Make buttons

    In Flash, I want to create a button that does something when it is clicked on. For example, if you click on the button once or if you press on the keyboard "enter" a new URL will pop up that's just one example. I have a general idea how to make a but

  • Why is the style type element repeating in my html code

    I have a Business Catalyst site that I've created using a starter template. I've made some edits to customize the template and upgraded the site in BC. After making some edits to pages as well as some minor adjustments to the CSS file, I've noticed t

  • Ipod nano (3rd Generation) Screen

    I have had my iPod for almost 2 years and this morning I went to use it and it looks like there is a fingerprint in the middle of the screen along with random black lines. The iPod still plays, but am concerned about the screen.

  • BDC for CM25 tcode or a function module to dispatch planned orders

    Please suggest a way for BDC of CM25 tcode as the selection of planned/process order in the tcode is not captured in recording. or provide FM/BAPI for dispatch of planned orders. Moderator message - Cross post locked Edited by: Rob Burbank on Oct 23,