搜索
首页 电脑/网络 软件 系统软件

0的迁移都有什么?

Oracle向MSSQLServer7.0的迁移都有什么?

全部回答

2017-07-27

44 0
    死锁 当一个进程锁定另一个进程需要的页或表,而后者又锁定了前者所需要的页时,死锁就发生了。死锁也称为“僵局”。SQL Server 自动检测并处理死锁。如果发现了死锁,服务器就会终止处于“僵局”的用户进程。
   每次数据修改后,程序代码都应检测消息编号 1205,它用于指示死锁。  如果返回了这个消息编号,则发生了死锁,并且事务被回滚。在这种情况下,应用程序必须重新启动事务。 使用一些简单的技巧,就可以避免死锁: 应用程序的各个部分均使用相同的顺序访问表。
   在每个表上使用聚集索引,来实施显式行排序。 使事务保持简短。 有关详细信息,请参见 Microsoft Knowledge Base 文章:Detecting and Avoiding Deadlocks in Microsoft SQL Server(Microsoft SQL Server 死锁的检测和避免)。
     在 Oracle 中,要执行远程事务,必须能够使用数据库链接,来访问远程数据库节点。在 SQL Server 中,则必须能够访问一个“远程服务器”。远程服务器是在网络上运行 SQL Server 的一个服务器,用户可使用本地服务器对它进行访问。
  当一个服务器被设置为远程服务器时,用户无须显式登录,就可以使用其上的系统过程和存储过程。   远程服务器是成对设置的。必须对两个服务器进行配置,使之均将对方作为远程服务器。
  必须使用 sp_addlinkedserver 系统存储过程或 SQL Server Enterprise Manager,把每个服务器的名称加入它的伙伴名称中。 设置远程服务器之后,使用 sp_addremotelogin 系统存储过程或 SQL Server Enterprise Manager,为必须访问远程服务器的用户设定远程登录 ID。
    这一步完成之后,必须授予此执行存储过程的权限。 然后,使用 EXECUTE 语句,运行远程服务器上的过程。以下示例执行了远程服务器 STUDSVR1 上的 validate_student 存储过程,并把指示成功或失败的返回状态存储在 @retvalue1 中: DECLARE @retvalue1 int EXECUTE @retvalue = STUDSVR1。
    student_db。student_admin。validate_student '111111111' 有关详细信息,请参见 SQL Server Books Online。
   如果在两个或多个网络数据库节点上对表进行更改,Oracle 就会自动启动一个分布式事务。  SQL Server 分布式事务则使用包含在 SQL Server 中的 Microsoft 分布式事务处理协调器 (MS DTC) 的两阶段提交服务。
   默认情况下,必须指示 SQL Server 参与分布式事务。可以使用以下方法之一,使 SQL Server 开始参与 MS DTC 事务: 使用 BEGIN DISTRIBUTED TRANSACTION 语句。
    这个语句开始一个新的 MS DTC 事务。 使用直接调用 DTC 事务接口的客户应用程序。 在此例中,请注意对本地表 GRADE 和远程表 CLASS(使用 class_name 过程)的分布式更新: BEGIN DISTRIBUTED TRANSACTION UPDATE STUDENT_ADMIN。
    GRADE SET GRADE = 'B+' WHERE SSN = '111111111' AND CCODE = '1234' DECLARE @retvalue1 int EXECUTE @retvalue1 = CLASS_SVR1。
  dept_db。dept_admin。  class_name '1234', 'Basketweaving' COMMIT TRANSACTION GO 如果应用程序不能完成此事务,应用程序就会使用 ROLLBACK TRANSACTION 语句取消它。
  如果应用程序失败或参与的资源管理器失败,MS DTC 就会取消此事务。  MS DTC 不支持分布式保存点或 SAVE TRANSACTION 语句。如果一个 MS DTC 事务终止或回滚,整个事务被回滚到分布式事务的起始处,无论有多少个保存点都是如此。
   Oracle 和 MS DTC 两阶段提交机制在操作上是类似的。在 SQL Server 两阶段提交的第一阶段中,事务管理器请求每个参加的资源管理器为提交做准备。  如果任何资源管理器不能准备,则事务管理器向事务所涉及的每个人广播终止决定。
   如果所有资源管理器都可以成功地准备,则事务管理器广播提交决定。这是提交过程的第二阶段。当资源管理器在准备时,它不知道事务将被提交还是被终止。MS DTC 有一个有序日志,这样就可以永久保存提交或终止决定。
    如果资源管理器或事务管理器失败,它们重新连接时,就可重新处理有疑问的事务。 SQL 语言支持 这一部分概述了 Transact-SQL 和 PL/SQL 语言语法之间的相同点和不同点,并给出转换策略。
   要将 Oracle DML 语句和 PL/SQL 程序迁移到 SQL Server 时,请按下列步骤执行: 验证所有 SELECT、INSERT、UPDATE 和 DELETE 语句的语法是有效的。
    进行任何必要的修改。 把所有外部联接改为 SQL-92 标准外部联接语法。 用相应 SQL Server 函数替代 Oracle 函数。 检查所有的比较运算符。 用“+”字符串串联运算符代替“||”字符串串联运算符。
   用 Transact-SQL 程序代替 PL/SQL 程序。   把所有 PL/SQL 游标改为非游标 SELECT 语句或 Transact-SQL 游标。 用 Transact-SQL 过程代替 PL/SQL 过程、函数和包。
   把 PL/SQL 触发器转换为 Transact-SQL 触发器。 使用 SET SHOWPLAN 语句,优化查询性能。   SELECT 语句 Oracle 和 Microsoft SQL Server 使用的 SELECT 语句语法类似。
   SQL Server 不支持 Oracle 特定的基于开销的优化程序提示,它必须被删除。建议使用的技术是,使用 SQL Server 基于开销的优化程序。  有关详细信息,请参见本章后面的“SQL 语句优化”。
  

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
系统软件
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
软件
系统软件
多媒体软件
办公软件
网络软件
图像处理软件
系统软件
系统软件
举报
举报原因(必选):
取消确定举报