小编Bre*_*ter的帖子

资源池"内部"中的系统内存不足

SQL Server 2008链接服务器和临时INSERT导致快速内存泄漏,最终导致服务器无响应,并以以下错误结束:

Msg 701, Level 17, State 123, Server BRECK-PC\SQLEXPRESS, Line 2
There is insufficient system memory in resource pool 'internal' to run this 
query.

Location:        qxcntxt.cpp:1052
Expression:      cref == 0
SPID:            51
Process ID:      1880
Run Code Online (Sandbox Code Playgroud)

在重新启动SQL Server之前,服务器仍然没有响应.

使用的软件:

  • Windows Vista Ultimate 64位构建6001 SP1

  • Microsoft SQL Server 2008(SP1) - 10.0.2734.0(X64)2009年9月11日14:30:58版权所有(c)1988-2008 Microsoft Corporation在Windows NT 6.0上具有高级服务(64位)的Express Edition(Build 6001:Service包1)

  • SQL Anywhere 11.0.1.2276中的SAOLEDB.11驱动程序

将最大服务器内存(MB)设置为2048没有帮助.

将各种-g值(例如,-g256;)添加到服务器启动参数没有帮助.

使用DBCC FREESYSTEMCACHE('ALL'),DBCC FREESESSIONCACHE和DBCC FREEPROCCACHE没有帮助.

将Cumnulative更新包4安装到SQL Server 2008 Service Pack 1没有帮助,即使它包含对涉及链接服务器使用的内存泄漏症状的修复.

从INSERT中分离SELECT ... ROW_NUMBER()OVER ...查询没有帮助.实验表明复杂的SELECT没有引起内存泄漏,INSERT就是这样.

更改代码以使用ad-hoc"INSERT INTO OPENROWSET"语法而不是链接服务器没有帮助; 下面的代码显示了链接的服务器用法. …

oledb memory-leaks linked-server sql-server-2008

14
推荐指数
1
解决办法
4万
查看次数

我可以从列 CHECK 约束调用用户定义的函数吗?

我有一个返回 1 或 0 的用户定义的 SQL 函数,我想从列 CHECK 约束中调用它。

sql sqlanywhere

4
推荐指数
1
解决办法
5995
查看次数

如何检查SQL Anywhere中是否存在临时表?

我想编写一个SQL IF语句来检查是否存在本地临时表,但这些表不会记录在SQL Anywhere系统目录中.

sql sqlanywhere

3
推荐指数
1
解决办法
3830
查看次数