出于兴趣,如果我要从SQL Server DBA过渡到Oracle,我将要做的主要学习或不学习的事情是什么?

我认为概念是相同的,不同的是只是编程语言,但我还没看到门的另一端。

评论

另请参阅stackoverflow.com/questions/2322260/…

有点幽默(对不起,如果是OT),你见过吗? dba.stackexchange.com/questions/16884/…

#1 楼

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帐户。
请阅读概念指南。它具有很多有用的入门信息。
表空间大致等效于文件组。
SQL和嵌入在PL / SQL中的SQL方言在Oracle中不是完全一样的。
直到最近,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的B.I.较少尽管Oracle确实销售OLAP服务器,报告工具和ETL工具,但仍提供了现成的工具。


Oracle捆绑了一个名为SQL * Loader的批量加载工具,其功能与bcp类似。 br />与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 B.I.企业版曾经是Siebel Analytics。它具有一些OLAP功能,但我并不熟悉。也许使用它的人可能想发表评论。没有直接承认Siebel是与自己的B.I.完全不同的产品甲骨文表示,Oracle B.I没有提供``升级路径''。标准版到企业版。请注意,标准版和企业版B.I.套件是单独的产品,不与基本系统捆绑在一起。
实际上,Oracle出售的与SSAS最接近的产品是Essbase(以前称为Hyperion)。这是一个单独的产品,没有与基本系统捆绑在一起。

Oracle的B.I.毫不奇怪。行业专家把这种策略看作是狗的早餐。

还有很多我无法想到的OTOH;我会根据他们的想法添加它们。

评论


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

– darwindeeds
2011-12-27 20:37

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

– ConcernedOfTunbridgeWells
2011-12-27 22:36



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

– a_horse_with_no_name
2011-12-27 23:56

@a_horse_with_no_name您的理解是正确的

–杰克·道格拉斯(Jack Douglas)
2011-12-28 6:39

这是有关Oracle和SQL Server的事务概念如何不同的相关说明。

–尼克·查玛斯(Nick Chammas)
2012年5月7日下午16:26

#2 楼

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

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

评论


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

– ConcernedOfTunbridgeWells
2012年1月3日,18:44



我不和Michelle合作,但是我非常喜欢这本书。我实际上发现了这种解释方式-将SQL Server体系结构与Oracle的体系结构进行比较比读一本标准的Oracle DBA书籍有趣得多。

–RK库帕拉
2012年3月21日在12:56