[英]Group by not detecting duplicates but there are dupes. Strange SQL Server - Azure Synapse database dedicated SQL pool
[英]Azure SQL Database vs. MS SQL Server on Dedicated Machine
我目前正在一台专用机器上运行MS SQL Server 2014(12.1.4100.1)的实例,我租的价格为270美元/月,具体如下:
我现在已经开始使用Azure SQL数据库了,并且一直在尝试切换到他们的平台。 我在V12服务器上使用他们的P2 Premium定价层启动了一个Azure SQL数据库(只是为了测试),并加载了我现有数据库的副本(来自专用机器)。
我并排运行了几组查询,一组针对专用计算机上的数据库,另一组针对P2 Azure SQL数据库。 结果有点令人震惊:我的专用机器每次都以极大的优势超越(在执行时间方面)Azure数据库。 通常,专用数据库实例将在Azure数据库执行的时间的1/2到1/3之内完成。
现在,我了解Azure平台的许多好处。 它是在专用机器上管理我的非托管设置,它们具有比我更好的时间点恢复,防火墙易于配置,有地理复制等等。但我有一个数据库数百个表在每个表中有数十到数亿个记录,有时需要跨多个连接查询等,因此在执行时间方面的性能确实很重要。 我发现令人震惊的是,每月930美元的服务在每月270美元的专用机器租赁旁边表现不佳。 我对SQL整体上还是一个新手,对于服务器/等等都是新手,但这不会对其他人产生影响吗? 有没有人对我在这里缺少的东西有所了解,或者Azure SQL数据库的其他“托管”功能是否应该弥补价格上的差异?
最重要的是,我已经开始超越我的专用机器的能力了,我真的希望Azure的SQL数据库是一个不错的,下一个踩踏石头,但除非我遗漏了什么,否则它不是。 我是一个太小的企业仍然出去在其他平台上花费数十万。
任何人都有任何建议,如果我错过了什么,或者我看到的表现符合你的期望? 我还有其他任何可以产生比我目前运行的专用机器更好的性能的选项,但不要花费数万/月? 我可以为Azure SQL数据库做些什么(配置/设置),这会增加执行时间吗? 再次,任何帮助表示赞赏。
编辑:让我修改一下我的问题,或许让它更清晰一点:就我所看到的纯粹的执行时间性能而言,我所看到的是,专用服务器@ 270美元/月的表现远远优于微软的Azure SQL DB P2层@ $ 930 /月? 忽略托管与非托管之类的其他“特权”,忽略Azure等用于生产等的预期用途。我只需要知道我是否遗漏了Azure SQL DB的某些内容,或者我是否真的应该更好单个专用机器的性能。
(免责声明:我为Microsoft工作,但不在Azure或SQL Server上工作)。
“Azure SQL”并不等同于“SQL Server” - 我个人希望我们提供一种“托管SQL Server”而不是Azure SQL。
从表面上看,两者是相同的:它们都是具有T-SQL功能的关系数据库系统来查询它们(嗯,它们都是在引擎盖下使用相同的DBMS)。
SQL Azure的是,不同的想法是,你有两个数据库:使用本地SQL Server(最好2012或更高版本)和在Azure上的SQL生产数据库开发数据库。 您(应该)永远不会直接修改Azure SQL数据库,实际上您会发现SSMS不为Azure SQL提供设计工具(表设计器,视图设计器等)。 相反,您设计并使用本地SQL Server数据库并创建“DACPAC”文件(或可以由SSDT生成的特殊“更改”XML文件),然后修改您的Azure数据库,以便复制您的开发数据库,一种“设计复制”系统。
否则,正如您所注意到的,Azure SQL提供内置的弹性,备份,简化的管理等。
至于性能,您是否可能缺少索引或其他优化? 与本地SQL Server相比,您可能会注意到Azure SQL的延迟略高,我看到ping时间(从Azure VM到Azure SQL主机)大约5-10ms,这意味着您应该将应用程序设计为更少 - 繁琐或并行化数据检索操作,以减少页面加载时间(假设这是您正在构建的Web应用程序)。
除了Perf和可用性之外,还有其他几个重要因素需要考虑:
从Microsoft到Azure SQL DB还有另一种选择:
“在Azure中配置SQL Server虚拟机”
https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-provision-sql-server/
详细解释两种产品之间的差异:“了解Azure VM中的Azure SQL数据库和SQL Server”
您的独立SQL Server和Azure SQL DB之间的一个显着区别是,使用SQL DB,您需要为高级别的可用性付费,这可以通过在不同计算机上运行多个实例来实现。 这就像租用4台专用机器并在AlwaysOn可用性组中运行它们,这将改变您的成本和性能。 但是,由于您从未提及过可用性,我猜这不是您方案中的问题。 VM中的SQL Server可以更好地满足您的需求。
SQL DB具有内置可用性(可影响性能),即时恢复功能和DR功能。 您可以根据使用情况扩展/缩小数据库,以降低成本。 您可以使用全局查询(分片数据)提高查询性能。 SQl DB管理自动升级和修补,并大大改善了可管理性故事。 您可能需要支付一点保费。 应用程序级缓存/均匀分布负载,冷等时降级等可能有助于提高数据库性能并优化成本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.