利用timestamp实现数据库处理同一记录的时间差异问题
2009-07-14 19:47
405 查看
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/LiveCoach/archive/2007/02/02/1500466.aspx
在工作中,我们经常处理某一行记录时发现有多个线程同时处理的现象(SQLSERVER),尽管系统采取相应的锁的策略来防止争用时死锁的现象,但对于一个频繁的处理记录来说,由于系统的多线程机制,所以多个事务处理同一记录时由于事务的大小不同而时间还是有先后的,这就可能造成对数据库的脏读,通过对多种方法的研究发现使用timestamp是比较好的解决方法,即在使用最频繁的表中添加一列字段,类型为timestamp ,添加完毕后系统会自动生成相应的唯一值,如果数据记录有任何改动,timestamp值也会做相应的调整,采用这种方法,我们在事务处理开始时,先记录旧的timestamp值,等真正修改数据时,检查timestamp是否相同,如果相同,说明数据不是脏的继续处理,如果不同则说明处理之前有其它线程进行了修改,本次可以放弃,以确保数据的安全一致.
在工作中,我们经常处理某一行记录时发现有多个线程同时处理的现象(SQLSERVER),尽管系统采取相应的锁的策略来防止争用时死锁的现象,但对于一个频繁的处理记录来说,由于系统的多线程机制,所以多个事务处理同一记录时由于事务的大小不同而时间还是有先后的,这就可能造成对数据库的脏读,通过对多种方法的研究发现使用timestamp是比较好的解决方法,即在使用最频繁的表中添加一列字段,类型为timestamp ,添加完毕后系统会自动生成相应的唯一值,如果数据记录有任何改动,timestamp值也会做相应的调整,采用这种方法,我们在事务处理开始时,先记录旧的timestamp值,等真正修改数据时,检查timestamp是否相同,如果相同,说明数据不是脏的继续处理,如果不同则说明处理之前有其它线程进行了修改,本次可以放弃,以确保数据的安全一致.
相关文章推荐
- 利用timestamp实现数据库处理同一记录的时间差异问题
- Mongodb利用aggregation实现抽样查询(按记录数和时间)
- 利用ISAPI实现向数据库中添加记录
- 利用数组实现数据库记录的批量录入
- java Web项目中,利用其过滤功能,实现访问者每次访问服务器时,记录访问者的IP,访问时间,Url等信息,并保存到文件的操作
- 5.11 一个用Spring AOP实现异常处理和记录程序执行时间的实例
- 利用VC和ADO接口编写一个dll模块实现对数据库数据的处理
- 用DateFormat处理时间格式,转化为timestamp形式存入数据库(以XXXX年XX月XX日为例)
- 一个用Spring AOP实现异常处理和记录程序执行时间的实例(一)
- ASP.NET MVC中利用AuthorizeAttribute实现访问身份是否合法以及Cookie过期问题的处理
- 一个用Spring AOP实现异常处理和记录程序执行时间的实例--邵京国
- Mysql自动更新的时间值TimeStamp与Java(mybatis)读取后多了8小时问题记录
- MySQL Timestamp特别要注意得地方,居然默认自动更新,不过也可利用作为记录修改时间
- (精)如何利用T_SQL实现数据库备份与还原处理之一--(如何利用sql语句,得到数据库文件目录)
- asp中利用数组实现数据库记录的批量录入方法
- Django 使用 MySQL 存储时间中遇到的问题(在数据库中记录插入时间、更新时间、删除时间)
- SAR图像处理 MSTAR数据库利用问题
- 数据库->SQL Server2005->随机遇到问题->查询name重复,id不重复,时间最新的记录
- 数据库时间问题处理
- 利用建站快速软件包:XAMPP,构建基于winodws平台快速搭建PHP的数据库应用- kimai - 团队时间记录