Rowid round robin partitioned read method

The rowid round robin method uses the ROWID_ROW_NUMBER function from the DBMS_ROWID package to obtain the row number of the row within the table block where the row resides. The method uses the MOD function on the row number to distribute rows evenly among the nodes.

These are the advantages of using the rowid round robin method instead of using the rowid range method:
  • The currently connected user does not require SELECT access on the DBA_EXTENTS dictionary view.
  • The rowid round robin method supports reading data from an index-organized table.
  • The rowid round robin method supports reading data from a view. The rows in the view must correspond to the physical rows of the table. The rowid round robin method cannot read rows from a view that is derived from a join operation on two or more tables.

Example of using the rowid round robin partitioned read method

For this example, the Oracle connector is configured in the following way:
  • The Select statement property is set to SELECT * FROM TABLE1 WHERE COL1 > 10.
  • The Table name for partitioned reads property is set to TABLE1.
  • The connector is configured to run in parallel mode on four nodes.
  • The Partitioned reads method property is set to Rowid round robin.
The connector runs these SELECT statements on the nodes:
Node 1
SELECT * FROM TABLE1 WHERE MOD(DBMS_ROWID.ROWID_ROW_NUMBER(TABLE1.ROWID), 4) = 0 AND
	(COL1 > 10)
Node 2
SELECT * FROM TABLE1 WHERE MOD(DBMS_ROWID.ROWID_ROW_NUMBER(TABLE1.ROWID), 4) = 1 AND
	(COL1 > 10)
Node 3
SELECT * FROM TABLE1 WHERE MOD(DBMS_ROWID.ROWID_ROW_NUMBER(TABLE1.ROWID), 4) = 2 AND 
	(COL1 > 10)
Node 4
SELECT * FROM TABLE1 WHERE MOD(DBMS_ROWID.ROWID_ROW_NUMBER(TABLE1.ROWID), 4) = 3 AND 
	(COL1 > 10)