首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何由 Power BI 直接查询数据集捕获生成的 SQL 查询

如果对Power BI数据集中的一个或多个表使用DirectQuery模式,则很可能需要查看运行报表时Power BI生成的SQL(或DirectQuery数据源使用的任何查询语言)。

这是个不错的操作:如果您可以查看在工具中为数据源本身运行的查询,例如,SQL Server 的扩展事件(Extended Events)或 事件探查器(SQL SERVER Profiler),但实际上您可能没有权限执行此操作。这也不是什么大问题,您知道吗?Power BI Desktop是可以从中捕获SQL查询的。

性能分析器实时收集和显示性能测量信息。因此,每次单击视觉对象、移动切片器或以任何其他方式交互时,性能分析器会在其窗格中立即显示性能结果。

对于某些数据源(如 SQL Server,则性能分析器将为您提供生成的 SQL 查询)。操作也是十分简单,您只需转到Power BI Desktop主窗口中的“视图”选项卡,单击“性能分析器”按钮,以显示“性能分析器”窗格,单击“开始录制”,然后刷新视觉效果,找到与要查看其查询对应的事件,展开它,然后单击“复制查询”链接:

这会将视觉对象生成的 DAX 查询复制到剪贴板;对于 SQL Server DirectQuery 源,您还将获取为该 DAX 查询生成的 SQL 查询。但是,此方法不能用于所有 DirectQuery 数据源。

对于它们,您需要使用Power BI查询编辑器中的”查询诊断”功能。只需打开"Power BI查询编辑器"窗口,转到功能区上的"工具"选项卡,单击"开始诊断"按钮,返回Power BI画布,刷新视觉对象(您可以再次使用性能分析器中的"刷新视觉对象"按钮),然后返回"Power BI查询编辑器"并单击"停止诊断"按钮。

执行此操作时,将出现几个新的Power BI查询,其中包含诊断数据。找到一个名称以“Diagnostics_Detailed”开头的名称,在其中的某个地方(取决于数据源),您将找到生成的查询。例如,对于雪花数据源,您将在数据源查询列的某个位置看到生成的SQL:如下,您会发现生成的查询:

对于 Azure 数据资源管理器 DirectQuery 数据源,查询将在"附加信息"列中的"记录"值之一:

另外需要注意是:您也可能看到 SQL Server TSQL 查询的外观,即使您没有使用可以使用 TSQL 查询的数据源。下面是Azure 数据资源管理器示例中的示例:

看完文章后,小伙伴们是否觉得它们确实让您对 DirectQuery 模式在幕后的工作方式有了有深的了解。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201221A05PDZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券