我目前正在将客户端数据库迁移到SQL Azure,我们看到了一些性能问题。我们有一个优质的p2实例,但是我们看到SQL azure数据库的性能时间比当前数据库慢了3倍(sql server 2008具有相似的内核数和内存数)。索引匹配,语句相同,数据也是如此。
我理解在共享的Azure SQL数据库下性能会很差,但是由于我们有一个p2实例,我希望性能更接近我们现有的sql server 2008数据库。任何人都可以提供任何洞察为什么p2可能比非常相似规格的sql server 2008运行速度慢? 我意识到需要考虑延迟,但是两个服务器都远离我的位置,因此这应该稍微平衡一下或只占一小部分差异,而不是200毫秒v 600毫秒的一个简单查询。
鉴于目前SQL Azure数据库缺乏性能调优工具,任何人都可以提供有关性能调优数据库的任何有用建议吗?
提前致谢
P.S。我也在MS azure论坛上问过这个问题,因为我不确定会得到多少关注。 http://social.msdn.microsoft.com/Forums/windowsazure/en-US/cf269a65-7222-4c67-a294-3fa2f67c9583/sql-azure-premium-p2-performance-issues?forum=ssdsgetstarted
答案 0 :(得分:6)
正如评论中所提到的,考虑到硬件和网络基础架构,Azure SQL(共享或高级)与内部部署有很大不同。这个document将SQL Server与SQL数据库(又称SQL Azure)进行比较,并且在Azure上使用商品硬件时,它可以解释您遇到的差异:虽然CPU在本地和云端保持相同的选择对于本地磁盘可能与Azure SQL数据库中的磁盘基础结构不同。
我忽略了您评估的查询类型,但根据我的经验,由于我的方案,磁盘IOPS往往与CPU核心和RAM的数量一样重要(甚至更多),请参阅limits。
简而言之,只考虑CPU和RAM,SQL Server和SQL数据库之间没有相同性能的承诺,即使这些资源是使用Premium选项保留的。
我们有许多Azure SQL数据库正在制作中,很少有Premium:我们在实现遥测以自动收集信息并能够在以后根据需要进行分析时具有很大的优势。以下是CAT博客帖子的链接: http://blogs.msdn.com/b/windowsazure/archive/2013/06/28/telemetry-basics-and-troubleshooting.aspx
它不适用于Premium或Shared,但如果它适合您的项目范围,您应该努力实施遥测。否则,在Azure SQL上查找系统视图的相关查询是一个很好的起点。
如果您希望在Azure SQL中实现与本地相同的性能,我建议您调查并最终针对不同的场景进行优化。