SQLServer和Oracle并行处理方法的区别是什么?

发布网友 发布时间:10小时前

我来回答

1个回答

热心网友 时间:10小时前

SQL Server和Oracle采用不同的并行处理方法。在并行访问问题上,数据库操作目标是提供快速数据访问。SQL Server和Oracle均采用多线程机制,能够同时处理多个请求。然而,当用户修改数据时,情况变得复杂。

数据库通常只允许唯一用户一次修改特定数据。当用户开始修改数据,SQL Server和Oracle均能快速锁定数据,阻止其他用户更新。若此时另一用户尝试查询该数据,数据库管理系统如何应对?Oracle和SQL Server采取不同策略。

SQL Server方法中,当有人修改数据时,立即锁定数据,阻塞所有访问该数据的连接,包括查询操作。数据只有在交易被提交或回滚后,其他访问操作才能执行。使用SQL Server的pubs示例数据库演示:在Query Analyzer中打开两个窗口。在第一个窗口执行更新pubs数据库中图书价格的SQL语句。在另一个窗口执行查询titles数据表的语句。由于没有执行commit语句,数据更改操作尚未最终完成。在第二个窗口执行查询时,你将无法得到结果,窗口底部的小地球图标会持续转动。尽管仅更新了一行数据,但查询语句的对象恰好包含正被修改的数据行。除非回到第一个窗口提交交易或回滚,否则不会返回任何数据。

SQL Server的数据锁定策略可能降低系统性能和效率。锁定数据的时间越长,或锁定的数据量越大,其他数据访问用户可能不得不等待查询语句的执行。因此,从程序员的角度来看,应尽量使交易代码既小又快。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com