Hello All, I am new and have a question is using an insert possible without a start id or end id? Also I want to be able to retrieve a specified amount of records. If so I can't find anything to help me complete an insert using aparallel process

DBMS_PARALLEL_EXECUTE provides a mechanism to solve specific issues. It should not be your first option. It is more efficient to use parallel DML. From what you are saying, it would appear to me a better option for you would be to do this.

Parallel execution can only improve performance if the server is capable of coping with the extra workload. If there are any bottlenecks on the server during this process, running it in parallel can actually make it run slower.

What would you recommend to update a very large table in the quickest amount of time. I tried to truncate the main table and used a view to repopulate the original table with a hint. Then I tried a cursor but still had an issues with performance.

-- Modify the data using an insert. This can give a similar result to a delete or update depending on th query.INSERT /*+ APPEND PARALLEL(emp_new) */ INTO emp_new SELECT /*+ PARALLEL(emp) */* FROM emp WHERE.....COMMIT;

The constraints and indexes don;t really make any difference as they can be rebuilt. Dependencies (like FKs to the table) are a problem as they would need to be recreated. These also represent a problem for a truncate and insert though too.

Looks like you may have to do a regular UPDATE. Using the PARALLEL hint may improve performance, if your server can cope with the extra workload.

The technique is the same for INSERT ... SELECT, UPDATE or DELETE. Do the chunking by ROWID on the base table, then incorporate the ROWID into the WHERE clause. In the case of the INSERT SELECT, the table in the sub-select is the one that needs to be chunked, like this.