Partial Update

The RDB DAS uses the SDO Change Summary to generate a set of database write operations. Rather than generated a statement to update all columns in a table that maps to a SDO DataObject Type, the DAS generates statements that update ony those columns that map to a modified DataObject property. For example, consider a Customer DataObject that has had the LastName property changed. The partial update statement generated by the DAS will look something like this:

   UPDATE CUSTOMER SET LASTNAME = ? WHERE ID = ?

Rather than a statement that updates all columns like this:

   UPDATE CUSTOMER SET FIRSTNAME = ?, SET LASTNAME = ?, SET ADDRESS = ?, SET PHONE = ?, SET AGE = ?, SET SHOESIZE = ? WHERE ID = ?

There are a couple of very good reasons for using a partial update approach. For one, a performance boost can be realized by applications writing to wide tables. For example, tables with over 100 columns are not unheard of. It can be a huge waste of resource to update 100 columns when only one was modified. Another reason for partial update is that some databases employ triggers on specific columns in a table. Partial updates are necessary when column triggers are employed to avoid tripping the trigger on every row update rather than only on updates to the specific column.