我是Oracle DBA,也有Sybase履历.
两个RDBMS平台之间的首要架构和观念差别是什么?
相同于SQL Server-> Oracle题目here的谜底将是最常用的.
办理要领
在已往的几年里我一向在研究Oracle和SQL Server之间的互换,而且在另一方面写了一篇文章
here.有很多风俗和架构差别,供给商和开拓职员行使差异的术语/ DBA社区环绕每个产物.
物理架构
SQL Server组织各类差异的对象,而且有一个或两个要害观念在Oracle中没有直接的相同物.
>“数据库”是SQL Server中的一个单独项目,具有本身的用户权限,模式/名称空间和存储.假如您认识Sybase,则因为产物的配合发源,它们与Sybase中的数据库大抵沟通. >文件组大抵相等于表空间,尽量它们是数据库的当地空间. >模式是与SQL Server中的数据库用户差异的观念,尽量用户可以拥有默认模式. > MVCC在SQL Server中的事变方法有所差异.这是一个相对较新的成果,维护一行的差异副本,直到旧版本的锁被开释. SQL Server没有直接等效的回滚段.它在SQL Server数据库上默认不勾当. > Tempdb在SQL Server中行使得更多.体系将其用于姑且表和中间毗连功效.有关tempdb的更多信息. >表分区比Oracle有点鸠拙.您必要配置一个分区函数,该函数可以从您提供的任何内容建设分区键,然后是该分区函数的分区方案.分区方案的举动有点像文件组,然后您在分区方案上建设表.进入和退出分区必要您在右侧布局中的空表上配置束缚.束缚担保分区键值得当您要互换到它的分区. >实体化视图在SQL Server中称为索引视图. GROUP BY子句确实有一个CUBE运算符,文档提到了一个查询重写成果.可是,此成果没有具体记录,也许不会很是成熟.因人而异. > SQL Server不支持自治事宜,但它支持通过XA或OLEDB事宜协议举办两阶段提交. >聚簇索引与Oracle中的索引排序表略有差异,由于它们不要求表中的全部列都参加聚簇索引.它们在SQL Server系统布局中的行使比Oracle中的IOT更普及. > SQL Server支持包围索引,但没有毗连索引.不支持位图索引,但它确实有一个索引交集/星形转换运算符,可以在不掷中究竟表的环境下计较交错点. >序列是SQL Server的一个相对较新的增补.传统上,自动增量密钥是通过标识列完成的.您可以通过set identity_insert on将值加载到标识列中.
措施计划
习用语T-SQL与习用PL / SQL有一些区别.它的事变方法差异,一些范式差别值得更深入地表明.
> T-SQL没有包的观念.数据库中的全部存储进程和函数都位于民众定名空间中,尽量可以行使模式来办理此题目,而且定名空间对付数据库是当地的. >相识怎样行使姑且表和SELECT INTO.很难碰着现实必要游标的T-SQL代码;姑且表应承将操纵解析为可以行使set操纵完成的步调. tempdb中的SELECT INTO记录起码,而且在用户数据库上的某些规复模式中记录起码,因此它与查询运算符一样快,可以保持中间毗连功效.Idiomatic T-SQL将在排序中行使姑且表您将在PL / SQL中看到游标变量的脚色,但会更多地行使set操纵.可是,姑且表可以建造相等钝的代码,因此请审慎行使. >体系数据字典比旧版本的Oracle越发痴钝,可是行使SQL Server 2005时,体系数据字典要好得多.尽量微软提供的器材在SSMS资源打点器中内置了大量的内省内容,但如故值得相识你绕着数据字典的方法.可是,它不区分DB工具的ALL,USER和DBA视图. > SSMS内置了查询打算查察器. > T-SQL代码中的标识符可以用[]引用,而且假如引用则可以包括各类范例的垃圾.可是,假如我们抓到你叫“直接/转移”一栏,我们就会把你的肠子撕掉. > SQL Server确实具有窗口成果(自2005 IIRC以来),因此您此刻可以在组内举办排序,运行总和等. > T-SQL没有直接等同于CONNECT BY,尽量递归可以通过递归CTE完成. >假如您必要编写跨数据库跳过的代码(而不是数据库中的模式),请思量行使民众同义词将工具别名为local,并引用代码中的别名.这停止了对数据库名称的硬编码依靠性. >假如您停止对数据库名称举办硬编码依靠,则数据库可以很轻易地在统一处事器上维护多个情形. >某些内容(譬喻自界说聚合函数)只能行使CLR sprocs实现.另外,假如要从事宜上下文中转义(譬喻,伪造自动事宜以举办防回滚错误记录),则可以行使CLR sproc,由于它可以在当前事宜上下文之外建设当地毗连.
安详
登录在SQL Server实例级别界说,但每个登录都作为“数据库用户”映射到零个或多个数据库.权限可以分派给“登录”(处事器)和“用户”(数据库),但凡是行使数据库“脚色”.用户属于脚色,权限分派给脚色. SQL Server 2012添加了“处事器脚色”.
> SQL Server 2012引入了一个名为“部门包括的数据库”的观念,它应承用户和脚色信息生涯在该数据库的当地. >在数据库中,用户和架构的观念是分隔的.可以将用户或脚色分派给架构,而架构拥稀有据库工具. > Windows身份验证行使幕后的登录信息来验证计较机或域上的用户对SQL Server登录的身份. IIRC对此的支持是Oracle的可选附加成果. >非凡脚色’dbo'(‘数据库全部者’的缩写)在特定命据库中具有某种超等用户权限.每个数据库都具有“dbo”脚色,可以将用户分派给给定命据库上的“dbo”脚色. >尚有一个默认的’dbo’架构.工具也许由dbo架构拥有 – 具有’dbo’脚色(或体系范畴的打点员权限)的用户建设的工具将默以为’dbo’架构全部,除非明晰提供另一个架构. >安详信息不会与单个数据库的备份一路保存.必需在备份还原到的处事器上显式设置用户和脚色. SQL Server 2012应承行使新的“部门包括的数据库”成果将用户和脚色数据当地生涯到数据库. >从SQL Server 2005,可以在挪用者,建设者,拥有者架构或指定用户的安详上下文中执行存储进程. >在SQL Server视图中,基本表的权限基于拥有该视图的架构的权限.尽量视图界说可以包括从会话中获守信息的过滤器,但基本表的用户权限不参加安详性.在Oracle中,基本表的用户权限也许会影响视图,详细取决于授权的设置.
监控和调解
TBA – oracle中的内存架构与SGA等
备份和规复
TBA
工装
Microsoft将一组周围的器材与SQL Server绑缚在一路.提供的一些首要项目是:
> SQL Server Management Studio(SSMS):这与Oracle上的SQL Developer相同 – 它提供了编辑器和代码执行器材.一些有效的成果包罗数据库工具赏识器和查询打算查察器.> SQL Server Analysis Services(SSAS):这是一个与数据库处事器差异的OLAP处事器.它行使本身的查询说话(MDX)和API(XML / A)举办客户端 – 处事器通讯.无法行使SQL查询. SSMS具有编辑MDX和原始XMLA查询以及表现功效的器材.还提供了一个名为ASCMD.EXE的呼吁行查询器材.> SQL Server Reporting Services(SSRS):这是一个用于宣布报表的基于Web的报表器材.可以通过BI Development Studio(BIDS)或报表天生器构建报表,并将其宣布到Web派别. SSRS处事器自己具有效于以编程方法打点处事器的Web处事API.请留意,SSRS陈诉可以行使来自各类源的数据,而不只仅是SQL Server.提供了一个名为RS.EXE的呼吁行器材,用于以编程方法打点SSRS处事器.> SQL Server Integration Services(SSIS):这是随SQL Server提供的ETL器材.在架构上,它与OWB或ODI完全差异,由于它不是代码天生器材.运行时位于客户端,可以位于与数据库处事器差异的计较机上. SSIS包可以行使BIDS开拓,并行使名为DTEXEC.EXE的呼吁行器材独立执行.> B.I.开拓事变室(BIDS):这是一个基于视觉事变室的情形,用于开拓陈诉,SSIS包和SSAS多维数据集.假如安装了其他基于VS的开拓器材(譬喻VS Professional),则可以将器材集成到单个情形和民众项目分组中.>批量复制(BCP):相同于SQL * Loader的呼吁行批量插入/提取器材> SQLCMD:相同于SQL * plus的呼吁行查询器材> SQL变乱探查器:一种跟踪和说明器材,可以从SQL Server,SSAS和套件中的其他器材捕捉和评估跟踪信息.> SQL Server署理:一种功课调治适用措施,可以运行某种范例的按期功课. (编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|