Thanks, Dan.  I'd have to say that this particular app usually does not update 
"a row at a time", other than when the user is in an edit form.  I'd say almost 
all of the routines would be updating multiple rows based on some kind of 
"where" clause.  Can't say whether it would be updating 10 rows or 1000 rows, 
the description below says to use On when "affecting many rows in a table" 
which would be a subjective matter.  Obviously I'm trying to speed up multi-row 
table updates, not a single-row update, so it looks like Pagelock should be 
kept On.   My guess would be that 90% of the app updates multiple rows, so 
probably no reason to change from the default On.

Karen

 

 

 

-----Original Message-----
From: Dan Goldberg <d...@lancecamper.com>
To: rbase-l <rbase-l@googlegroups.com>
Sent: Tue, May 30, 2017 5:25 pm
Subject: RE: [RBASE-L] - Pagelock (corrected text)



I run with both pagelock and rowlock on. I tried turning off pagelock once and 
my users complained it was slow on updating data. I haven’t got time to do the 
switching per commands.
 
My commands mostly has many update and deletes many rows at a time. Now you can 
turn it on or off at any time. So you can leave it off and when you have an 
update or delete command that affects more than one row then you can turn it on 
and then off after.
 
Razzak had a good article explaining when you would turn on or off the pagelock.
 
http://www.razzak.com/fte/pdf/TipoftheDayDigest_2016.pdf
 
The settings for PAGELOCK are:
 
ON - R:BASE uses page locking or row locking as appropriate. When PAGELOCK is 
ON and two or more users are updating rows within the same page of data, R:BASE 
only lets the first user update rows--the other users are locked out until the 
first user's update has been completed. 
 
OFF - R:BASE uses a fast row-locking method where only row locking is applied 
with no page locking. When PAGELOCK is OFF, you can lock rows of data instead 
of locking a page of data. You increase multiuser performance when PAGELOCK is 
OFF. And even more so when STATICDB and FASTLOCK are on. 
 
If you know that your application mainly updates or deletes data a row at a 
time, rather than many rows, set PAGELOCK to OFF for row locking. In this case, 
R:BASE locks a row, reads the row, makes the change, and then releases the row. 
Otherwise, set PAGELOCK ON for page locking when you are doing an UPDATE and/or 
DELETE affecting many rows in a table.
Keep in mind that the PAGELOCK setting can be changed dynamically and can be 
different for different users using the same database.


Dan
 
From: karentellef via RBASE-L [mailto:rbase-l@googlegroups.com]
Sent: Tuesday, May 30, 2017 3:09 PM
To: rbase-l@googlegroups.com
Subject: Re: [RBASE-L] - Pagelock (corrected text)
 
Ooops, got one word wrong

 

 

 

I'm wrestling with the decision of whether to use PAGELOCK OFF in one of my

bigger X Enterprise databases.  Looking at all the "help" documents it seems
like the only reason you would want pagelock On (the default) is if you are
updating all the rows in a table, with no "where" clause.  As in this help 
example:

-- The UPDATE must alter the values for many rows

  SET PAGELOCK ON --use page locking 

UPDATE <tablename> SET <columnname> = value  --no WHERE Clause

SET PAGELOCK OFF --use row locking 



So, if I have heavily-used tables with millions of rows and never update without
some kind of Where clause, and if the only tables where I might update all rows
would be smaller tables, there's no reason to keep the default Pagelock On
is there?   And I"m guessing that no one knows if there's a threshold where you
would want to set it back to On, say if you used a where clause that would 
update
a couple hundred or thousands of records?  Or is Pagelock On ignored if there's
any kind of where clause?

I've never changed the default Rowlocks On setting, so I'm good there.

Opinions?  Anyone who's recently changed from On to Off and noticed a 
difference?

Thanks everyone!

Karen



--
You received this message because you are subscribed to the Google Groups 
"RBASE-L" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
torbase-l+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


-- 
You received this message because you are subscribed to the Google Groups 
"RBASE-L" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
torbase-l+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"RBASE-L" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rbase-l+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


-- 
You received this message because you are subscribed to the Google Groups 
"RBASE-L" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rbase-l+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to