在给定SQL Server的情况下,在Oracle中合理精通需要多长时间

时间:2008-10-08 12:44:15

标签: sql-server oracle

在通过代理申请工作时,我有时会被一位代理人阻止,他说你知道软件包X.当我回复时我知道类似的包装Y,他们可能会说,除非你知道XI不能让你前进。

问题在于,其中一些代理商不知道他们在谈论什么,他们只是被客户用作筛选过滤器。

能够对这些代理商说,因为我知道Y,我可以期望在给定的天数/月内合理地精通X。然而,不知道X确定所需的时间是我问这个问题的原因。

最近X是Oracle,Y是SQL Server。

那些同时了解这两者的人是否可以表达对合理熟练程度需要多长时间的意见? NB我不是在谈论成为一名DBA!

8 个答案:

答案 0 :(得分:8)

我会预先说明我的偏见 - Oracle比Sql Server复杂得多。所以这取决于你将被要求做什么。你说这不适用于DBA职位,但这个定义非常流畅。在我的公司,开发人员负责设计表,添加正确的索引,确定分区。

如果你说,我要做的只是java或c#中的代码,并调用由DBA或Oracle Developer编写的包,那么你就是安全的。

但是如果你掌握了所有的MSSS经验并在你的行末添加分号,你就会杀死你的Oracle实例。 MSSS中的许多标准实践都是Oracle的一个标准。在MSSS中,建议在大多数每个表上都有聚簇索引。在Oracle中,我们仅为特定目的构建IOT(索引组织表)。在MSSS中,在T-SQL中执行DDL就像从日志中删除一样简单。在甲骨文中,它是故意的,它是沮丧的,实际上有些危险。在MSSS中,你把#temp表扯掉就像它们是果冻豆一样,在Oracle中我们提前计划它们,因为它们是永久数据库对象,当逻辑变得有点棘手时,它们不仅仅是在proc中间创建的。

那就是说,你能让Oracle做点什么吗?嗯,是的,但真正的问题是它能否有效地运作并扩展以满足您的代理人所处的业务需求。这是一个响亮的号码。

答案 1 :(得分:3)

我已经走了另一条路(首先是Oracle,然后是SQL Server)。我的经验是:

SQL查询 - 除了字符串日期转换领域之外的微不足道的差异,这在Oracle中更容易实现。

存储过程 - T-SQL语法与PL / SQL明显不同。那里有一条学习曲线,但没有什么是不可克服的。

数据库管理员 - 非常不同,但在SQL Server中更容易。如果这是工作描述的一部分,那么在考虑其他人时他们可能是合理的。

答案 2 :(得分:2)

如果您被聘为DBA,则需要一段时间才能在数据库之间切换,因为它们的管理方式不同(我的经验基于我对Oracle和DB2的经验)。

我不知道SQL Server,但我可以想象一个具有良好GUI管理的Microsoft程序与管理DB2 / z有很大不同(尽管你可以使用花哨的DB2 LUW(Linux / UNIX / Window))如果你那么倾向于工具。

如果您只是削减代码以使用数据库,则SQL差异很小(相对)。假设你已经精通SQL,那就不应该花太多时间。

答案 3 :(得分:0)

我在2001年从SQL Server转到Oracle,在那里我从一个VB6 / SQL Server项目(作为开发人员)工作到一个大型J2EE项目的Oracle开发DBA。以下是我的经历和一些反思的编辑亮点。

对于开发,SQL的基本原理并没有根本不同。 T-SQL与PL / SQL有点不同,所以习语有点不同。大多数有能力的程序员应该能够通过修改并获得一些好的SQL服务器书籍(例如Guru's Guide或Oracle Expert one-on-one Oracle等书籍来进行跳转,具体取决于您的使用方式。< / p>

我会说一个或两个开发人员习惯了另一个数据库平台会让你大部分都在那里。基本原则非常相似(架构中的模数差异);真的只有橱窗装饰不同。但是,如果您要访问Oracle,请获取第三方查询工具(例如TOAD)的副本,因为这些工具比Oracle提供的工具要好得多。

代理商因特定流行语的匹配而臭名昭着,我半定期(我是承包商)。如果您需要使用SQL Server,Developer Edition 非常便宜并且将安装在Windows XP等桌面O / S上。 Oracle还为所有可用于修补的支持平台提供Free downloads

您可能还会从“PL / SQL和T-SQL之间的主要惯用差异”这一行的问题中获得一些堆积流问题。

答案 4 :(得分:0)

我已经完成了SQL Server 10年,但大约一年半前就开始使用Oracle了。像任何数据库一样,没有神奇的熟练点 - 你只需要学习更多关于它的知识就越多。就开发人员需要了解的内容而言,对于经验丰富的开发人员而言,使用它的速度不应超过一周(甚至有点多)。 PL / SQL与T-SQL并没有太大的不同,尽管存储过程有点不同。

编程方面,Oracle数据访问类是在ADO.NET上建模的(实际上我们使用OleDb - 其中一个好处是您不必为了访问BLOB数据而使用OracleBlob类) ,所以学不到那么多。

我最初让我的团队使用TOAD,因为我听说TOAD是您应该与Oracle一起使用的(虽然我也听说过它的坏事)。我们最终达到了使用TOAD的唯一一个,其他人都在使用SqlDeveloper。避免使用TOAD。

答案 5 :(得分:0)

如果你想要做的就是在你的简历上加上一个要点,以便通过代理商,只需添加它,这将让你通过代理商,让你有机会踏上门。如果你是一个诚实的类型,请抓住Oracle XE,阅读 documentation库中的相应指南,花一天或5天用你最喜欢的语言将一篇博客/地址簿/ flickr clone /等与Oracle集合在一起。< / p>

正如其他人所建议的那样,与SQL Server相比,你会做的事情有一些显着的不同,如果你只是将你所知道的从SQL Server应用到Oracle,你可能会扼杀性能。

答案 6 :(得分:0)

我不同意SQL是类似的。 SQL SYNTAX 与基本CRUD开发类似(对于ANSI的最小公分母)。但实际上构建包,编写多表/多步连接,批量更新和插入,使用丰富而强大的Oracle功能集与SQL Server有很大不同。这需要不同的心态,需要很多年才能掌握。然而...

简历/简历的目的是接受采访。

与您的经纪人合作,突出您最佳的人才和行为,而非纯粹的技能。

技能可以学习和教授。在新环境中学习新技能的才能和示范是雇主的金尘。

不要试图惹恼它。不要说谎。你会被发现的。使用从SQL Server获得的经验来证明您可以解决问题。表现出对学习,训练和嫁接的渴望。

但是,如果他们真的想要“降落伞并开始运行Oracle程序员”,那么你就塞满了!

答案 7 :(得分:0)

据我所知,最好是学习Oracle而不是SQL Server,因为在我的生活中,我遇到了大多数使用SQL Server并且涉及很多竞争的人,因为这个数据库很容易学习。所以,如果你学习了oracle,那么它会让你在初始阶段变得更强大,并且参与竞争更少。