Der*_*omm 9 sql-server memory sql-server-2008-r2
设置:
该服务器用于 ETL 处理。我们刚刚在此服务器中安装了更多 RAM,总共 240GB RAM。SQL Server 服务是唯一真正运行的东西。
内存在 BIOS、OpenManage 和 Windows 中显示良好。
如果我将 SQL Server 配置为使用 70/100GB 的最小/最大内存,我们没有问题。但是,一旦我将其增加到 120/150GB,当我运行我们的 ETL 进程之一时,我会收到以下错误:
无法为数据库 'tempdb' 中的对象 '<临时系统对象:422234507706368>' 分配空间,因为 'PRIMARY' 文件组已满。通过删除不需要的文件、删除文件组中的对象、向文件组添加其他文件或为文件组中的现有文件设置自动增长来创建磁盘空间。(消息 1105,状态 2,过程未知,第 1 行)
在更改内存配置之前,我们从未遇到过这个问题。重新配置回原来的70/100GB后,我们没有收到这个错误。
我尝试过的事情:
我不知道是什么导致了这个问题。
感谢大家的帮助。
在仔细研究了一些执行计划后,发现有一个 JOIN 根据可用 RAM 的大小进行不同的处理。RAM 较少时,它会使用哈希对其进行评估;当内存更多时,它使用一系列合并连接。
所以基本上它归结为写得不好的 T-SQL,我目前正在重构它。
归档时间: |
|
查看次数: |
1718 次 |
最近记录: |