是否存在已知的 SQL Server 2008 Management Studio 内存泄漏问题?

是否存在已知的 SQL Server 2008 Management Studio 内存泄漏问题?

我不确定这个问题是属于这里还是属于 StackOverflow。我在这里尝试,因为我的问题更多是关于内存泄漏和管理,而不是编程。

我有一个 SQL 脚本,我尝试运行它,并且每次服务器响应都是:

No sufficient memory to complete this query(这是主要思想,不是确切信息)

现在,脚本中有超过 50 000 行需要插入,如下例所示:

1=>

insert into Cities ([Name]) values (N'MyCityName')

2=>

insert into Sectors ([Name], [Description], City_CityId)(
    select N'FirstSector', N'1at Sect. Desc.', c.CityId 
        from Cities c 
        where c.[Name] like N'MyCityName')

3=>

insert into Streets ([Name], Direction_Value, Type_Value, SectorId, City_CityId)(
    select N'1st Street', 0, 10, s.SectorId, c.CityId
        from Cities c
            inner join Sectors s on s.City_CityId = c.CityId
        where c.[Name] like N'MyCityName' 
            and s.[Name] like N'FirstSector')

4=>

insert into Addresses (StreetNumber, NumberSuffix_Value, UnitSuiteAppt, StreetId, SectorId, CityId)(
    select 999, 0, N'', st.StreetId, s.SectorId, c.CityId 
        from Cities c
            inner join Sectors s on s.City_CityId = c.CityId
            inner join Streets st on st.SectorId = s.SectorId and st.City_CityId = c.CityId
        where c.[Name] like N'MyCityName'
            and s.[Name] like N'FirstSector'
            and st.[Name] like N'1st Street')

5=>

insert into People (Surname, FirstName, IsActive, AddressId)(
    select N'TheSurname', N'TheFirstName', 1, a.AddressId
        from Addresses a
            inner join Cities c on c.CityId = a.CityId
            inner join Streets s on s.StreetId = a.StreetId
        where a.StreetNumber = 999
            and a.NumberSuffix_Value = 0
            and a.UnitSuiteAppt = N''
            and c.[Name] like N'MyCityName'
            and s.[Name] like N'1st Street')

因此,我有以下每条指令的编号:

1=> 2;

2=> 5;

3=>~700;

4=>~35000;

5=>~35000;

执行这数千条指令会让我遇到内存不足的问题。当我打开任务管理器时,我发现 SSMS 需要超过 400MB 的 RAM。

我的配置如下:

Lenovo W700ds
2x320GB HDD 7200RPM RAID 0
4GB RAM DDR3
Intel Core 2 Quad 2.0GHz 6MB L2
Windows 7 Professional 64bits (/w all updates)
SQL Server 2005 Express services running 
    (That is my data server, I'm not using 2008 for this project)
SQL Server Management Studio 2008 Express 
    (SP3 installed /w all updates)

在执行插入指令时我只运行了 SSMS2008 应用程序。

任何能够通过系统优化或其他更新使这种情况可行的想法都将不胜感激。

答案1

您只需要安装更多内存。4GB 在现代系统上不算什么。仅仅因为 SSMS 是唯一运行的程序,并不意味着它是唯一使用内存的东西(服务是其中很大的一个)。此外,由于您正在运行 Express 版本,您可能没有为 SQL Server 配置内存使用情况,默认情况下它会尝试获取所有可能的内存。

答案2

您可以通过查看 perfmon 中的工作集来了解进程是否存在内存泄漏。

相关内容