Delete volumes of Data in a table.

We have a table which has loads of data. When we execute the delete statement , it gives DB error as it was not able to delete huge volume of data.
Approach tried so far :
Keep a counter who size is say 10000. and execute delete statements every 10000 records. But still as the data is huge it still takes time.
Can anybody suggest some approaches ?

user12944938 wrote:
Oracle Version : 10g
SQL : DELETE FROM STUDENT WHERE YEAR = 2000.
The requirement is more of a yearly basis but on different tables[STUDENT, ADMIN, MANAGERS,........].
We have tried to run in off-hours.
STUDENT TABLE [ ID, FIRST NAME, MIDDLE NAME LAST NAME,.......................................................................................] AROUND 200 COLUMNS.Well you left out a lot of information from what i asked for so i don't have much to suggest.
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:2345591157689
Is a good read and may be of help to you.
Partitioning could also be an option (at which point you could drop the old partitions).
Really can't say knowing what we do (and more importantly, do not know) about your situation.

Similar Messages

  • How to delete the duplicate data  from PSA Table

    Dear All,
    How to delete the duplicate data  from PSA Table, I have the purchase cube and I am getting the data from Item data source.
    In PSA table, I found the some cancellation records for that particular records quantity  would be negative for the same record value would be positive.
    Due to this reason the quantity is updated to target but the values would summarized and got  the summarized value  of all normal and cancellation .
    Please let me know the solution how to delete the data while updating to the target.
    Thanks
    Regards,
    Sai

    Hi,
    in deleting the records in PSA table difficult and how many you will the delete.
    you can achieve the different ways.
    1. creating the DSO maintain the some key fields it will overwrite the based on key fields.
    2. you can write the ABAP logic deleting the duplicate records at info package level check with the your ABAPer.
    3.you can restrict the cancellation records at query level.
    Thanks,
    Phani.

  • To Delete the Entire Data from the Tables

    Requirement ::
    To use select Options for table name and based on the table names we want to delete the data from the tables...
    conditions :
    we have to first check if the tables having mandat and the configuration tables  if this tables then dnt delete the data from this tables. if the table other than mandat n config tables the data will be deleted from other tables.
    Input On Selection Screen :::
    Name of the tables  : :         we want to select multiple table names using select options.
    Type of Update       : :          Synchronous / Asynchronous
    Test Run                 : :          /* if test run is selected the tables will be validated based on the condition and the data is not 
                                                   deleted from the SAP tables or the status is not updated . untill u run Actual run. 
    Actual Run              : :         /* Here finally the data will be deleted from the SAP tables . the changes finally will be reflected in
                                                   Actual run...to the SAP Tables
    Output Required :::
    srno  |  Table name   |   No.of Records deleted   |    Date    |    Time     
    Please provide me the sample code for the above Requirement ...
    Thanks in Advance....
    Moderator message : Spec dumping is not allowed. Thread locked.
    Edited by: Vinod Kumar on Sep 30, 2011 4:54 PM

    Venkat,
    I belive in LBWQ you can only see one entry for an application. You'll see only one entry MC*18 for all your datasources.
    Do one thing. Do not delete from there. Run your "Job Control" job which moves all the data from LBWQ queue to RSA7 queue, making your LBWQ queue empty. Now go to RSA7 and delete your data for the specified datasource...
    Been a while since I looked at those screens, but I believe I am right.
    Good Luck
    Gova

  • Deleting Data from 85 tables

    Hi All,
    There is a 13 years old data in DB, which holds data from 2001. The task assigned to me is to delete the old data from Main table and its associated tables.
    87 tables are identified and data needs to be removed.
    1) We don't have an option to bring down the DB, the DB should be online.
    2) We can't disable triggers and constratins.
    3) We can't disable LOGGING
    4) The total Size of the tables that we are going to do the deleting is around 290 GB.
    5) DB is Oracle 11g.
    What I did is,
    I wrote a Stored Procedure, that get's MONTH and YEAR as input parameter. This procedure is called 12 times to delete one year.
    I have collected all the ID’s and stored in a separate table. Based on the id, I am deleting the data from each table and committing. (I was doing a bulk commit after deleting some group of tables, but those commits took lot of time.).
    Now total time to delete 150 Million Rows from the entire table is 4 days to delete 7 years of data.
    Is it any way I can make the process faster other than adding INDEX to avoid full table scans.
    is there is a better approach to handle this?.
    Advance Thanks for your response.
    -Jac

    988197 wrote:
    Hi All,
    There is a 13 years old data in DB, which holds data from 2001. The task assigned to me is to delete the old data from Main table and its associated tables.
    87 tables are identified and data needs to be removed.
    1) We don't have an option to bring down the DB, the DB should be online.
    2) We can't disable triggers and constratins.
    3) We can't disable LOGGING
    4) The total Size of the tables that we are going to do the deleting is around 290 GB.
    5) DB is Oracle 11g.
    What I did is,
    I wrote a Stored Procedure, that get's MONTH and YEAR as input parameter. This procedure is called 12 times to delete one year.
    I have collected all the ID’s and stored in a separate table. Based on the id, I am deleting the data from each table and committing. (I was doing a bulk commit after deleting some group of tables, but those commits took lot of time.).
    Now total time to delete 150 Million Rows from the entire table is 4 days to delete 7 years of data.
    Is it any way I can make the process faster other than adding INDEX to avoid full table scans.
    If you added another index, that would likely make the operation SLOWER because every time a row is deleted, the index would also have to be changed to reflect that fact. Indexes introduce more work to be done on DML operations.
    RP0428 has it right. This is a one-time operation and you are already well down the road. Just keep going.
    is there is a better approach to handle this?.
    Advance Thanks for your response.
    -Jac

  • How can we delete SID table data and Text table data

    Hi,
    How can we delete SID table data and Text table data of any
    InfoObject.

    Hi,
    Go to transaction SE14, give the technical name if the table:
    /BIC/T<InfoObject Name>   for Text Table
    /BIC/S<InfoObject Name>  for SID Table
    Select "Table" in the given 4 options below  &  hit Edit button.
    in the next screen select "Direct"
    & also select "detele data" radio button.
    & hit  "Activate & adjust database".
    this will delete the complete data from the tables.
    Note: before deleting the SID's make sure of the consequences & after effects.
    Also the SID gets generated the next time you load master data/transaction data only for those records which were loaded..
    Regards,
    Iliyas

  • Delete all data of a table in Oracle before insert operation in BizTalk.

    Hi,
    I need to delete all the data of a table from Oracle before insert data into it from BizTalk. I can't create stored procedure on the oracle table or how to create a xml of the delete schema of the oracle table in the BizTalk with filter node has a blank
    value because i need to delete all the data of the table so that i will send this xml as delete operation.
    Thanks in advance.
    Regards,
    Gyan

    You need to create two schemas: One for deleting all rows and one for inserting.
    Then combine these Schemas into one and use the "CompositeOperation" SOAP Action Header.
    Something like the below (a SQL Example, so the Schemas needs to be replaced by WCF-Oracle syntax)
    <Request xmlns="http://CompositeTest.CompositeSchema">
    <Delete xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Employee">
    <Rows>
    <Employee xmlns="http://schemas.microsoft.com/Sql/2008/05/Types/Tables/dbo">
    </Employee>
    </Rows>
    </Delete>
    <Insert xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Employee">
    <Rows>
    <Employee xmlns="http://schemas.microsoft.com/Sql/2008/05/Types/Tables/dbo">
    <Name>John</Name>
    <Designation>Manager</Designation>
    <Salary>100000</Salary>
    </Employee>
    </Rows>
    </Insert>
    </Request>
    Morten la Cour

  • Large data sets and table partitioning

    I have an Oracle 9i database and I need to store huge volume of data in a table,
    so I use a composite partitioning.
    Is there a maximum size for my table to keep performances (if it's possible, I would
    like to store several Terra (1000 Mega) of data)?
    I would like to know if somebody works on a similar project
    and which tools and environment it uses (server, OS, memory
    size..).
    Thanks for your help.

    Yes, users can update data.
    I don't join data.
    This is an OLTP system.
    To estimate the size of 5 Tb, I just use the number of inserts per day and how many days I keep data in the table and I have an average size of one line (taken on an existing first version table).
    I have another question on partitioning : someone says me it is more efficient to drop a whole partition (or subpartition if I use a composite partition) than to delete a line at the same time, for the performances.
    He says me that data access (in my partition) should be very bad if I delete lines progressively (in this partition) instead of keeping the lines and deleting the whole partition when all its lines are no more used.
    What do you think about it?
    Thanks
    Sandrine

  • I want to delete the transactional record from database table

    Hai,
    I want to delete the transactional data from database table with out using the dialog programming is it there any trancation for this.
    for master data we have the transaction code for delete the records. The t.code is 'OBR2'.
    Plz help in that cse.
    Thanks and regards,
    P.Naganjana Reddy

    Hai,
    Plz help me urgent.
    I am asking i want to delete transactional data from database table without using the dialog programming.
    Thanks and Regards,
    P.Naganjana

  • Script that deletes all the data in the DB

    Somebody has or know a script that delete all the data (but not the tables) of the database???? I have dummy data and know I need the tables clean of data.
    How can I delete it???????? Thank you for you help
    Javier

    You could truncate all the tables with the following commandTRUNCATE TABLE <table_name>;This will delete all the data in the table while keeping the table structure, contraints, indexes, triggers, etc. intact so they wont have to be rebuilt. All foreign keys must be disabled to use the TRUNCATE command.

  • Deleting All BW Data

    Hi Experts
    Is there a transaction (or any other means) in BW to delete all data (transactional and master data)at once?
    I have to clear out our sandbox client now that the R/3 prototype systems have been cleaned up and revised, and would like to do the job as efficently as possible.
    Thanking you in advance.
    Regards
    Sean

    I had this issue a while back and there is no standard transaction to do this. However, what we came up with was a simplish process as follows because we had to do this on a bi weekly basis whenever we refreshed from production:
    -Delete all transactional data manually,
    -Collate the tablenames of all the MD objects (by looking at a table which had the meta data for these), and downloaded them to a excel spreadsheet.
    - Then create a CAT script which uses SE14 (and the table names from the spreadsheet) to delete the master data and SID table....

  • How to delete the data in a table using function

    hi all,
    i need to delete the data in a table using four parameters in a function,
    the parameters are passed through shell script.
    How to write the function
    Thanks

    >
    But the only thing is that such function cannot be used in SQL.
    >
    Perhaps you weren't including the use of autonomous transactions?
    CREATE OR REPLACE FUNCTION remove_emp (employee_id NUMBER) RETURN NUMBER AS
    PRAGMA AUTONOMOUS_TRANSACTION;
    tot_emps NUMBER;
    BEGIN
    SELECT COUNT(*) INTO TOT_EMPS FROM EMP3;
    DELETE FROM emp3
    WHERE empno = employee_id;
    COMMIT;
    tot_emps := tot_emps - 1;
    RETURN TOT_EMPS;
    END;
    SQL> SELECT REMOVE_EMP(7499) FROM DUAL;
    REMOVE_EMP(7499)
                  12
    SQL> SELECT REMOVE_EMP(7521) FROM DUAL;
    REMOVE_EMP(7521)
                  11
    SQL> SELECT REMOVE_EMP(7566) FROM DUAL;
    REMOVE_EMP(7566)
                  10
    SQL>

  • How to delete the data from partition table

    Hi all,
    Am very new to partition concepts in oracle..
    here my question is how to delete the data from partition table.
    is the below query will work ?
    delete from table1 partition (P_2008_1212)
    we have define range partition ...
    or help me how to delete the data from partition table.
    Thanks
    Sree

    874823 wrote:
    delete from table1 partition (P_2008_1212)This approach is wrong - as Andre pointed, this is not how partition tables should be used.
    Oracle supports different structures for data and indexes. A table can be a hash table or index organised table. It can have B+tree index. It can have bitmap indexes. It can be partitioned. Etc.
    How the table implements its structure is a physical design consideration.
    Application code should only deal with the logical data structure. How that data structure is physically implemented has no bearing on application. Does your application need to know what the indexes are and the names of the indexes,in order to use a table? Obviously not. So why then does your application need to know that the table is partitioned?
    When your application code starts referring directly to physical partitions, it needs to know HOW the table is partitioned. It needs to know WHAT partitions to use. It needs to know the names of the partitions. Etc.
    And why? All this means is increased complexity in application code as this code now needs to know and understand the physical data structure. This app code is now more complex, has more moving parts, will have more bugs, and will be more complex to maintain.
    Oracle can take an app SQL and it can determine (based on the predicates of the SQL), which partitions to use and not use for executing that SQL. All done totally transparently. The app does not need to know that the table is even partitioned.
    This is a crucial concept to understand and get right.

  • How to delete all data in a table

    What's the best way to delete all of the data from a table? I wan't to do a data wipe of our database to eliminate all of the test data we've been putting into it over the last few months.
    I've tried using: DELETE FROM TABLENAME; but killed SQL+ after it ran for 13 hours and still wasn't done. There are approximately 900,000 records in this table and I would prefer not to drop/recreate the table because of the various dependencies within the database.
    Any suggestions would be appreciated.
    Thanks,
    Shawn Smiley
    Sr Software Developer/Software Architect
    xwave New England

    Try the TRUNCATE TABLE command. That's quick and easy.
    e.g.
    TRUNCATE TABLE mytable;

  • How to delete all data in all tables in one time ?!

    1 CREATE OR REPLACE PROCEDURE delete_all_data
    2 IS
    3 v_statement VARCHAR2 (200);
    4 BEGIN
    5 FOR i IN (SELECT *
    6 FROM user_tables)
    7 LOOP
    8 v_statement :=
    9 'delete table ' || i.table_name ;
    10 EXECUTE IMMEDIATE v_statement;
    11 END LOOP;
    12 commit;
    13* END;
    SQL> /
    Procedure created.
    SQL> exec delete_all_data
    BEGIN delete_all_data; END;
    ERROR at line 1:
    ORA-00903: invalid table name
    ORA-06512: at "DE2.DELETE_ALL_DATA", line 10
    ORA-06512: at line 1
    I made the previous code , but it's didn't work with me .... any help for this problem please ?!
    I'm just reminder ..... all what I need ,that delete all data in all tables in one time only .
    I'm waiting for the answer ..... and thanks in advance

    create or replace
    FUNCTION TRUNC_SCHEMA RETURN NUMBER AS
    CURSOR select_table IS SELECT TABLE_NAME AS TNAME FROM USER_TABLES ORDER BY 1;
    sTableName Varchar2(128);
    sUser Varchar2(128);
    sConstraintName Varchar2(128);
    plsql_block Varchar2(512);
    BEGIN
    SELECT USER INTO sUser FROM DUAL;
    IF ((sUser='SYSTEM') OR (sUser='SYS')) THEN
    RETURN 1;
    END IF;
    EXECUTE IMMEDIATE 'PURGE RECYCLEBIN';
    -- DISABLE table's constraints
    FOR C1 IN (select CONSTRAINT_NAME, TABLE_NAME from user_constraints where STATUS = 'ENABLED' AND CONSTRAINT_TYPE in ('P','R') ORDER BY R_CONSTRAINT_NAME) LOOP
    sConstraintName := C1.CONSTRAINT_NAME;
    sTableName := C1.TABLE_NAME;
    plsql_block := 'ALTER TABLE ' || sTableName || ' DISABLE CONSTRAINT ' || sConstraintName;
    EXECUTE IMMEDIATE plsql_block ;
    END LOOP;
    FOR D IN select_table LOOP
    --get table name
    sTableName := D.TNAME;
    -- clear table
    plsql_block := 'TRUNCATE TABLE ' || sTableName;
    EXECUTE IMMEDIATE plsql_block ;
    END LOOP;
    -- ENABLE table's constraints
    FOR C2 IN (select CONSTRAINT_NAME, TABLE_NAME from user_constraints where STATUS = 'DISABLED' AND CONSTRAINT_TYPE in ('P','R') ORDER BY R_CONSTRAINT_NAME desc) LOOP
    sConstraintName := C2.CONSTRAINT_NAME;
    sTableName := C2.TABLE_NAME;
    plsql_block := 'ALTER TABLE ' || sTableName || ' ENABLE CONSTRAINT ' || sConstraintName;
    EXECUTE IMMEDIATE plsql_block ;
    END LOOP;
    RETURN 0;
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('ERROR: ' || SQLERRM);
    RETURN 1;
    END TRUNC_SCHEMA;
    /

  • How to delete some date in target table at a mapping?

    How to delete some date in target table at a mapping?
    I extract date from source tabel into target table,
    but before extract date I want to delete some date from target?
    how to do?

    Just to change a bit of terminology in the reply, within the mapping, click on operator properties and choose TRUNCATE/INSERT.
    Note that truncate is dependent on constraints, so you probably must disable those before doing this. You can of course do DELETE/INSERT...
    Jean-Pierre

Maybe you are looking for