你这个也不会涉及到并发啊,就按正常的处理就行。一般涉及并发的都是减法问题,加法没关系。
B. 代码中并发执行同一个sql会影响sql的速度吗
对单次sql执行来讲,影响不会太大,除非并发数超过了数据库瓶颈,导致sql执行需要等待;
对整个并发执行来讲,肯定会比执行单个sql要慢的,因为虽然多次执行的sql是一样的,但是对数据库来讲还是需要进行多次处理的,只是在数据库中sql只需要解析
一次就好
C. 在SQL server 2005 数据库系统中,多用户同时操作数据库成为并发操作,那么在数据库系统上执行并发操作时
楼下说得对, 最小控制单元是:事务 一 事务的属性 事务具有ACID属性 即 Atomic原子性, Consistent一致性, Isolated隔离性, Durable永久性原子性就是事务应作为一个工作单元,事务处理完成,所有的工作要么都在数据库中保存下来,要么完全 回滚,全部不保留一致性事务完成或者撤销后,都应该处于一致的状态隔离性多个事务同时进行,它们之间应该互不干扰.应该防止一个事务处理其他事务也要修改的数据时, 不合理的存取和不完整的读取数据永久性事务提交以后,所做的工作就被永久的保存下来 二 事务并发处理会产生的问题丢失更新当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题、 每个事务都不知道其它事务的存在。最后的更新将重写由其它事务所做的更新,这将导致数据丢失。 脏读当第二个事务选择其它事务正在更新的行时,会发生未确认的相关性问题。 第二个事务正在读取的数据还没有确认并且可能由更新此行的事务所更改。 不可重复读当第二个事务多次访问同一行而且每次读取不同的数据时,会发生不一致的分析问题。 不一致的分析与未确认的相关性类似,因为其它事务也是正在更改第二个事务正在读取的数据。 然而,在不一致的分析中,第二个事务读取的数据是由已进行了更改的事务提交的。而且,不一致的分析涉及多次(两次或更多)读取同一行,而且每次信息都由其它事务更改;因而该行被非重复读取。 幻像读当对某行执行插入或删除操作,而该行属于某个事务正在读取的行的范围时,会发生幻像读问题。 事务第一次读的行范围显示出其中一行已不复存在于第二次读或后续读中,因为该行已被其它事务删除。同样,由于其它事务的插入操作,事务的第二次或后续读显示有一行已不存在于原始读中。 三 事务处理类型 自动处理事务 系统默认每个T-SQL命令都是事务处理 由系统自动开始并提交隐式事务当有大量的DDL 和DML命令执行时会自动开始,并一直保持到用户明确提交为止,切换隐式事务可以用SET IMPLICIT_TRANSACTIONS 为连接设置隐性事务模式.当设置为 ON 时,SET IMPLICIT_TRANSACTIONS 将连接设置为隐性事务模式。当设置为 OFF 时,则使连接返回到自动提交事务模式 用户定义事务 由用户来控制事务的开始和结束 命令有: begin tran commit tran rollback tran 命令分布式事务跨越多个服务器的事务称为分布式事务,sql server 可以由DTc microsoft distributed transaction coordinator 来支持处理分布式事务,可以使用 BEgin distributed transaction 命令启动一个分布式事务处理
D. SQL 事务并发问题处理 都进来看看
确保你的事务的第一句是update对应A表记录的语句,就算此时不马上把票数-1,也要确保随便update一个字段(更新成原值也可以),这样就保证了事务第一步已经给表此记录上了行锁,并发时,只要当前事务没走完,其他用户操作同条记录的操作都处于等待中不能执行,就不会发生并发出现负数的情况
这个是类似项目数据库端比较通用的解决并发问题的方法
不过你的执行时间如果是10秒太久了,至少要控制到一秒吧,高并发下,这样10秒会出问题的
E. Sql中如何使用 并发 触发 事务
这个也不是事务也不是触发器
当有人浏览公告时,程序中把该公告的id以及查看人的id存入t_b表
这只是个插入语句,而且只有一个表,没涉及到其他表的操作
不过建议你t_b表加一列添加时间
F. sql事务并发的问题,我用事务修改会员的额度,但是碰到2个事务同时执行的时候额度乱掉了,这个该怎么处理
你用“事务”不就可以了嘛。A和B,只要其中一个事务开始,在这个事务没有提交前,另一个不会被提交(执行...
G. 怎样解决sql server 数据库的并发问题
“sql server 数据库的并发问题”不如说是“数据库并发处理”问题。因为它不光是存在于SQL数据库上,几乎存在于任何数据库上。并发情况的处理一直是网络数据库编程需要面对和解决的,也往往是最花费时间和精力去对付的问题之一。这对于多数网络数据库编程新手来说,都是要碰到的一个问题。
就本人的经验给于以下提示:
1、对于容易出现并发问题的表,最好是一次性取出所需的数据,或部分数据,而不使用那些带缓冲的控件。
2、每次改写数据时,需要先读取要改写的记录进行校验。
3、尽可能少地对已存入表中的数据进行改写。可以用“删除”标志来作费原记录,新增改写后的记录。这样,每次操作都会“记录在案”,而不会无据可查。也规避了客户端改写时某条记录已发生了变化的情况发生。
4、每个表都需要拥有一个自动增量的字段,并设为主键,这样会减少SQL冲突的发生规避某些错误,而且会使数据库数据的查找加快(注意,在SQL2000中,如果一个表中存在两条完全一样的记录,将发生严重问题!比如两条空白记录)。
5、使用什么语言编程是无所谓的,重要的是注意设计上的控件。如当某个客户端上正在对某人员的信息进行处理时,别的客户端就不应该对该人员的信息进行处理。这可以引入占用机制,如客户端调入某人准备处理前先在表中标志占用标志和占用时刻……(具体的你自个去想吧)。
最后,希望给你说了这么多,你能看懂并好好运用它们。网络数据库编程技术上是不难的,最难的是考虑方方面面的因素。
H. 关于SQL Server2000数据并发导致存储慢的问题
主要有两种方法
1、优化sql的逻辑,使得逻辑越简单越好。
2、使用到的表结构要建索引