无法在 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 内存被分页到磁盘。您正在做的select
s 的数量并不相关
【参考方案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