2010-08-09 50 views
0

我对SSAS和SQL Server相当陌生,但Google没有帮助。我很感谢指向正确文档的指针。如何防止SSAS从RAM卸载,如何加速第一个请求

我已经设置了一个多维数据集,并使用数据透视表从Excel中查询它。

我运行的第一个更新/请求需要大约10秒才能运行,但是下面的请求在少于一秒内完成。

当我等了一会儿没有查询(10分钟左右)第一次更新需要10秒钟。

如何防止此行为并加速第一次更新?

我想象一下,SQL Server在一段时间后从RAM卸载多维数据集。有没有办法将多维数据集标记为“保存在RAM中”。

感谢,

Cilvic

回答

1

最可能的原因,它会从缓存中删除是SQL Server内存压力。服务器有多少内存?

如果添加更多的内存是不是一种选择,你也许可以安排定期(每小时说)缓存热身:How to warm up the Analysis Services data cache using Create Cache statement?

例如,ascmd.exe可以用来 每隔一小时执行在 目录中的所有查询保持高速缓存准备好用于后续用户查询 。其他 的方法,已被使用,是为 为每个用户创建一个缓存查询 查询。如果MDX 查询是报表的一部分,则这是可行的,然后一个 只是添加另一个查询,该查询具有填充缓存的副作用 ,从而加快了下一个查询的速度。

另外:Build Your Own Analysis Services Cache-Warmer in Integration Services

有几个SSAS performance counters可以监视:

  • MSAS 2008:内存清理当前 价格的内存, $ /字节/次,标准化为当前价格1000.

  • MSAS 2008:Memory Cleaner Balance/sec 平衡+收缩操作率。

  • MSAS 2008:内存清除内存 缩水KB /秒的速率收缩,在 KB /秒。

  • MSAS 2008:内存清除内存的内存 热收缩KB金额,在 KB,须经 背景清洁器清洗。

  • MSAS 2008:内存清除内存的内存 非收缩KB金额,在 KB,不受由 背景清洁器清洗。

  • MSAS 2008:内存清理内存KB 内存量,以KB为单位, 已知的后台清理程序。 (清洁内存 热收缩+清洁内存 非收缩。)

+0

感谢高速缓存链接!我有12 GB的内存,只用了30%。我会看看是否可以用那么多的空闲内存来重现行为。在我注意到它的时候可能是我以前一直处于内存的状态。 谢谢。 – Cilvic 2010-08-09 08:31:33

+0

@Cilvic:由于SQL Server管理内存的方式,只查看任务管理器中的内存使用情况并不会真正告诉你什么 – 2010-08-09 08:32:34