AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 30448
Accepted
Iain Samuel McLean Elder
Iain Samuel McLean Elder
Asked: 2012-12-15 07:28:21 +0800 CST2012-12-15 07:28:21 +0800 CST 2012-12-15 07:28:21 +0800 CST

如何修复 SQL Server 程序集优化错误和内存耗尽?

  • 772

自从我安装 SQL Server 2012 Service Pack 1 以来,.NET 运行时优化服务 ( mscorsvw) 一直占用我所有工作站的内存。

在耗尽所有可用内存之前,它会消耗大约 1.6 GB 的内存:

.NET 运行时优化服务消耗了我工作站上的所有可用内存。

我可以终止该进程,但是当我重新启动计算机或等待足够长的时间时,它会再次发生。

Techdows建议使用 .NET Native Image Generator ( ngen) 来解决这个问题。

我打开了一个命令提示符并运行了如下命令:

cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319.1
ngen executeQueuedItems

内存消耗mscorsvw下降到大约 20-30 MB,并ngen消耗了所有剩余的内存。

ngen在我终止进程之前只生成错误消息。输出的前几行如下所示:

Microsoft (R) CLR Native Image Generator - Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.
Failed to load dependency Microsoft.DataWarehouse of assembly
Microsoft.SqlServer.MaintenancePlanTasks, Version=11.0.0.0, Culture=neutral,
PublicKeyToken=89845dcd8080cc91 because of the following error : The system
cannot find the file specified. (Exception from HRESULT: 0x80070002)
Failed to load dependency Microsoft.VisualStudio.DataTools.Interop of assembly 
Microsoft.DataWarehouse, Version=11.0.0.0, Culture=neutral,
PublicKeyToken=89845dcd8080cc91 because of the following error : The system
cannot find the file specified. (Exception from HRESULT: 0x80070002)
Failed to load dependency Microsoft.Data.ConnectionUI of assembly
Microsoft.DataWarehouse, Version=11.0.0.0, Culture=neutral,
PublicKeyToken=89845dcd8080cc91 because of the following error : The located
assembly's manifest definition does not match the assembly reference.
(Exception from HRESULT: 0x80131040)

所有消息都说系统找不到程序集,或者清单定义与引用不匹配。

作为一种解决方法,我禁用了 Windows 服务clr_optimization_v4.0.30319_32和clr_optimization_v4.0.30319_64.

这隐藏了问题而不是解决问题,并阻止了所有 .NET 程序集的优化。

我还能尝试什么来解决这个问题?

sql-server-2012
  • 1 1 个回答
  • 5655 Views

1 个回答

  • Voted
  1. Best Answer
    Paul
    2013-01-07T09:14:22+08:002013-01-07T09:14:22+08:00

    此问题在 Connect 上进行了描述(请参阅安装 SQL Server 2012 SP1 后 msiexec.exe 进程继续运行),并且在KB2793634中提供了修补程序。如果您无法立即安装修补程序, Connect 帖子和此博客中列出了解决方法。

    我选择设置 2 个脚本。第一个脚本每天凌晨 1 点运行,并设置为在执行 1 小时后终止

    c:\windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe executequeueditems
    c:\windows\Microsoft.NET\Framework\v2.0.50727\ngen.exe executequeueditems
    c:\windows\Microsoft.NET\Framework64\v2.0.50727\ngen.exe executequeueditems 
    c:\windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe executequeueditems
    

    第二个脚本每天凌晨 3 点运行(以及每当计算机重新启动时):

    c:\windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe queue pause
    c:\windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe queue pause
    

    这样我仍然可以获得编译优化作业(仅在非高峰时间运行),但mscorsvw/msiexec过程被驯服。

    • 9

相关问题

  • SQL Server 2012 在 TempDb 中使用排序创建索引 - 获得 False?

  • SQL Server AlwaysOn 故障转移透明度

  • 为什么 Denali 序列应该比标识列表现更好?

  • SQL Server 不应该支持范围吗?

  • 什么是 SQL Server“德纳利”?什么是新的?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何查看 Oracle 中的数据库列表?

    • 8 个回答
  • Marko Smith

    mysql innodb_buffer_pool_size 应该有多大?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    从 .frm 和 .ibd 文件恢复表?

    • 10 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve