Network Speed and IT Guys

That your runs so much faster means there are RI Updates going on. ie When you update one record it updates a whole lot of child records. Turning off the transaction may possibly cause problems if there’s a crash in the middle of updating, your stuff will only be half done and it can be really hard to figure out whats what.

Also are you using TPS or DAT files? TPS usually goes faster with transactions, DAT Slower.

1 Like

That setting should only make a difference when you are actually writing to files, if your observation below is something that doesn’t write to files, then there must be something else going on.

I think any impact of the ‘Enclose RI code in transaction frame’ is seen only in the ABFILE classes. Basically checking that option will set UseLogout = true for the file. If you look at RelationManager.Update you will see the difference – there is a bunch of extra code involved when UseLogout is on. More code means slower, but really all that code does is:
Do a logout
Do the update (same as without the UseLogout)
Check to see if there was a problem: if there was, then rollback, otherwise commit.

With TPS files my understanding of how that works is that the transaction (update in this case) is written into a .TRN file and then transferred into the .TPS file on the commit. Probably very slightly slower for a single row, much faster for multiple row updates, or updates to multiple files.

As you probably know, your LOGOUT statement will include all of the tables that are related to the file. I think, for TPS files, that LOGOUT cannot be done if any file/table is locked by someone else (e.g. opened with exclude all). So if you have, for example, a logging file that is opened for exclusive access when changing things and you have that logging file set up with a relation to one or more “real” data files, that could slow down database access with the RI transaction frame.

Other than that, what Sean said.

1 Like

TPS over a network?
I always use the IP Driver and don’t have any issues.

I also choose the IP driver solution in this case. Almost 100% compatible with TPS.