我有一个执行简单 MDX 查询并产生输出的网站。此输出用于生成 excel 文件。我使用了 ANTS 探查器,发现大量内存被非托管资源消耗。检查下图:
(全尺寸图片)
接下来我应该怎么做才能检测到这种内存泄漏。我想找出为什么这些对象仍然存在于记忆中。请建议我下一步该怎么做。
(全尺寸图片)
我遇到了类似的问题。我没有检测内存泄漏的解决方案,但我会让你知道我选择的路径。我没有直接从页面调用 MDX,而是将 MDX 查询移动到一个 SQL 存储过程,该过程返回一个我可以像使用关系查询一样使用的结果集。
CREATE procedure [dbo].[executeMdxQuery]
as
Declare @sql nvarchar(max) = ' SELECT a.* FROM OpenQuery("MY_SERVER",''
with member [Measures].[Fiscal Calendar Level] as ' --- remaining MDX
exec sp_executesql @sql
GO
希望这可以帮助