SQL Server Profiler 中的 DISCOVER_CSDL_METADATA 真的很慢
Posted
技术标签:
【中文标题】SQL Server Profiler 中的 DISCOVER_CSDL_METADATA 真的很慢【英文标题】:Really slow DISCOVER_CSDL_METADATA in SQL Server Profiler 【发布时间】:2021-05-06 13:02:09 【问题描述】:我们的设置是 SQL Server + SSAS + 多维 OLAP + PowerBI。
我们最近注意到的问题是,当用户加载 PowerBI 报告时,有时会发生上述事件。这会导致报告加载之前的等待时间非常长(事件最多需要 45-60 秒)。
我们的多维数据集有约 20 个维度和约 50 个度量,3 个分区中的 2-3 百万行,MOLAP 存储。
我们能做些什么呢?我们如何调试它?我们没有 SSAS 专家参与,用谷歌搜索这个活动并没有多大帮助。我们可以在哪里搜索此类行为的原因?
【问题讨论】:
SQL Server 探查器日志中是否可见错误?与support.microsoft.com/en-us/topic/… 或support.microsoft.com/en-us/topic/… 相关的任何内容? 感谢您的评论。 (un) 幸运的是,没有错误。只是很长的 DISCOVER_BEGIN 和 DISCOVER_END 以及介于 DISCOVER_CSDL_METADATA 之间的时间,我只花了将近一分钟。一位用户今天最长的持续时间超过 90 秒... 【参考方案1】:事实证明,在我们的例子中,这可能是由于每次处理多维数据集时都删除了缓存造成的。
我们的解决方案是创建 SSIS 包,它会在我们每次处理多维数据集时运行某些 DMV 查询来填充缓存,因此最终用户将能够使用缓存而不是自己生成缓存。
【讨论】:
以上是关于SQL Server Profiler 中的 DISCOVER_CSDL_METADATA 真的很慢的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server Profiler 中的 DISCOVER_CSDL_METADATA 真的很慢
SQL优化工具 - SQL Server Profiler与数据库引擎优化顾问