我有一个生产Server 2008 R2数据库服务器,它为查询引擎分配了8GB内存(由数据库服务器内存管理屏幕中的最小内存设置)。我注意到,每当有几个ETL进程并行运行时,我就会经常遇到内存瓶颈,因为每个存储过程调用,无论多么简单,都为前3个传入进程预留了2GB的RAM,然后为每个后续查询保留了2GB的部分。然而,前3个传入进程中甚至没有一个使用保留RAM的一半。我向服务器再添加了16 in的RAM,并在内存管理屏幕中将所有新的附加RAM分配给数据库服务器。现在,前5个传入进程保留了4GB的RAM,随后的每个查询都保留了4GB的内存。到底怎么回事?
我没有看到任何可以改变的设置,所以我假设解决方案将需要编码。我将测试分离一些长时间运行的存储过程,这些存储过程有许多步骤进入较小的存储过程链,以查看目前是否提供了任何帮助。任何建议都将不胜感激!
发布于 2010-07-15 07:42:57
你的桌子有分区吗?在已分区表上是否有不结盟索引?这是在黑暗中拍摄,但尝试OPTION (MAXDOP 1)
查询提示您的问题ETL查询。
https://serverfault.com/questions/160762
复制相似问题