Question: I want to update multiple rows in my table, and I need to understand how to update multiple columns.
I already know how to update multiple rows using my where clause, but I don't see how to update multiple columns.
However, parallelism can be used against a single dmp file by breaking the dmp file into equal-sized chunks and loading each into the target table(s) simultaneously.
For example, you cannot parallel load a dependent object before the master objects have been imported.
Consequently the parallel clause for a Data Pump import (impdp) is most useful when specifying multiple dmp files to be loaded in parallel.
In Oracle 10 versions, can update and delete on the same table cause deadlocks even if they are operating on different rows of same table concurrently? R_ID=: B1 ) ----- PL/SQL Stack ----- ----- PL/SQL Call Stack ----- object line object handle number name 45887d750 24 procedure RPT_TABLE.
The table has primary key made-up of two columns, and do not have any FK associated/refereed with any other table. T1_UPDATE_Stored Proc 6399ba188 1 anonymous block If you could update your question with the deadlock graph, that would be useful information.
Locking behaviour depends on whether foreign key columns are indexed.
If foreign keys are not indexed, then the child table will probably be locked more frequently, deadlocks will occur, and concurrency will be decreased.
It is a deadlock due to user error in the design of an application or from issuing incorrect ad-hoc SQL. (All the information I requested is available in the trace file.) As Alessandro mentioned, it's possible for sessions locking different rows in the same table to deadlock due to unindexed foreign keys on the child table of a parent/child relationship.
The following information may aid in determining the deadlock: Deadlock graph: ---------Blocker(s)-------- ---------Waiter(s)--------- Resource Name process session holds waits process session holds waits TX-0007003e-0081d6c3 45 790 X 104 20 X TX-00080043-0085e6be 104 20 X 45 790 X session 790: DID 0001-002D-000035F9 session 20: DID 0001-0068-000007F6 session 20: DID 0001-0068-000007F6 session 790: DID 0001-002D-000035F9 Rows waited on: Session 790: obj - rowid = 0000F0C8 - AAAPDIAAMAAAEf IAAA (dictionary objn - 61640, file - 12, block - 18376, slot - 0) Session 20: obj - rowid = 0000F0C8 - AAAPDIAAMAAAEf GAAA (dictionary objn - 61640, file - 12, block - 18374, slot - 0) ----- Information for the OTHER waiting sessions ----- Session 20: sid: 20 ser: 4225 audsid: 57496371 user: 72/RPT_TABLE flags: (0x45) USR/- flags_idl: (0x1) BSY/-/-/-/-/- flags2: (0x40009) -/-/INC pid: 104 O/S info: user: oracle, term: UNKNOWN, ospid: 20798 image: [email protected] client details: O/S info: user: gtsgen, term: unknown, ospid: 1234 machine: caiapp08p-node0program: JDBC Thin Client application name: JDBC Thin Client, hash value=2546894660 current SQL: delete from RPT_TABLE. Also, It's possible that you could have deadlocks on two sessions updating different rows of the same table, even if the table is not part of a parent/child relationship, if, for example, the table has a shortage of ITL entries.
In this case, SID 20 is executing "delete from RPT_TABLE.