Re: How to handle concurrency issue with better performance?



Timestamps are guaranteed unique. they are simply an auto-incrementing
integer value. They are designed to determine if the row was changed since
the last time the row was read.

--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
INETA Speaker
www.betav.com/blog/billva
www.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________
Visit www.hitchhikerguides.net to get more information on my latest book:
Hitchhiker's Guide to Visual Studio and SQL Server (7th Edition)
and Hitchhiker's Guide to SQL Server 2005 Compact Edition (EBook)
-----------------------------------------------------------------------------------------------------------------------

"cherry" <cherryparadise001@xxxxxxxxx> wrote in message
news:1175306883.170345.196620@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Then for timestamp, it will be unique? Is it a automatic updated field
in table?

In my plan, I will use SP and dataset.
when I am updating a record, i will compare the last updated date in
the database with the original last updated date value in the row of
the dataset.
So, it can prevent one from overwriting others' changes...of course,
the violation throwing exception should be handled.

Regards,
Cherry

On 3?31?, ??6?19?, "William \(Bill\) Vaughn"
<billvaRemoveT...@xxxxxxxxx> wrote:
Keep in mind that a timestamp column does not store a date/time value.
When
the INSERT ads a new row, two rows can be assigned the same datetime value
from GetDate().

--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
INETA Speakerwww.betav.com/blog/billvawww.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no
rights.
__________________________________
Visitwww.hitchhikerguides.netto get more information on my latest book:
Hitchhiker's Guide to Visual Studio and SQL Server (7th Edition)
and Hitchhiker's Guide to SQL Server 2005 Compact Edition (EBook)
---------------------------------------------------------------------------­--------------------------------------------

"cherry" <cherryparadise...@xxxxxxxxx> wrote in message

news:1175246213.455878.159160@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Thanks all.
Right now I am thinking whether I can use a existing DateTime column
(ie last_update_date) as the control instead of creating a new
TimeStamp.
In this way, I can save the storage (there are quite many records) and
the time in creating the column (and also quite many tables), right?
The result of using datetime or timestamp should be the same, right?
will there be any potential risk?

Thanks and Regards,
Cherry

On 3¤ë23¤é, ¤U¤È1®É27¤À, "RobinS" <Rob...@xxxxxxxxxxxxxxx> wrote:



Creating applications that party down on
these base tables is a plan for disaster. One morning you'll wake up
with
a terrible security headache that can't be cured with a glass of
tomato
juice and a raw egg.

LOL. Great turn of phrase.

Robin S.
----------------------------------------
"William (Bill) Vaughn" <billvaRemoveT...@xxxxxxxxx> wrote in
messagenews:eEzxCdKbHHA.4656@xxxxxxxxxxxxxxxxxxxxxxx

This question has been asked (and answered) many, many times here and
in
my (and other's) books over the years.
The CommandBuilder (CB) is a mechanism with many limitations. As you
have
found, it fails to deal with more sophisticated designs--all too
often,
even those as simple as yours. Yes, many developers have migrated to
stored procedures which use TimeStamps to monitorconcurrency--this
approach is far faster and easier to code. The newest CB also uses
this
approach as well (ADO.NET 2.0 and VS2005).

As I describe in my latest book (if I may be so bold to mention it
again), the real solution is often in the design of the application
and
the way it accesses data. Collisions occur because your design permits
more than one application (even the same application) to access the
same
row at the same time--where both applications try to change the row.
This
is like designing traffic intersections without signals and worrying
about where to put the ambulances and fire trucks to deal with the
collisions. We all work with relational database designs and more
importantly DBAs that don't expose the base table for a litany of
reasons. Creating applications that party down on these base tables is
a
plan for disaster. One morning you'll wake up with a terrible security
headache that can't be cured with a glass of tomato juice and a raw
egg.

--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
INETA Speaker
www.betav.com/blog/billva
www.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no
rights.
__________________________________
Visitwww.hitchhikerguides.nettoget more information on my latest book:
Hitchhiker's Guide to Visual Studio and SQL Server (7th Edition)
and Hitchhiker's Guide to SQL Server 2005 Compact Edition (EBook)
---------------------------------------------------------------------------­---------------------------------------------

"cherry" <cherryparadise...@xxxxxxxxx> wrote in message
news:1174529058.747242.168860@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
I am now thinking a method to handle theconcurrencyissuein my
program.
In .Net, the Command Builder Class will generate SQL automatically in
which it compares all the fields' original version with the version
in
database as the update criteria and thus avoid overwriting others'
data.

In my case, I have a dataset retrieving data from joining several
tables and thus encounter error when use the DataSet.Update() method
of adapter directly.(cannot generate sql coz more 1 table in the
select command).
Therefore, I create stored procedure for the update command and
assign
them to the dataset so that it can do the update. However, using the
concept of commandbuilder to handleconcurrencyissue, I have to
passing all the fields' original version to the stored procedure as
the where conditiion, the number of parameters might rise to about 30
to 40.
Will the preformance (esp. client) downgrade very much in using such
update method?

I was suggested by colleague to use 2 datasets, one is that I am
using
right now and another will act as a image, storing the only table
which will be updated. So that when saving data to the database, I
can
use the image DataSet's Update Command directly and needn't pass so
many parameters. But it seems that the synchonization between these 2
dataset is quite troublesome!

How you guys think? Which isbetter? or there is somebettersolution
which I may not know?
I am using VS.Net 2003 Enterprise to do the development, language is
VB .Net and the Database is Oracle 10g.
People using the application ~10-20, not a big number but the
performanceof application must be as fast as possible due to the
business requirement.

Thanks in advanced.

Regards,
Cherry- ÁôÂóQ¤Þ¥Î¤å¦r -

- Åã¥Ü³Q¤Þ¥Î¤å¦r -- ??????? -

- ??????? -



.



Relevant Pages

  • Re: How to handle concurrency issue with better performance?
    ... Then for timestamp, it will be unique? ... Hitchhiker's Guide to Visual Studio and SQL Server ... We all work with relational database designs and more ... select command). ...
    (microsoft.public.dotnet.framework.adonet)
  • Re: How to handle concurrency issue with better performance?
    ... Keep in mind that a timestamp column does not store a date/time value. ... Hitchhiker's Guide to Visual Studio and SQL Server ... We all work with relational database designs and more ... select command). ...
    (microsoft.public.dotnet.framework.adonet)
  • Re: How to handle concurrency issue with better performance?
    ... The result of using datetime or timestamp should be the same, ... We all work with relational database designs and more ... Hitchhiker's Guide to Visual Studio and SQL Server ... select command). ...
    (microsoft.public.dotnet.framework.adonet)
  • Re: How to handle concurrency issue with better performance?
    ... Collisions occur because your design permits ... We all work with relational database designs and more ... Hitchhiker's Guide to Visual Studio and SQL Server ... select command). ...
    (microsoft.public.dotnet.framework.adonet)
  • Re: How to handle concurrency issue with better performance?
    ... Collisions occur because your design permits more than one ... relational database designs and more importantly DBAs that don't expose the ... Hitchhiker's Guide to Visual Studio and SQL Server ... select command). ...
    (microsoft.public.dotnet.framework.adonet)