SQL Azure 分析

Posted

技术标签:

【中文标题】SQL Azure 分析【英文标题】:SQL Azure Profiling 【发布时间】:2010-12-28 03:01:36 【问题描述】:

我在 MS 网站上读到 SQL Azure 不支持 SQL Profiler。人们使用什么来分析在此平台上运行的查询?

【问题讨论】:

【参考方案1】:

我今天尝试了一个微软推荐的新工具,叫做Azure Data Studio。

在此工具中,您可以下载一个名为 Profiler 的扩展程序,它似乎按预期工作。

【讨论】:

我用过。它没有完全相同的配置级别,但可以完成工作。【参考方案2】:

SQL Azure 提供以下功能来调整性能、以自己的方式分析查询、标识长时间运行的查询等等

智能性能 性能概览 性能建议 查询性能洞察 自动调优

【讨论】:

【参考方案3】:

我发现在 Azure SQL 中工作的最接近 SQL 分析器的是 SQL Workload Profiler 但请注意,它是一个工具的测试版,由一个人创建,使用起来不太方便。

【讨论】:

【参考方案4】:

2017/04/14 更新:

Microsoft 的 Scott Guthrie 今天宣布了 SQLAzure 中的许多新功能(称为 sqlazure 托管实例,目前处于预览状态),预计将在未来几个月内出现在 SQLAzure 中。以下是它们

1.SQLAgent 2.SQLProfiler 3.SQLCLR 4.服务代理 5.Logshipping、事务复制 6.本机/备份恢复 7.其他 DMV 和 Xevents 8.跨库查询

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

【讨论】:

好更新,但这个问题的答案真的是Extended Events。我很惊讶地看到这篇文章的五个答案中缺少它!?【参考方案5】:

Microsoft 声明不推荐使用 SQL Server Profiler。尽管这是个坏主意,that's what they have said。

SQL 配置文件已在 SQL Server 中弃用,这是 带入 SQL DB 没有意义的原因。

这意味着您将回到 20 多年前的数据库性能监控领域,每个人都将不得不编写自己的性能监控脚本,而不是在您将访问的每台服务器上都有标准的工厂交付工具。这无异于弃用“sp_help”,让每个 DBA 自己编写。希望您对所有的 DMV 都了如指掌……INNER JOIN、OUTER JOIN 和 CROSS APPLY 语法非常好。

【讨论】:

这不能回答 OP 的问题;他们问用什么作为替代品。 使用传统工具,他指的是(SQL Profiler),你不能。这正是他的问题的答案。 Profiler 让您可以实时访问数据库内核。根据内存压力,DMV 可以是永久性的,也可以是瞬态的……它因 DMV 而异。例如,虚拟文件​​统计是永久性的。运行最差的查询不是。所以是的,我确实回答了这个问题。 MSFT 提供的“解决方案”——在互联网上谷歌并希望其他人为您解决这个问题,因为我们正在淘汰已使用超过 15 年的标准工具。 听起来就像是微软的杰出工程师决定弃用 Windows 开始按钮的时候,因为他们无法以他们的无限智慧弄清楚某些(或大多数)用户正在依赖它。 【参考方案6】:

2015 年 9 月 17 日更新:

微软刚刚宣布了一项名为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。

【讨论】:

这似乎没有向您显示传入的存储过程调用,只显示过去运行的最昂贵的那些?【参考方案7】:

您可以使用查询存储功能,查看更多详细信息:http://azure.microsoft.com/blog/2015/06/08/query-store-a-flight-data-recorder-for-your-database/

【讨论】:

【参考方案8】:

我还没有玩太多 SQL Azure,但据我了解,目前没有任何东西可以使用。

From MS(可能是你看过的文章):

因为 SQL Azure 执行 物理管理,任何 声明和选项,试图 直接操纵物理资源 会被阻塞,比如Resource 总督、文件组引用和 一些物理服务器 DDL 语句。 也无法设置服务器 选项和 SQL 跟踪标志或使用 SQL Server Profiler 或数据库 调优顾问实用程序。

如果有一个替代方案,我想它需要能够设置你不能做的跟踪标志,因此我认为目前没有选项。

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

编辑: 引用MSDN forum:

问:SQL 是否支持 SQL Profiler 天蓝色?

A:我们不支持 SQL Profiler SQL Azure v1。

现在,您可以将其解释为 Profiler 将在未来版本中得到支持的暗示。我认为让很多人参与进来,认真使用 SQL Azure 将是一个很大的要求。

【讨论】:

根据以下链接,这将是一项功能,但尚未公布发布日期。 social.msdn.microsoft.com/Forums/en-US/ssdsgetstarted/thread/… 这肯定已经过时了,但它是谷歌上的第二名。 Ada 你能更新一下吗(这是错误的)?

以上是关于SQL Azure 分析的主要内容,如果未能解决你的问题,请参考以下文章

SQL Azure 分析

如何从 Azure 流分析仅将数据发送到一个 Azure SQL 数据库表?

如何使用流分析更新数据 Azure SQL 数据库?

如何使用 Azure 流分析将本地 SQL Server 用作输出?

基于 Azure 流分析 T-SQL 查询中的另一个参数动态拆分参数

Azure 流分析过滤多个输入列以输出到 SQL 表,卡在 5 个接收器的限制