如何从SQL Server DBA过渡到Oracle?


Answers:


40

Oracle和SQL Server在体系结构和习惯上有许多差异,并且在文档中使用了几个关键术语。我这样做已经有很多年了,但是一些主要的惯用区别是:

  • Oracle没有与tempdb直接等效的文件。全局临时表是持久性实体,您不会像在SQL Server中使用临时表那样动态地创建它们。

  • 惯用的PL / SQL比惯用的T-SQL具有更多的过程性。另一方面,PL / SQL具有支持快速游标操作(包括并行循环构造)的功能。通常,使用中间游标结果的方式类似于在SQL Server中使用临时表的排序方式。查找如何使用'%'获得游标变量类型中的某些多态性。

  • SQL * Plus是类似于SQLCMD的命令行工具。在原始安装上,可能只有您可用。如果要使用SSMS这样的GUI工具,则可以使用SQL Developer或第三方工具(例如TOAD)。TOAD非常昂贵。

  • 了解回滚段的作用(在Oracle的MVCC中使用)和“快照太旧”错误的乐趣。

  • 如有可能,获取一个metalink帐户。

  • 阅读概念指南。它具有许多有用的入门信息。

  • 表空间大致相当于文件组。

  • 在Oracle中,SQL和嵌入在PL / SQL中的SQL方言不是完全一样的。

  • 直到最近,Oracle才支持递归CTE。您可以使用CONNECT BY进行递归查询。

  • 阅读RMAN的文档以了解如何进行备份。您可以做一些巧妙的技巧,例如将差异备份合并到单个可恢复的备份中。

  • 系统数据字典具有表的“ ALL”,“ USER”和“ DBA”版本。“ USER_ ”显示登录名所拥有的对象。“ ALL_ ”显示登录名可以读取的所有对象。“ DBA_ *”是全局视图,但是您必须具有适当的权限才能看到它。与SQL Server相比,Oracle可能会更多地使用数据字典,因此请了解它。

  • 群集表在Oracle中称为“索引排序表”。Oracle中的“聚集表”指的是一个非常不同的功能。在Oracle中,集群表是一种工具,它允许基于公共密钥混合主/明细表的物理存储。该功能并未广泛使用。

  • 索引视图在Oracle中称为“物化视图”。他们的工作方式略有不同,有足够的细微差别值得提出自己的问题。

  • Oracle没有与SQL Server中的“数据库”等效的概念。在Oracle中,模式只是某些数据库对象的所有者。

  • PL / SQL具有称为“程序包”的显式模块结构。

  • 查看使用序列而不是标识列。

  • 在Oracle的旧版本(10g之前)中,获取查询计划有些麻烦。您必须创建一个表(格式正确)以将计划转储到该表,然后将查询“ EXPLAIN PLAN”放入表中以获取查询计划。然后,您可以将查询计划从表中取出。每个人和他们的狗都有最喜欢的查询计划查询。用谷歌搜索并找到一个,然后将其装上去品尝。10g添加了一个名为dbms_xplan的软件包,该软件包简化了查询计划的工作。

  • 如果您在unix或linux主机上运行Oracle,那么对shell脚本有一定的了解不会对您有所帮助。

  • Oracle支持自主事务-您可以提交内部的自主事务,并期望它在父级回滚时保持提交状态。SQL Server嵌套事务不是真正的嵌套事务,并且具有不同的语义。您可以通过打开独立连接并通过该连接执行自主操作,在SQL Server中使用CLR存储过程来模拟此行为。

尽管Oracle确实销售OLAP服务器,报告工具和ETL工具,但Oracle附带的现成的BI工具较少。

  • Oracle捆绑了一个称为SQL * Loader的批量加载工具,其功能与bcp类似。

  • 与SSIS最接近的等效项是Oracle Warehouse Builder(OWB),但这是一个单独的项目,不与基本系统捆绑在一起。

  • Oracle制造了一个称为Oracle Reports的报告工具,但该工具也未与基本系统捆绑在一起。这与Reporting Services最接近。

  • Oracle还制作了一个名为Discoverer的ROLAP工具。这是Oracle生产的与Report Builder最接近的产品。最新版本(“ Drake”)支持Oracle的OLAP引擎。

  • Oracle曾经有一个称为Express的OLAP产品 他们曾一度将其构建到核心Oracle DBMS引擎中,将其本机数据结构存储在不透明的Blob中。它与Express并不完全兼容,并且具有专有接口,而第三方OLAP前端工具几乎没有支持。

  • Oracle BI Enterprise Edition曾经是Siebel Analytics。它具有一些OLAP功能,但我并不熟悉。也许有人使用它可能要发表评论。在没有直接承认Siebel是与自己的BI工具完全独立的产品的情况下,Oracle表示从Oracle BI Standard Edition到Enterprise Edition没有“升级路径”。请注意,标准和企业BI套件都是单独的产品,并且未与基本系统捆绑在一起。

  • 实际上,与Oracle出售的SSAS最接近的是Essbase(以前称为Hyperion)。这是一个单独的产品,未与基本系统捆绑在一起。

毫不奇怪,业内专家认为甲骨文的商业智能策略简直是a花一现。

我可能无法想到OTOH的其他事情;我会根据他们的想法添加它们。


1
哇,这很接近我想要的东西。很棒的信息!我读到Oracle具有可以自动运行的SQL Server类型的作业。相当于Oracle中的SSIS吗?
darwindeeds 2011年

1
在Oracle中与SSIS最接近的是Oracle Warehouse Builder(OWB),但未与基本系统捆绑在一起。您必须单独购买。有一个类似于bcp的大容量加载工具,称为SQL * Loader。
ConcernedOfTunbridgeWells

6
我要添加到此列表中的内容:在Oracle中,读者永远不会阻止作家,而作家永远不会阻止读者。我的理解是,这在SQL Server的默认安装中仍然不同。Oracle永远不允许读取未提交的数据。您几乎不会在Oracle中使用临时表-用一条大语句执行所有操作通常会快得多。频繁的提交会减慢批量加载的速度。理想情况下,一旦一切完成,就应该只发出一个提交。
a_horse_with_no_name 2011年

1
@a_horse_with_no_name您的理解是正确的
杰克·道格拉斯


10

我们与Oracle和SQL Server一起工作,我们的DBA主管Michelle Malcher经常帮助同事进行这种过渡。基于这种经验,她写了一本书,标题为“ Microsoft SQL Server DBA的Oracle数据库管理(Oracle出版社)”。我喜欢这本书。

我不确定同事推荐这本书是否适合该网站。我不向米歇尔报告,而是领导一个开发团队。


2
我记得在meta.stackoverflow.com上参与了关于自我提升的对话,并回答说自我提升周围的灰色区域如果与问题相关就可以了。 杰夫·阿特伍德(Jeff Atwood)表示同意。
ConcernedOfTunbridgeWells

2
我不和Michelle合作,但是我非常喜欢这本书。我实际上发现了这种解释方式-将SQL Server体系结构与Oracle的体系结构进行比较比读一本标准的Oracle DBA书更有趣。
RK Kuppala 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.