the DML related process while bcp goes on. I do not block
the others and have my data integrity during my bcp work.
we have not observe the same problem. This problem is
snap shot on a moving table, which is not always possible.
Regards.
tartampion.
Post by Mark A. ParsonsPost by unknownMark,
1- I am afraid what you say as far as locking the table
by bcp is not a solution, how can one do that while
applications are accessing the database? My bcp process
has no right to block the tables in multi-users
environment. 2- I do not think that isolation level 3 is
going help me either as the delete/insert by MQ is not
in a transaction, as a result when I bcp out; a row can
already be in the bcp out file and it might be deleted
and re-inserted and thereofre read again.
For the isolation=3 example I left off the 'begin tran',
so it should have read ...
bcp .... --initstring 'begin tran set transaction
isolation level 3' or
bcp .... --initstring 'set transaction isolation level
3 begin tran'
The net result is that the bcp would obtain&hold shared
row/page/table locks until it completes. The shared locks
would in turn block all writes by other processes.
-------------------------
So what you want is to take a snapshot-in-time picture of
your table, but you have other processes constantly
writing to (ie, modifying) the table?
What happens to the validity of your bcp data if a) the
bcp completes during no writes to the table and b) the MQ
process deletes/inserts a record 1 second after the bcp
completes? Doesn't this 'invalidate' your bcp data?
How do you run SELECTs against this table *AND* know for a
fact that your result set has not been invalidated due to
an intermittent write?
Short of implementing an Oracle-like/SybaseIQ-like
versioning scheme (*yuck*), how does anyone address this
issue in an active database, eg, as soon as a SELECT (or
bcp) completes the results are automatically
invalidated/out-of-date due to the constantly changing
data?
I'm not sure this is a bcp 'problem' but rather an issue
with how a client handles SELECT results when the
underlying data is in constant flux ... ???
-------------------------
Post by unknownTo me there is no solution but the use some sort of
workaround.
What kind of workaround(s) do you have in mind?
-------------------------
I've read the previous posts about how this was not a
problem with ASE 12.x, but I'm wondering if a) this was a
problem in ASE 12.x but no one noticed or b) something
has changed (eg, locking/partitioning/clustered-index
scheme, increase in table size) with the ASE 15.x
instance that has increased the chance of 'phantom' rows
showing up?