Il movimento di riga è principalmente applied to partition tables. Consente alle righe di essere spostate tra le partizioni. Con il movimento fila disattivato, ovvero l'impostazione predefinita, non è possibile spostare una riga con un aggiornamento:
SQL> CREATE TABLE part_table (ID NUMBER)
2 PARTITION BY RANGE (ID)
3 (PARTITION p0 VALUES LESS THAN (1),
4 PARTITION p1 VALUES LESS THAN (MAXVALUE));
Table created
SQL> INSERT INTO part_table VALUES (0);
1 row inserted
SQL> UPDATE part_table SET ID = 2;
UPDATE part_table SET ID = 2
ORA-14402: updating partition key column would cause a partition change
Quando consenti movimento fila, è possibile spostare le righe con un aggiornamento:
SQL> ALTER TABLE part_table ENABLE ROW MOVEMENT;
Table altered
SQL> UPDATE part_table SET ID = 2;
1 row updated
Questo Nella maggior parte dei casi, la funzionalità non influisce sulle prestazioni: le righe vengono archiviate e interrogate esattamente nello stesso modo, indipendentemente dal fatto che la funzione sia abilitata o meno. Tuttavia, quando il movimento di riga è abilitato, le righe possono essere spostate fisicamente (simile a delete + insert) con ALTER TABLE SHRINK SPACE
per esempio. Questo può a sua volta influire sul fattore cluster di indice, ad esempio, che può influire sulle prestazioni di alcune query.
Il movimento di riga è disabilitato per impostazione predefinita perché implica che lo rowid
di una riga può cambiare, il che non è il solito comportamento in Oracle.
fonte
2013-10-17 15:05:52
Abilitare il movimento di riga facilita anche lo spazio di restringimento di tabelle alterate, che in alcuni casi può consentire di ridurre le dimensioni di una tabella senza una ricostruzione. –
Grazie mille !! Quindi, anche se lo abilitiamo, le query continueranno a richiedere lo stesso tempo. Mi aspettavo alcuni miglioramenti delle prestazioni. –
Il movimento della riga può influire sulle prestazioni. Le query sull'indice potrebbero richiedere molte operazioni di I/O aggiuntive. Puoi anche leggerlo qui: http://www.dba-oracle.com/t_enable_row_movement.htm –