Temp Tablespace space needed to create an index of 52GB - preventing 01652

Hi,
I've seen quiet a few threads on the subject, but could not find a clear (to me) answer on the subject.
We have a huge table made by 30/40 partitions of roughly 20M records each (each record being about 1k of size), overall 800GB.
The index we already have shows:
  1* select sum(bytes/1024/1024)  from dba_segments where segment_name like 'CALL_LOG_I0'
SQL> /
SUM(BYTES/1024/1024)
               52088
so that I assume it's 52GB in size. Since we have to create another very similar one I would assume the size would be similar.
Command would be:
create index call_log_i0_new on call_log (msisdn, generation_timestamp, cdr_reference_number, Multiple_AMA_Sequence_Number) NOLOGGING online;
Tried the NOSORT option but it's not compatible with the online option.
After a while the TEMP tablespace got filled up (we have about 20GB space in there).
My question is if I need to have a temp tablespace at least as big as the index size (52GB) to let the index be built online.
Thanks in advance !
Cheers,
Mike

Thanks to all, found useful information in Metalink following your suggestions:
You need to add more space to the tablespace where the index is created.
A possible option to reduce sort space usage is to use the NOSORT option.
Your table contains 66 million rows. The average row length is
50-60 bytes and you are indexing 4 of 5 columns in the table.
Example space calculation:
66 million rows * 50 (avg row length) = 3.3 gig of data
Rule of thumb:
upper bound for sort (not guaranteed) is 3 times data_
= about 10 gig of sort space needed
These numbers are scaring since assume that I may need much more space than the index size (about 3x) which is something we cannot afford. Will go with the NOSORT option once the system is brought down and we could skip the online option.
Thanks to all !
Mike

