【发布时间】:2011-11-21 17:51:44
【问题描述】:
有没有一种方法可以使用 DMV 或 XMLA 动态发现具有特定名称的分区是否已存在于我的多维数据集中?
谢谢
【问题讨论】:
有没有一种方法可以使用 DMV 或 XMLA 动态发现具有特定名称的分区是否已存在于我的多维数据集中?
谢谢
【问题讨论】:
如果您想要一个可以通过 MDX 查询的 DMV,您可以使用 $System.DISCOVER_OBJECT_ACTIVITY 架构,然后根据 OBJECT_PARENT_PATH 对其进行过滤,类似于:
SELECT OBJECT_ID
FROM $System.DISCOVER_OBJECT_ACTIVITY
[Server].Databases.[DatabaseID].Cubes.[CubeID].Measure Groups.[MeasureID].Partitions
【讨论】:
没有列出此信息的 DMV。您必须发出 DISCOVER_XML_METADATA 请求并解析返回的 XMLA,该 XMLA 的格式与您编写对象定义脚本时得到的格式相似。
如果您不介意使用外部程序集,那么在程序集中http://asstoredprocedures.codeplex.com 有一个名为 DiscoverXmlMetadata 的函数可以执行此操作。
以下查询将返回数据库中所有分区的列表
调用 assp.DiscoverXmlMetadata("Partition")
【讨论】: