I have an update cursor running that updates a field based on a lookup table (Python dictionary). The cursor completes fine, but seems to pause and hold after each 1000 records - I have a test in it to write out the time each 100 records, see code. If you look at the results - you can see the first 1000 records don't seem to take any time, but then the 1100th result is delayed. I am running this on an Oracle DB.
x = 0
cur = arcpy.da.UpdateCursor(property_fc,["FACILITYID","GLOBALID"])
for row in cur:
x = x + 1
if (x % 100) == 0:
print("At {}, {}".format(x,datetime.now() - vST))
if row[1] in global_id_lut:
row[0] = global_id_lut[row[1]]
cur.updateRow(row)