一个Transaction会和数据库通讯几次? 这不是和服务器通讯几次的问题,应该说只要你和数据库一直连接着,那么就一直在通讯,直到连接断开使用Transaction,要手动提交(commit),数据库才会一次性提交事务相关的所有数据 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的意思是,是否是Commit时批量将数据传上去的?你所说的一直连接,其实在不进行操作时Connetion的维持通讯开销很小,可以不管但是我如果要调用20000次存储过程,每次都只传一个byte的参数,就要考虑效率了;我希望能够一次性传输这20000个请求 这样好吗?服务器要不很空 要不很忙 事实上 你集中提交也没什么优势啊 如果数据量很大的话 好比你一次提交2W个SP 那其他连接效率肯定受影响了!关于用transaction 补充一句 tranaction的写入优先级是很高的 借此才能保证数据的一致性 checkpoint发生的时点不是按照发生的交易数量 而是跟频繁程度和数据量等有关如果你一次提交这么多SP 确保服务器有UPS 否则突然断电重启sql就有得rollback/forward了 还不是很明白,不过我决定不用transaction了 SQL Server默认是自动提交模式。当你执行完insert或update等DML操作后,会自动将结果提交到服务器上。而你说的commit一批是为了保持数据的完整性,如:一次修改2000条,全部成功那么commit就会全部一次提交到服务器,如果有一条没有成功,你不希望让这个结果反映到服务器上,那么就rollback。这个时候才用到显式的commit。而这个过程是会锁定那个表的。你的目的只是为了防止每次通讯浪费资源,这个你没必要担心,别用显式的commit了。就修改一条,提交一条吧。 关于transaction 补充一句 tranaction log的写入优先级是很高的 如何将mssqlserver中的and,or 转换为case when或者if else 怎么创建约束,使某字段得数据只能录入“A”或“B”呢? 高分求如何通过数据库管理器以ODBC方式连接SQL Server 求助 SQL 语句 【有难度】 急需这个题目的数据库设计 这两中事务写法有什么不同 大家帮忙看看这句SQL存储过程的语句哪里出错了? sql 问题 请教VFP下如何得到当前操作系统的路径 请教sql server 7.0的问题! sql可以实现迭代吗? 怎么解决动态交叉表的横向合计
你所说的一直连接,其实在不进行操作时Connetion的维持通讯开销很小,可以不管
但是我如果要调用20000次存储过程,每次都只传一个byte的参数,就要考虑效率了;我希望能够一次性传输这20000个请求
事实上 你集中提交也没什么优势啊 如果数据量很大的话 好比你一次提交2W个SP 那其他连接效率肯定受影响了!
关于用transaction 补充一句 tranaction的写入优先级是很高的 借此才能保证数据的一致性 checkpoint发生的时点不是按照发生的交易数量 而是跟频繁程度和数据量等有关
如果你一次提交这么多SP 确保服务器有UPS 否则突然断电重启sql就有得rollback/forward了