Similar Messages

  • Space needed to create an index

    I have a table with about 30 million records. I needed to create an index for one of the fields in this table. How can I determine how much space I will need in the tablespace where I need to create the index for the index to be created ?
    Thanks

    There's a nice discussion regarding this on asktom:
    http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:1295520444744
    Hope this helps.
    Kailash.

  • 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.

  • Do we need to create seconady Index in BI 7.0

    Hi,
    I need some Information. I came to know that in BI 7.0. The Index are created automatically by BI Accelarator.
    Please let me know wheather we can create secondary Index.
    regards
    Bijevemula

    Hello Raghav
    In ODS Primary and secondary indexes are created manually 010 and 020
    Secondary index must differ from primary index     
    Maximum 16 secondary indexes
    in cube primary index in created automatically no secondary index is there
    Indexes created on ODS?
    010
    production year zpryr
    countrykey 0country
    divisioncode zdvcr
    020
    production year zpryr
    countrykey 0country
    divisioncode zdvcr
    product code zprcd
    brand 0Matl_grp1
    030
    production year zpryr
    countrykey 0country
    divisioncode zdvcr
    failure date zfdte
    prdnquarter zprnd
    By default there will be index on the key fields. So you are not required to create any index on those fields.
    http://www.websitedatabases.com/database-index.html
    if you enter in your selection criteria production year, country key, division code then it will use first index.. But if you give product code also in addition to 3 fields then it will use second (020) index.
    But if enter only product code, brand, failure date,prdnquarter then it will not use any of the index....
    Note: Before creating any index please confirm with your basis admin...
    Thanks
    Tripple k

  • Need to create multiple indexes - will this work?

    For a catalog of about 350 pages, I need both a manufacturer index and a product index. I have read some of the creative solutions already posted here and in other web discussions, and I have an idea.
    Why not create two Book files? one could be "Catalog-Product.indb" and the other could be "Catalog-Manufacturer.indb". Basically two separate contexts for the series of layouts. When in the Product book, do all the indexing for that context, update the Product index and close the set of files (saving the Catalog-Product.indb as well and then closing it). Then open the Catalog-Manufacturer book and do the indexing for the Manufacturer index, generate it, save and close.
    The question is: will each of the two book files be able to ignore the invisible index metadata that belongs to the other book when generating the index? will there be trash index entries in the Index palette - representing those of the other book file? Or, can these two sets of metadata be properly kept separate?
    One consequence that I predict is that the Hyperlinks option during PDF Export from InDesign will be compromised - I would expect whichever book was inactive during the PDF export from the Book file would be the one whose index links would be non-functional.
    Can anyone tell me though whether this strategy could generate two proper indexes at least for a print document?

    Bill Planey wrote:
    For a catalog of about 350 pages, I need both a manufacturer index and a product index. I have read some of the creative solutions already posted here and in other web discussions, and I have an idea.
    Why not create two Book files? one could be "Catalog-Product.indb" and the other could be "Catalog-Manufacturer.indb". Basically two separate contexts for the series of layouts. When in the Product book, do all the indexing for that context, update the Product index and close the set of files (saving the Catalog-Product.indb as well and then closing it). Then open the Catalog-Manufacturer book and do the indexing for the Manufacturer index, generate it, save and close.
    The question is: will each of the two book files be able to ignore the invisible index metadata that belongs to the other book when generating the index? will there be trash index entries in the Index palette - representing those of the other book file? Or, can these two sets of metadata be properly kept separate?
    One consequence that I predict is that the Hyperlinks option during PDF Export from InDesign will be compromised - I would expect whichever book was inactive during the PDF export from the Book file would be the one whose index links would be non-functional.
    Can anyone tell me though whether this strategy could generate two proper indexes at least for a print document?
    Hi, Bill:
    Search Google for terms like "InDesign multiple index" without quotes. There are some good links for this; admittedly they're workarounds. If you take the time to file a formal request for this feature at https://www.adobe.com/cfusion/mmform/index.cfm?name=wishform, there's a chance the developers will eventually run out of excuses or higher-priority tasks, and include it in a future release.
    HTH
    Regards,
    Peter
    Peter Gold
    KnowHow ProServices

  • Need to create another index ?

    Hi,
    Using Oracle 9.2 I have a table STATS and an index STATS_IDX on the following columns in the order : Objectid, Stat_Hour, Parent.
    I now want to optimize queries that filter or sort on Stat_Hour. Do i have to create another index having just Stat_Hour or will Oracle use the existing index to optimize my queries that filter or sort on Stat_Hour ?
    Thanks
    Christian

    Christian,
    Since stat_hour is not the leading column of STATS_IDX, you might want to create another index where stat_hour is the leading key in case you want the query to center around stat_hour column.
    Please post the query plans with and without indexes if you try the recommendation.
    Shakti
    http://www.impact-sol.com
    Developers of Guggi Oracle - Tool for DBAs and Developers

  • Temp Tablespace space issues

    My temp tb is growing really fast. How do I relase all the space in there so that it is back to 0 again or at least 90% free or so.
    Ideally I would like to do this every night on some sort of a script. Can this be done?

    Here is my attempt:
    Make sure temp file's autoextend is turned off, check with:
    select FILE_NAME, AUTOEXTENSIBLE from dba_temp_files;
    To turn off autoextend (take care):
    alter database tempfile '\u01....\TEMP01.DBF' AUTOEXTEND off;
    This shows usage of temp ts:
    v$sort_segment has info about every sort segment of the temp ts.
    v$sort_usage has current active disk sorts in the instance
    OEM showing temp 100% full is ambiguous. Above views show true usage.

  • Need to create aditional index in DAC

    We are trying to create an aditional index in DAC. It has been defined in the Design with a couple of columns. The Generate Index Script (right click) generates a blank file...
    Pls. what am I missing here..?
    Txs for your help.
    Antonio

    Did you check at file createAllIndices from
    C:\orahome\10gR3_1\bifoundation\dac\log\scripts

  • Create an index on a huge table

    hi gurus
    I am going to create an index on a very large table(194GB) with the temporary tablespace size is 80G.
    I am afraid that during the index creation the temporary tablespace is not enouth to hold the data needed
    to create the index,because i only have 80g in temporary tablespace. How do i estimated the size i need to create a such large index and is there an effcient way to do such index creation?
    thank u in advance.

    Jozsef wrote:
    Hi there,
    I have done similar things couple of times before and I have used a pretty good method to obtain a rough (and it was really a rough, but enough) estimation.
    Sorry folks, it does not work properly for create index...this method only works for SELECT statments, SO IGNORE IT :(
    It nearly works in 10g:
    | Id  | Operation              | Name  | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | CREATE INDEX STATEMENT |       | 10000 | 40000 |    10   (0)| 00:00:01 |
    |   1 |  INDEX BUILD NON UNIQUE| T1_I1 |       |       |            |          |
    |   2 |   SORT CREATE INDEX    |       | 10000 | 40000 |            |          |
    |   3 |    TABLE ACCESS FULL   | T1    | 10000 | 40000 |     6   (0)| 00:00:01 |
    Note
       - estimated index size: 196K bytesThe "Note" tells you Oracle's estimate of the final space allocation needed for the index. There are various reasons why the estimate is not very accurate, and why it's not a good estimate of the space requirement in the TEMP tablespace, but it gives you a figure that is probably in the right ballpark (factor of 2 out, either way, probably).
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    http://www.jlcomp.demon.co.uk
    "For every expert there is an equal and opposite expert."
    Arthur C. Clarke

  • How to create new INDEX for TREX

    Hello Experts,
    Iam new to this KM and TREX so need ur guidance for this...
    I need to create an INDEX for TREX, so after going through various messages i found that it can be created form the Index Administration iView portal----System Administration -> Syetm Configuration -> Knowledge Management -> Index Administration -> New Index
    But iam not getting the above path in SPRO OR how to run Index Administration iView OR from which portal i need to create an INDEX??can anyone provide steps on how to go to System Administration -> Syetm Configuration -> Knowledge Management -> Index Administration -> New Index
    path.....
    Regards.

    I'm not very familiar with CRM business partners, but the common way - to include the repository where the documents are stored to the KM using [CM Repository managers|http://help.sap.com/saphelp_nw04/helpdata/en/e3/923227b24e11d5993800508b6b8b11/frameset.htm].
    You need first to create a repository manager for you repository and only then you'll be able to create an index.
    Regards, Mikhail.

  • PDB without local TEMP Tablespace

    Due to the Oracle Database 12c Concepts Guide it should be possible to create a PDB without a local TEMP Tablespace and the create PDB syntax includes the option (MAX_SHARD_TEMP_SIZE).
    But I cannot find any hint how to create a PDB without a TEMP Tablespace or how to change the default temp tablespace to point to the CDB:
    Any help will be appreciated.

    There is no standard way to create a PDB without a TEMP tablespace
    Yes - there is. But you CLEARLY don't want to do things the standard way. You want to use some particular non-standard way.
    It is not 'standard' to create a database without a temporary tablespace. That is almost ALWAYS a mistake. That generally happens when you use the CREATE DATABASE command and don't specify it properly.
    When you create a database you do NOT have to create a temporary tablespace. That has been the RULE from the very beginning and it is still true for 12c. For proof see the DBA Guide:
    http://docs.oracle.com/cd/E16655_01/server.121/e17636/create.htm#i1009290
    Creating a Default Temporary Tablespace
    The DEFAULT TEMPORARY TABLESPACE clause of the CREATE DATABASE statement creates a default temporary tablespace for the database. Oracle Database assigns this tablespace as the temporary tablespace for users who are not explicitly assigned a temporary tablespace.
    You can explicitly assign a temporary tablespace or tablespace group to a user in the CREATE USER statement. However, if you do not do so, and if no default temporary tablespace has been specified for the database, then by default these users are assigned the SYSTEM tablespace as their temporary tablespace. It is not good practice to store temporary data in the SYSTEM tablespace, and it is cumbersome to assign every user a temporary tablespace individually. Therefore, Oracle recommends that you use the DEFAULT TEMPORARY TABLESPACE clause of CREATE DATABASE.
    You don't have to believe me or the docs.
    Try it yourself. That is the best way to learn. Post your results here for all to see.
    That is what that 12c doc says and what ALL of the docs for the versions before say. See for yourself. Here is the doc link for Oracle 7.3 so you can see the CREATE DATABASE systax yourself
    http://docs.oracle.com/cd/A57673_01/DOC/server/doc/SQL73/ch4a.htm#createdatabase
    Without a temp tablespace Oracle is forced to use the SYSTEM tablespace for the temporary.
    These are the STANDARD ways:
    1. Create PDB with a temporary tablespace.
    2. Use the DBCA with a custom template
    3. Create your own PDB seed database without a temp tablespace and then clone your seed to create other PDBs without a temp tablespace
    4. Use CREATE DATABASE to create a DB without a temp tablespace and then plug it in to your CDB root container.
    Those are ALL standard methods. The last three result in PDBs withoug a temp tablespace.
    #1 is what you should be using.
    1. Create PDB with a temporary tablespace.
    2. Shrink/resize the temp tablespace down to a minimum if you want
    3. Assign the users to the CDB temp tablespace if you don't want them using the PDB temp
    I would appreciate if you only answer to questions if you have tested it or have a precise answer to it!
    I have done BOTH of those things. Your failure to recognize that is NOT my problem.
    I have created a PDB without a temp tablespace using DBCA and a custom template.
    I have also created a PDB without a temp tablespace by using the historical standard method of CREATE DATABASE  without a temp tablespace and then plugging it into the CDB and a PDB.
    It is YOUR responsibility to RTFM and YOUR responsibility to actually put your fingers on the keyboard and try things.
    The forum is NOT a coding service so you have no right to expect someone to write code for you and no right to get upset if they don't.
    dbca doesn't use any other commands than the one's I've already tried!
    Your reality is different than Oracle's. Support your reality with some facts.
    I just created a PDB (create pluggable database) and no wonder that one comes with a temp tablespace.
    I don't see where you posted ANYTHING that shows:
    1. exactly WHAT you did
    2. exactly HOW you did it
    3. exactly what results you got.
    If you want help with the code or a process you are using you have to POST that code or process.
    We can NOT see your computer screen to see what screens you see or what entries you make.
    Complain about the messenger all you want.
    But you will NOT be successful with 12c if you refuse to RTFM and refuse to try things yourself. Making unsubstantiated statements or trying to attack me may make you feel better but you won't learn anything from it.

  • Tuning by creating / deleting indexes

    Hello !
    I have a stored procedure which is called once per day to perform some clean up of the database.
    To improve it, I would need to create some indexes, but I don't think it is a good idea to create indexes only for a stored procedure called once per day.
    So I would like to know if it is a possible solution to create the required indexes before calling my stored procedure and remove them as soon as the job is finished. By "possible solution", I do not mean technically possible, but if this is a good idea. If not, what strategy should I use ?
    Some technical points : Oracle 9.2 and the calls are done from java via jdbc.
    By the way, I noticed that it doesn't seem to be possible to rollback indexes creation. Am I right ? So my method would not be good from a transactionnal point of view...
    Thanks to for your help !

    Hello
    How important is it that this process completes in a specific amount of time? We have critical billing processes that only run once per month, but they have to run within a 2 hour window, so we are using all available techniques to ensure the process completes in the time limit.
    I would start by looking to see if the stored procedures can be improved at all before creating the indexes though. What techniques are you using to perform the cleanup? Are you opening a cursor and looping through it, deleting one row at a time? if so, maybe BULK BINDS could help, or you may be able to convert the PL/SQL loops into straight SQL. If you are using straight SQL to do the deletes, can their execution plans be improved by using different constructs?
    If indexes are the best way forward, I would start by doing a benchmark on your test system. Run the stored procedure and store the timings, then create the indexes, analyze the tables and indexes involved and then run the stored procedure again and record the timings. It's then a matter of checking that the extra indexes don't negatively impact any other processes that are insterting or updating the tables that you are cleaning up.
    Once you have some reliable metrics to go on, you can make a decision, until then, you're pretty much flying blind. I personally don't think it is a very good idea to be creating indexes on the fly and the dropping them again every day. If you need indexes, you need them, but you need to prove that they will help and they won't hurt the performance of anything else.
    Just my two penneth!
    HTH
    David

  • Can you create an index on a Map?

    I have a few questions that I can't seem to figure out nor find a viable example for. Can you create an index for a Map contained within a nested object, and if so, how would you do this? I currently have a Filter the inspects this criteria in the cache but am unable to figure out to create a usabe index for the custom filter. I'm using Coherence 3.5.2 - any help would be most appreciated. I'm not sure if/what I need to do with the SimpleMapIndex....
    Here's the basic object map below. My filter is retrieving all of the CustomerGroup objects that have a Customer in it's collection that contains the passed in Integer value in the Customer's Map. So can you create an Index on a Map (and a nested one at that) and how do you that? The index would need to be on the nested customerValues hashmap.
    class CustomerGroup
        Set<Customer> customers ;
    class Customer
        Map<Integer, CustumerValue> customerValues;
    }

    If you write a custom ValueExtractor, which you need to create an index, then you will not need a custom Filter.
    Depending on how efficient you need to be you custom extractor can use POF and not have to deserialize the entries to create the index, or it can deserialize the class, which will make the code more straight forward.
    For example, without using POF
    public class MapKeyExtractor extends EntryExtractor implements PortableObject {
        public MapKeyExtractor() {
        @Override
        public Object extractFromEntry(Map.Entry entry) {
            Set<Integer> keys = new HashSet<Integer>();
            CustomerGroup group = (CustomerGroup) entry.getValue();
            Set<Customer> customers = group.getCustomers();
            for (Customer customer : customers) {
                keys.addAll(customer.getCustomerValues().keySet());
            return keys;
        @Override
        public boolean equals(Object obj) {
            return (obj instanceof MapKeyExtractor);
        @Override
        public int hashCode() {
            return MapKeyExtractor.class.hashCode();
        @Override
        public void readExternal(PofReader in) throws IOException {
            super.readExternal(in);
        @Override
        public void writeExternal(PofWriter out) throws IOException {
            super.writeExternal(out);
    }The extractor above will return a collection of all of the Integer values in the keys of all the customerValues of all the customers in a CustomerGroup (I have guessed you might have accessor methods on the classes you posted).
    You can then use a ContainsFilter for your query. For example to get all the values from the cache where the customerValues map contains a 19 in the key...
    Set results = cache.entrySet(new ContainsFilter(new MapKeyExtractor(), 19));You could write a version of the MapKeyExtractor that uses POF and would not deserialize the values but this would be more complicated code as it would need to extract the Map from the POF stream of the value and walk down the keys and values extracting the keys. It is doable but not worth it unless you are really worried about performance of index updates.
    Discalimer I have written the code above from the top of my head so have not compiled it or tested it but it should be OK.
    JK

  • Is it possible to created secondary indexes on ODS in Production

    Hi,
    Is it possible to created secondary indexes on ODS in Production System. I need to create secondary indexes on ODS but it is already in production. Hence Can I directly create secondary indexes without transportation from dev to production?

    Hi,
    Secondary Indexes for DSO can be transported. For the transport the DSO objects needs to be transported (R3TR ODSO <technical name>.
    Additionally, secondary Indexes are necessary quite often for DSO tables, which can be transported. In few cases you need indexes on other BW tables, but they cannot be transported. Never create additional Indexes on InfoCube tables (like E- and F-Fact tables and Dimension tables)
    Thanks & B.R.
    Vince

  • Creating an INDEX on an internal table

    Hi Folks,
    Currently I am dealing with some programs which needs to be optimised.I had came acrossed some queries which are having some fields in the where clause which are neither a primary  key nor in any index.As it is not advisable to create as many index as we can in a standard table,I just want to create an index on the internal table.
    Will be glad if anyone here can provide me some lead in this.
    Thanks,
    K.Kiran.

    Hi,
    There is no need to create the index in the internal table since the primary key of the database table from which you selected the data becomes Primary index for the internal table.
    The primary index is distinguished from the secondary indexes of a table. The primary index contains the key fields of the table and a pointer to the non-key fields of the table. The primary index is created automatically when the table is created in the database
    You can also create further indexes on a table in the ABAP Dictionary. These are called secondary indexes. This is necessary if the table is frequently accessed in a way that does not take advantage of the sorting of the primary index for the access.
    You create secondary indexes using the ABAP Dictionary. There you can create its columns and define it as UNIQUE. However, you should not create secondary indexes to cover all possible combinations of fields.
    Only create one if you select data by fields that are not contained in another index, and the performance is very poor. Furthermore, you should only create secondary indexes for database tables from which you mainly read, since indexes have to be updated each time the database table is changed. As a rule, secondary indexes should not contain more than four fields, and you should not have more than five indexes for a single database table.
    Secondary indexes should contain columns that you use frequently in a selection, and that are as highly selective as possible. The fewer table entries that can be selected by a certain column, the higher that column’s selectivity. Place the most selective fields at the beginning of the index. Your secondary index should be so selective that each index entry corresponds to, at most, five percent of the table entries. If this is not the case, it is not worth creating the index. You should also avoid creating indexes for fields that are not always filled, where their value is initial for most entries in the table.
    Regards,
    Priyanka.

Maybe you are looking for

  • HR-PA. Issue when hire in future period. Transaction PA48.

    Hi, Guru! May be somebody help me. When i hire candidate from transaction PA48 on hire > sy- datum, object BP not created for new object CP, because in the function module 'RH_ALEOX_INTG_CP_FILL_CONT in the line 102 'perform sync_cp_collect_objects'

  • Airplay on ipad and iphone

    Hi ios 8.1.1 still has the problem with airplay. everytime i put my ipad in standby and want to pause video and then resume it the video restarts to the begiging in ios 7 it was working. the wifi seems to be a problem to this to. and the problem  is

  • Installation of Updates for Photoshop CS6 failed. Error code U44M1U5 for Camera Raw and U44M1P210 for Adobe Application Manager

    The Installtion of updates for Photoshop CS6 failed. Error code for Update of Adobe Application Manager is U44M1P210, for all other features (Adobe Bridge, Photoshop CS6, Camera Raw) U44 M1U5

  • Restoring Address Book - help!!

    Yesterday I upgraded my Dual 1.8 G5 to Tiger from Panther. I took my Mac HD and copied the drive to an external, then reformmated the internal and installed the new OS. So far everything is fine, except my Address Book. I did not specifically make a

  • Adobe Interactive Forms Tutorials for Beginner

    Hi Experts, I am new to Adobe Interactive Forms. Just gone through some documents. Saw some sample forms. But i need some tutorials guide to start the developement in NWDS. Kindly help me. Thanks, Bidyut