无法在 SQL Server Express 版本中启用内存中的锁定页面

Posted

技术标签:

【中文标题】无法在 SQL Server Express 版本中启用内存中的锁定页面【英文标题】:Can not enable lock page in memory in SQL Server Express edition 【发布时间】:2021-12-31 14:47:39 【问题描述】:

为了启用Lock Page In Memory,我尝试这样做:首先,我使用以下代码找到我的 SQL Server 帐户名:

SELECT service_account
FROM sys.dm_server_services

此代码返回:

NT Service\MSSQL$SQLEXPRESS01
NT AUTHORITY\NETWORKSERVICE

然后我打开gpedit.msc并转到:

Windows Setting > Security Settings > Local Policies > User Rights Assignment > Lock Page In Memory

之后双击Lock Page In Memory,打开窗口后点击“添加用户或组”按钮,然后点击NT Service\MSSQL$SQLEXPRESS01,然后点击确定,然后点击“应用”和“确定”。

最后,我重新启动了 SQL Server。

为了验证Lock Page In Memory 确实已启用,我使用以下代码 sn-p:

--Check Lock Pages in Memory
SELECT sql_memory_model, sql_memory_model_desc
FROM sys.dm_os_sys_info

此代码返回:

通过执行这些步骤,Lock Page In Memory 未启用。

错在哪里?

请帮助我 - 我该怎么做才能启用Lock Page In Memory

我的问题是读取数据。在此link 中为此写单独的帖子

【问题讨论】:

不确定它是否在 Express 版本中可用,但您可以尝试添加 trace flag 845 to the startup parameters 以启用它。 可能需要重启整个电脑,你试过吗?另外哪个登录名是实际运行的SQL Server,是NETWORKSERVICE还是MSSQL$SQLEXPRESS01 这对 SO 来说是题外话,所以投票转向 dba stackexchange。但我不认为 Express 支持 LPIM。所以你应该添加一些关于你为什么想要的细节,也许还有一些替代方案。 请在您的问题中或在新问题中描述更多有关该场景的信息。 100 每秒什么?阅读?写?数据库会有多大?如果速率低于 100/秒会怎样?计算机上还运行着什么?首先,LPIM 并不是真正的解决方案。 LPIM 是针对不同问题的解决方案:在同一台机器上运行的其他服务(或虚拟机)使 SQL Server 内存被分页到磁盘。您正在做的selects 的数量并不相关 【参考方案1】:

Lock Pages In Memory 仅适用于标准版及更高版本。

在 SQL 实例中,Lock Pages in Memory 选项设置为 ON 服务器标准版及更高版本当具有权限的帐户时 运行 sqlservr.exe 已被授予 Windows Lock Pages in Memory (LPIM) 用户权限。

要禁用 SQL Server 的 Lock Pages In Memory 选项,请删除 具有运行权限的帐户的 Lock Pages in Memory 用户权限 sqlservr.exe(SQL Server 启动帐户)启动帐户。

Lock Pages in Memory (LPIM)

【讨论】:

在开发者版中可用吗? @alirezasejdei 是的,但您不能在生产环境中使用开发人员版本 - 因此,即使您切换到开发人员进行开发,您仍然无法合法地部署该解决方案。

以上是关于无法在 SQL Server Express 版本中启用内存中的锁定页面的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server Express 2012 错误:无法连接到本地数据库

无法从使用 Express.js 和 SQL Server 创建的 api 获得任何响应

将数据库项目部署到 SQL Server 2008 Express

无法安装 SQL Server 2008 R2 Express

在 SQL Server Express 版本中创建作业? [复制]

SQL Server 2008 R2 Express三个版本有啥区别?