在 Microsoft SQL Server Analysis Services 2005 中浏览多维数据集时,我想看看由 Excel 等客户端访问工具生成的 MDX(据说)查询。有没有一种工具或方法可以让我做到这一点?
我真的在寻找像 Oracle 的 v$sessions 之类的东西——我知道 sp_who 和 sp_who2 用于关系 SQL Server,但是否有用于 MSAS 的?
使用 SQL Server Profiler - 它可以连接到 Analysis Services... 创建跟踪时,请确保单击“显示所有事件”并捕获“执行 MDX”事件。
如果您想查看会话,您可以进行 DISCOVER_SESSIONS xmla 调用,但这会发回 XML 结果。要获得表格结果,您可以使用ASStoredProcedure 项目中的 DMV 函数
然后您可以执行以下操作:
call ASSP.DMV("SELECT * FROM $System.DISCOVER_SESSIONS");
SSAS 2008 具有对 DMV 的本机支持,因此您可以执行以下操作:
SELECT * FROM $System.DISCOVER_SESSIONS
我记得几年前在这些方面做了一些事情。我不确定 Analysis Services 是否会实际记录它使用的 MDX,但它确实会记录一些内容。我相信您可以右键单击 AS 中的服务器属性,并且有一个选项卡可以告诉它要记录查询的文件。
(对不起,我不能更具体,那是很久以前的事了,现在我还没有AS摆在我面前!)