`
bk_lin
  • 浏览: 318434 次
社区版块
存档分类
最新评论

SQL Azure vs SQL Server

 
阅读更多

公告:本博客为微软云计算中文博客的镜像博客。部分文章因为博客兼容性问题,会影响阅读体验。如遇此情况,请访问原博客


SQL Azure vs. SQL Server

概要
SQL Azure Database 是一个来自微软的,基于云的关系型数据库服务。SQL Azure 提供关系型数据库功能来作为公用服务。基于云的数据库解决方案,例如SQL Azure,具有许多优势,包括迅速供应,高成本效益,高可用性和减少日常管理支出。本文比较了SQL Azure Database SQL Server在逻辑管理vs. 物理管理,供应, Transact-SQL 支持,数据存储, SSIS和其他特性和功能方面的异同。


目录

共性和差异

逻辑管理vs. 物理管理

服务提供

Transact-SQL 支持

特性和类型

服务的主要优势

自主管理

高可用性

可拓展性

熟悉的开发模式

关系型数据模型


共性和差异

与本地的SQL Server实例类似, SQL Azure 为基于Transact-SQL的数据库访问提供了一个 tabular data stream (TDS)接口。这使得您的数据库应用程序能以使用SQL Server相同的方式来使用SQL Azure SQL Azure是一个云端的服务,在管理上跟本地的SQL Server实例有一些小的差异。

与本地SQL Server实例不同的是,SQL Azure将逻辑上的管理与物理上的管理分离出来; 您可以继续管理数据库,登陆(login),用户和角色,但是微软会管理和配置物理硬件,例如硬盘,服务器和存储。这样, SQL Azure 不仅 能提供一个大规模的,多租户的数据库服务,还可以提供企业级的可用性、拓展性、安全性和自我修复能力。

由于微软负责所有的物理管理,所以SQL Azure 和本地的SQL Server实例会在管理,服务提供,Transact-SQL 支持,编程模式,和特性方面略有不同。更多详细内容请浏览Guidelines and Limitations (SQL Azure Database).

逻辑管理vs. 物理管理

虽然 SQL Azure在管理数据库的物理资源上发挥积极作用,但是数据库管理员(DBA)仍然在管理基于SQL Azure的应用程序方面有着举足轻重的作用。使用SQL Azure, 数据库管理员要管理创建的schema ,统计,调优索引,优化查询以及管理安全性(登陆(login),用户和角色等) 等。更多安全管理信息请浏览Managing Logins and Users in SQL Azure.

SQL Azure数据库管理与 SQL Server在物理管理方面最大的不同是, SQL Azure 不仅能够自动复制所有数据来提供高可用性,还可以管理负载均衡。当任何一台服务器停止工作的时候,其他的一台有您的数据库备份的正常运行的机器会被切换过来(Failover),这个过程对用户来说是透明的。

为了提供这一层面的物理管理,您不能控制SQL Azure的物理资源。举例来说,您不能指定数据库或索引驻留的物理硬盘,或文件组。因为不能访问计算机的文件系统并且所有的数据都会被自动复制,所以 SQL Server 的备份和恢复命令在SQL Azure上无效。 SQL Azure服务会备份所有的数据库,然而一般用户还无法这样做。我们可能会在未来提供这一功能。

服务提供

当准备部署本地SQL Server时,可能是由DBA IT 部门来准备和配置所需的硬件和软件。而使用SQL Azure,这些任务都由SQL Azure的服务提供程序来完成。

在您创建了一个Windows Azure Platform账户之后您便就可以开始使用您的SQL Azure 数据库了。该账户允许您访问所有服务,例如Windows Azure, AppFabric, SQL Azure,并用来建立和管理您的订购。

每一个SQL Azure订购都被绑定至某个微软数据中心中的一台SQL Azure 服务器上。您的SQL Azure 服务器是一个抽象概念,它其实是一个数据库编组。为了提供负载平衡和高可用性,您SQL Azure上各个数据库可能驻留在微软数据中心内独立的物理计算机上。当前,我们的数据中心分布于芝加哥Chicago (North Central US),圣安东尼奥San Antonio (South Central US),都柏林Dublin (West Europe), 阿姆斯特丹Amsterdam (North Europe),新加坡 Singapore (Southeast Asia) 和香港 Hong Kong (East Asia)。未来会增加更多数据中心。

更多供应信息请浏览SQL Azure Provisioning Model.

Transact-SQL 支持

许多SQL Server Transact-SQL 语句可以通过参数让您指定文件组或物理文件的路径但是SQL Azure并不支持这些类型的参数,因为它们依赖于物理配置。这种情况下,这些命令被视为部分支持。关于更多Transact-SQL 支持信息,请浏览 Transact-SQL Support (SQL Azure Database).

特性和类型

SQL Azure 并不支持SQL Server内所有的特性和数据类型。分析服务(Analysis Services),复制( Replication),报表服务( Reporting Services),以及 Service Broker在现在的SQL Azure上并不支持。然而,您可以将SQL Azure 用做数据源或目标数据库,使用本地的报表服务器或分析服务器连接SQL Azure

因为 SQL Azure负责物理管理,任何企图直接操作物理资源的语句和选项都被屏蔽掉了,例如Resource Governor,文件组访问或一些关于服务器的 DDL 语句。另外,您也不能够设置服务器选项和SQL 跟踪标志(Trace Flag),或使用SQL Server Profiler 以及Database Tuning Advisor

服务的主要优势

SQL Azure的优势是多方面的,包括可管理性,高可用性,可拓展性,熟悉的开发模式以及关系型数据模型。

自主管理

SQL Azure 提供了企业级数据中心的规模和功能,省去了日常管理本地SQL Server实例的支出。自主管理的能力使得企业既不用增加本地IT部门的支持负荷,也不用分散具有良好技能的职员的精力从本职工作到维护部门的数据库应用程序,还能够在整个企业内为应用程序提供数据服务。有了SQL Azure,您可以在极短的时间内准备好您的数据存储。通过提供您仅需的存储减少了数据服务的初始成本。当您的需求变化时,您可以轻松地通过拓展基于云的数据存储来满足需求。

高可用性

SQL Azure 构建于久经考验的Windows Server SQL Server 技术至上,拥有足够的弹性以处理所有使用上的和负载的变化。服务会在多个物理服务器上复制多份数据冗余拷贝以维持数据可用性和业务持续性。如果一台硬件出故障, SQL Azure 提供了自动的故障切换来确保您的应用程序的可用性。

可拓展性

SQL Azure的一大关键优势在于能够轻松拓展您的解决方案。随着数据增长,数据库也需要纵向拓展和横向拓展。纵向拓展往往会有一个上限,而横向拓展并没有实际的限制。通常横向拓展的方法是数据分割。在分割了您的数据之后,服务随着数据增长而拓展。一个现收现付的计价模式确保了您只需为您所使用的存储付费,所以当您不需要时可以随时缩减服务的规模。

熟悉的开发模式

当开发者创建使用SQL Server的本地应用程序时,他们使用客户端库例如ADO.NET, ODBC。它们使用tabular data stream (TDS) 协议在客户端与服务器之间通信。SQL Azure 提供了与SQL Server一致的TDS 接口,所以您可以使用相同的工具和库来为存储于SQL Azure中的数据构建客户端应用程序。关于更多TDS信息,请浏览Network Protocols and TDS Endpoints.

关系型数据模型

SQL Azure 对于开发者和管理员来说应该很容易上手,因为SQL Azure使用相似的关系型数据模型,数据存储于SQL Azure上就和存储于SQL Server上一样。在概念上类似于一个本地SQL Server实例, 一个SQL Azure 服务器就是一组数据库的逻辑组和,是一个独立的授权单位。

在每个SQL Azure 服务器内,您可以创建多个数据库, 每个数据库可以拥有多个表,视图,存储过程,索引和其他熟悉的数据库对象。该数据模型可以很好的重用您现有的关系型数据库设计和Transact-SQL 编程技能和经验,简化了迁移现有本地数据库应用程序至SQL Azure的过程。关于更多Transact-SQL 以及其与SQL Azure的关系,请浏览 Transact-SQL Support (SQL Azure Database).

SQL Azure 服务器和数据库都是虚拟对象,并不对应于物理服务器和数据库。通过将您与物理实现隔离,SQL Azure 使得您可以将时间专用于数据库设计和为业务增值上。


特性

SQL Server (本地)

SQL Azure

变通方法

数据存储Data Storage

无大小限制

· Web 版本

· Bussiness 版本

具体大小和定价信息请参考Pricing Overview.

注意:当您的使用到达分配的大小 (1 GB 10 GB),只有 SELECTDELETE语句会被执行。 UPDATE INSERT语句会抛出错误。

· 当旧数据可以被移植至另外一个SQL Azure或本地的数据库内时,一个存档过程可被创建。

· 因为上述的大小约束,建议对数据进行跨数据库分割。创建多个数据库能够充分利用多个节点的计算能力。Azure 模式的最大价值在于其灵活性,在您的需求在最高点时可以按需创建任意多的数据库,在需求降低时删除数据库。最大难题在于编写应用程序能够跨数据库的拓展。一旦该功能被实现,便可拓展至跨任意个数据库。

版本Edition

· Express

· Workgroup

· Standard

· Enterprise

· Enterprise 版本

连接性Connectivity

· SQL Server Management Studio

· SQLCMD

· SQL Server 2008 R2 Management Studio 提供了对SQL Azure完整的连接性。先前版本的支持有限。

· SQLCMD

数据移植Data Migration

· SQL Server Integration Services, BCP SqlBulkCopyAPI

验证Authentication

· SQL 验证

· Windows 验证

· SQL Server 验证

使用 SQL Server 验证

Schema

没有限制

SQL Azure 并不支持堆表。 所有表必须拥有一个聚集索引才能插入数据。

检查所有脚本,确保所有的表都有一个聚集索引。

TSQL 支持TSQL Supportability

某些 TSQL 命令完全支持。一些部分支持,另一些不支持.

· 支持的 TSQL: http://msdn.microsoft.com/en-us/library/ee336270.aspx

· 部分支持的TSQL: http://msdn.microsoft.com/en-us/library/ee336267.aspx

· 不支持的 TSQL: http://msdn.microsoft.com/en-us/library/ee336253.aspx

“USE” 命令“USE” command

支持

不支持

不支持USE 命令。因为每一个用户创建的数据库可能并不在同一个物理服务器上。所以应用程序必须从多个数据库上取回数据,并在应用程序层面结合这些数据。

事务复制Transactional Replication

支持

不支持

您可以使用BCP SSIS 来按需获得流入本地 SQL Server的数据。您也可以使用SQL Data Sync tool 来保持本地 SQL Server SQL Azure 的同步。

日志传输

Log Shipping

支持

不支持

数据镜像Database Mirroring

支持

不支持

SQL Agent

支持

SQL Azure上无法运行SQL agent/jobs

您可以在本地SQL Server上运行 SQL agent 并连接至SQL Azure

服务器选择项Server options

支持

· 支持一些系统视图 (http://msdn.microsoft.com/en-us/library/ee336238.aspx)

大多系统层面的元数据被禁用了,因为在云端提供服务器层的信息无意义。

连接限制Connection Limitations

为了给在节点上所有租户提供公平的使用体验,有如下情况的连接可能被关闭:

· 过度资源使用

· 长时间运行查询 (超过 5 mi分钟)

· BEGIN TRAN END TRAN内长时间运行的单个事务 – (超过 5 分钟)

· 空闲连接– (超过 30 分钟)

SSIS

可以在本地运行SSIS

无法在SQL Azure内运行SSIS

本地运行 SSIS ,并以ADO.NET provider连接至SQL Azure

参考:

· SQL Azure Portal

· SQL Azure Developer Center

· SQL Azure Team Blog

本文翻译自:http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=86f12b41-1eba-4567-9ac8-02eaa7d12034

分享到:
评论

相关推荐

    Microsoft JDBC Driver 3.0 for SQL Server and SQL Azure

    Microsoft JDBC Driver 3.0 for SQL Server and SQL Azure Microsoft JDBC Driver 3.0 for SQL Server and SQL Azure

    SQL Azure中文教程

    熟悉SQL Server的开发人员和DBA通过将他们已有的知识与Azure开发和管理的新功能相结合,应该可以迅速地掌握它的使用方法。在本次的技术手册中,我们将为您奉上最完整的SQL Azure教程,从入门到深层次了解微软云...

    云数据库SQL Azure

    微软发布了自己的全新云计算产品Windows Azure Platform。历经数年的技术沉淀,Windows Azure Platform 已经成为一个技术领先、开放的平台,基于不同语言开发的应用程序都可以运行在这个平台上面,并通过标准协议...

    适用于 SQL Server 2014、2012、2008R2的JDBC Drivers 4.1

    适用于Microsoft SQL Server 2014、SQL Server 2012、SQL Server 2008 R2、SQL Server 2008、SQL Server 2005 和 SQL Azure。对于适用于 SQL Server 的 Microsoft JDBC Driver 4.1,将从 SQL Server 2008 开始支持。...

    微软SQL Azure

    SQL Azure SQL Azure SQL Azure

    SQL Server 2012 管理高级教程(第2版)试读

    你还可以学到如何掌握SQLServer 2012中的最新特性,包括客户端连接性的提升、云计算、数据复制以及商业智能。这本由业内领先专家撰写的详尽指南将会帮助你提升效率、可扩展性以及SQL Server的性能,因此你可以在更短...

    SQLServer的性能调优:解决查询速度慢的五种方法

    本文主要通过一下几个方面介绍:使用SQLDMV查找慢速查询、通过APM解决方案查询报告、SQLServer扩展事件、SQLAzure查询性能洞察等相关内容。本文来自博客园,由火龙果软件Anna编辑、推荐。SQLServer的一个重要功能是...

    sqlserver4.2 jar包

    支持的 Java 版本: Java Runtime Environments (JRE) 的...• Microsoft SQL Server 2005 - 仅受适用于 SQL Server 的 Microsoft JDBC Driver 4.0 支持 • Azure SQL 数据库 • Azure SQL 数据仓库或并行数据仓库

    迁移SQL Server到Azure SQL实战

    近有个维护的项目需要把 SQL Server 2012 的数据库迁移到 Azure SQL 上去。主要是因为租用的主机到期,而运营商停止了主机租赁业务,看来向云端的迁移是大势所趋啊!经过一番折腾终成功迁移,但过程可谓是一波三折。...

    SQL Server向云数据库迁移的三大利器

    SQL Azure 是微软云计算平台(Windows Azure Platform)的三大组成部分之一,是一个部署在云端的关系型数据库引擎,它支持SQL Server中绝大多数和...SQL Azure与本地的SQL Server和VS 2008/2010可以很容易的集成开发。

    kettle 连接sqlserver 驱动

    kettle连接SqlServer需要的驱动 下载后直接解压到lib目录下就可以重新连接到数据库上面。

    navicat for sql server + mysql

    Navicat for SQL Serve可以用于SQL Server 2000、2005、2008R2及SQL Azure,并支持大部份最新功能,包括触发器、函数及其他。Navicat 的功能足以符合专业开发人员的所有需求,但是对 SQL Server 的新手来说又相当...

    sql-server-样例-掌握.zip

    SQL Server,Azure SQL数据库和Azure SQL数据仓库的示例数据库。 演示 在会议,网络广播等中展示的各种SQL特性和功能的演示... 特征 这些示例说明了特定的SQL Server和Azure SQL数据库功能,包括内存中OLTP,主...

    sqlserver 2012驱动

    Microsoft® SQL Azure 返回页首返回页首 说明 JDBC Driver 的 Microsoft Windows 版本安装说明 注意:下载 Microsoft JDBC Driver 4.0 for SQL Server 则表明您接受此组件的《最终用户许可协议》(EULA) 的条款...

    Java JDBC Sql Server 驱动 Jar包 Java7,8

    不断致力于互操作性,Microsoft 提供与 SQL Server 和 Azure SQL 数据库使用了一个 Java 数据库连接 (JDBC) 驱动程序。 该驱动程序免费提供,不需要额外付费,并且可从任何 Java 应用程序、应用程序服务器或支持 ...

    sql-server-samples:Azure数据SQL示例-官方Microsoft GitHub存储库,其中包含SQL Server,Azure SQL,Azure Synapse和Azure SQL Edge的代码示例

    该GitHub存储库包含代码示例,这些示例演示了如何使用Microsoft的Azure数据产品,包括SQL Server,Azure SQL数据库,Azure Synapse和Azure SQL Edge。 每个样本都包含一个README文件,该文件说明了如何运行和使用该...

    SQL-Server-2022&SSMS

    SQL Server Management Studio (SSMS) 是一种集成环境,用于管理从 SQL Server 到 Azure SQL 数据库的任何 SQL 基础结构。 SSMS 提供用于配置、监视和管理 SQL Server 和数据库实例的工具。 使用 SSMS 部署、监视和...

    JDBC连接MS SQL Server 2005 与 2000区别

    JDBC连接MS SQL Server 2005 与 2000区别 JDBC连接MS SQL Server 2005 与 2000区别 JDBC连接MS SQL Server 2005 与 2000区别

    Performance Guidance for SQL Server in Windows Azure Virtual Machines

    Performance Guidance for SQL Server in Windows Azure Virtual Machines

    sql odbc 12.rar

    SQL Server 2012, SQL Server 2014, SQL Server 2016, SQL Server 2017, Analytics Platform System, Azure SQL Database and Azure SQL Data Warehouse. Microsoft ODBC Driver 17 for SQL Server should be used ...

Global site tag (gtag.js) - Google Analytics