标签: memory-manager

SQL Server 2019:图形查询的内存性能(可能的内存泄漏)

我目前正在努力升级到 SQL Server 2019,以便利用其中可用的图形功能。我们的数据库存储文件及其子文件的记录,图形特征使我们能够快速找到文件在任一方向的所有关系。我们当前的开发环境在 Linux 服务器上使用 SQL Server 2019 Standard (15.0.4023.6)。

我在运行图形查询时注意到一个令人担忧的问题。服务器的“内部”资源池在图形查询后似乎没有释放所有资源。如果不选中,这会填满资源池。在重新启动 SQL Server 进程之前,较大的查询将失败。根据服务器负载,这可能会在短短 1-2 小时内发生。这也会填满 tempdb 并威胁填满存储驱动器。在服务器重新启动之前,tempdb 的文件也不能显着缩小/截断。在配置中,'memory.memorylimitmb'没有设置,所以当资源池开始使用默认80%的系统内存(12.8GB,16GB系统内存)中的大部分时,就会出现这个问题

要在演示数据库中设置表:

CREATE TABLE FileNode (ID BIGINT NOT NULL CONSTRAINT PK_FileNode PRIMARY KEY) AS NODE

GO

CREATE TABLE FileNodeArchiveEdge AS EDGE

GO

CREATE INDEX [IX_FileNodeArchiveEdge_ChildFile] ON [dbo].[FileNodeArchiveEdge] ($from_id)

GO

CREATE INDEX [IX_FileNodeArchiveEdge_ParentFile] ON [dbo].[FileNodeArchiveEdge] ($to_id)

GO
Run Code Online (Sandbox Code Playgroud)

填充演示数据库表:

INSERT INTO [FileNode] (ID) VALUES
            (1),(2),(3),(4),(5),
            (6),(7),(8),(9),(10),
            (11),(12),(13),(14),(15)

-- Convenient intermediate table
DECLARE @bridge TABLE (f BIGINT, t BIGINT)
INSERT INTO @bridge (f, t) …
Run Code Online (Sandbox Code Playgroud)

memory graph sql-server-2019 memory-manager

10
推荐指数
1
解决办法
437
查看次数

如何在DMV中查询SQL Server内存管理器性能计数器?

是否有任何系统目录视图或 DMV 可用于从 SQL Server:Memory Manager 查询(例如在 SSMS 中)以下性能计数器?

Free Memory (KB)
Target Server Memory
Total Server Memory
Maximum Workspace Memory (KB)
Database Cache Memory (KB)
Granted Workspace Memory (KB)
Lock Memory (KB)
Log Pool Memory (KB)
Optimizer Memory (KB)
Connection Memory (KB)
SQL Cache Memory (KB)
Reserved Server Memory (KB)
Stolen Server Memory (KB)
Run Code Online (Sandbox Code Playgroud)

memory dmv sql-server-2017 performance-counters memory-manager

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