SQL Azure性能分析

37
我在微软网站上看到SQL Azure不支持SQL Profiler。那么人们用什么工具来分析在这个平台上运行的查询呢?
8个回答

23

我尚未深入研究SQL Azure,但据我所知,目前没有可用的选项。

来自微软(可能是您阅读的文章):

由于SQL Azure执行物理管理,任何试图直接操作物理资源的语句和选项都将被阻止,例如资源管理器、文件组引用和一些物理服务器DDL语句。还不可能设置服务器选项和SQL跟踪标志,或使用SQL Server Profiler或Database Tuning Advisor实用程序。

如果有替代方案,我想它需要设置跟踪标志,而您无法这样做,因此我认为目前没有选择。

解决方案?我只能建议您拥有数据库的本地开发副本,以便在本地运行分析器。我知道这对于“实时”问题/调试/监视并没有帮助,但这取决于您需要它做什么。

编辑: MSDN论坛的引用:

问:SQL Azure中是否支持SQL Profiler?

答:我们不支持SQL Azure的v1中的SQL Profiler。

现在,您可以将其解释为提示Profiler将在未来版本中得到支持。我认为这将是满足很多人严肃使用SQL Azure的大要求。


1
根据以下链接,这将是一个功能,但尚未宣布发布日期。http://social.msdn.microsoft.com/Forums/en-US/ssdsgetstarted/thread/fd128986-694b-421a-a863-44623590a144/ - Chris Pietschmann
3
这个信息可能已经过时了,但它是谷歌搜索结果中排名第二的。Ada,请问你能否更新一下(如果有错误的话)? - jcollum

18

2015年9月17日更新:

微软刚刚宣布了一个新功能,名为Index Advisor

Index Advisor如何工作? Index Advisor不断监视您的数据库工作负载,执行分析并推荐新的索引,以进一步改善数据库性能。

推荐始终保持最新状态:随着数据库工作负载和架构的变化,Index Advisor将监视这些变化并相应地调整建议。每个建议都带有对DB工作负载性能的估计影响:您可以使用此信息优先处理最具影响力的建议。此外,Index Advisor提供了一种非常简单且强大的方式来创建推荐的索引。

创建新索引只需点击几下。 Index Advisor测量新创建的索引的影响,并为用户提供有关索引影响的报告。您可以通过以下简单步骤开始使用Index Advisor,并提高数据库性能。确实只需要五分钟时间适应Index Advisor的简单直观用户界面。让我们开始吧!

原回答:

SQL Azure现在已经具备一些本地的分析工具,详情请参见http://blogs.msdn.com/b/benko/archive/2012/05/19/cloudtip-14-how-do-i-get-sql-profiler-info-from-sql-azure.aspx


2
这似乎并没有显示传入的存储过程调用,只有过去运行最昂贵的那些? - Rodney

5
微软宣布 SQL Server Profiler 已经被废弃。虽然这是个坏主意,但这就是他们说的

SQL Profile 在 SQL Server 中已被废弃,这也是为什么将其引入 SQL DB 没有意义的原因之一。

这意味着您将回到20多年前的数据库性能监控时代,每个人都需要编写自己的性能监控脚本,而不是使用每台服务器上都有的标准工厂交付工具。这等同于弃用 "sp_help" 并让每个 DBA 自己编写。希望您非常熟悉所有 DMVs 的 INNER JOIN、OUTER JOIN 和 CROSS APPLY 语法。

1
这并没有回答楼主的问题;他们问的是有什么替代方案可用。 - betseyb
1
使用传统工具,他所指的(SQL Profiler),你是做不到的。这正是他问题的答案。Profiler让你实时访问数据库内核。DMV可以是永久的,也可以是短暂的,这取决于内存压力...而且它因DMV而异。例如,虚拟文件统计信息是永久的。最差的运行查询则不是。所以,是的,我回答了这个问题。微软提供的“解决方案”——去谷歌互联网,希望别人已经为您解决了这个问题,因为我们正在淘汰已经使用了15年以上的标准工具。 - frankmcb
听起来就像是微软的那些聪明工程师决定放弃 Windows 开始按钮一样,因为他们无限的智慧无法理解一些(或大多数)用户依赖它。 - jjthebig1

4

2017/04/14更新:

微软的Scott Guthrie今天宣布了SQLAzure(这被称为sqlazure managed instance,目前处于预览阶段)中许多新功能,这些功能预计将在未来几个月内出现。以下是它们:

1.SQLAgent
2.SQLProfiler
3.SQLCLR
4.Service Broker
5.Logshipping、Transactional Replication
6.Native/Backup restore
7.额外的DMV和Xevents
8.跨数据库查询

参考资料:
https://youtu.be/0uT46lpjeQE?t=1415


1
更新不错,但是这个问题的答案真正的解决方法是扩展事件。我很惊讶在这篇文章的五个答案中没有看到它!? - wBob

4
我今天尝试了微软推荐的一个新工具,叫做Azure Data Studio
在这个工具中,你可以下载一个名为Profiler的扩展,它似乎按照预期运行。

我用过它。它的配置水平不是很高,但它能胜任工作。 - kim3er

2

你或许知道 Azure Profiler 并能够查看这个问题:https://dev59.com/X_Y-pYgB1922wOYJkzn7 - CodeMonkey

0

SQL Azure提供以下功能来调整性能,以其自己的方式配置查询,识别长时间运行的查询等等

智能性能 性能概述 性能建议 查询性能洞察 自动调整


0

我在Azure SQL中找到的最接近SQL Profiler的工具是SQL Workload Profiler。但请注意,这是一个由单个人创建的测试版工具,使用起来并不太方便。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接