mikezhirnyi
07-01-2020, 12:00
Доброго времени суток. Заметил некоторое время назад, что процесс “SQL Server Windows NT - 64 bit” постепенно пожирает оперативную память сервера Win 2016. Чем дольше работает сервер, тем больше оперативной памяти выделено под этот процесс и так, как я понимаю, может быть до бесконечности, пока не перезагрузить сервер, тогда объем занимаемой памяти сбрасывается и процесс начинает наращивать ее по новой. На сервере кроме WID базы WSUS нет никаких SQL баз, поэтому причина точно в ней.
Погуглив выяснил, что можно ограничить выделяемый объем оперативной памяти под конкретную SQL базу, в том числе и Windows Internal Database от WSUS, путем установки Microsoft SQL Server Management Studio.
Установил, соединился с базой данных WSUS (строка \\.\pipe\MICROSOFT##WID\tsql\query), база появилась в списке соединений, далее правой кнопкой по ней и выбрать «Свойства», после чего должно открыться окно, в котором можно исправить различные параметры, в том числе и максимальный размер выделяемой ОЗУ, но вот тут то и проблема - вместо окна свойств появляется ошибка
===================================
Не удается вывести требуемое диалоговое окно.
===================================
Не удается вывести требуемое диалоговое окно. (SqlMgmt)
------------------------------
Расположение программы:
в Microsoft.SqlServer.Management.SqlMgmt.DefaultLaunchFormHostedControlAllocator.AllocateDialog(XmlDoc ument initializationXml, IServiceProvider dialogServiceProvider, CDataContainer dc)
в Microsoft.SqlServer.Management.SqlMgmt.DefaultLaunchFormHostedControlAllocator.Microsoft.SqlServer.M anagement.SqlMgmt.ILaunchFormHostedControlAllocator.CreateDialog(XmlDocument initializationXml, IServiceProvider dialogServiceProvider)
в Microsoft.SqlServer.Management.SqlMgmt.LaunchForm.InitializeForm(XmlDocument doc, IServiceProvider provider, ISqlControlCollection control)
в Microsoft.SqlServer.Management.SqlMgmt.LaunchForm..ctor(XmlDocument doc, IServiceProvider provider)
в Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ToolMenuItemHelper.OnCreateAndShowFor m(IServiceProvider sp, XmlDocument doc)
в Microsoft.SqlServer.Management.SqlMgmt.RunningFormsTable.RunningFormsTableImpl.ThreadStarter.StartTh read()
===================================
Не удалось получить данные по этому запросу. (Microsoft.SqlServer.Management.Sdk.Sfc)
------------------------------
Чтобы получить справку, щелкните: https://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&LinkId=20476
------------------------------
Расположение программы:
в Microsoft.SqlServer.Management.Sdk.Sfc.Enumerator.Process(Object connectionInfo, Request request)
в Microsoft.SqlServer.Management.SqlManagerUI.ServerPropGenData.InitProp()
в Microsoft.SqlServer.Management.SqlManagerUI.ServerPropGenData..ctor(CDataContainer context, ServerConnection sqlConnectionInfo)
в Microsoft.SqlServer.Management.SqlManagerUI.ServerPropGeneral..ctor(CDataContainer context)
в Microsoft.SqlServer.Management.SqlManagerUI.ServerPropSheet.InitNodeAssociations(CDataContainer context)
в Microsoft.SqlServer.Management.SqlManagerUI.ServerPropSheet..ctor(CDataContainer context)
===================================
При выполнении инструкции или пакета Transact-SQL возникло исключение. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
Расположение программы:
в Microsoft.SqlServer.Management.Common.ServerConnection.GetExecuteReader(SqlCommand command)
в Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteReader(String sqlCommand, SqlCommand& command)
в Microsoft.SqlServer.Management.Smo.ExecuteSql.GetDataReader(String query, SqlCommand& command)
в Microsoft.SqlServer.Management.Smo.DataProvider.SetConnectionAndQuery(ExecuteSql execSql, String query)
в Microsoft.SqlServer.Management.Smo.ExecuteSql.GetDataProvider(StringCollection query, Object con, StatementBuilder sb, RetriveMode rm)
в Microsoft.SqlServer.Management.Smo.SqlObjectBase.FillData(ResultType resultType, StringCollection sql, Object connectionInfo, StatementBuilder sb)
в Microsoft.SqlServer.Management.Smo.SqlObjectBase.FillDataWithUseFailure(SqlEnumResult sqlresult, ResultType resultType)
в Microsoft.SqlServer.Management.Smo.SqlObjectBase.BuildResult(EnumResult result)
в Microsoft.SqlServer.Management.Smo.SqlObjectBase.GetData(EnumResult erParent)
в Microsoft.SqlServer.Management.Sdk.Sfc.Environment.GetData()
в Microsoft.SqlServer.Management.Sdk.Sfc.Environment.GetData(Request req, Object ci)
в Microsoft.SqlServer.Management.Sdk.Sfc.Enumerator.GetData(Object connectionInfo, Request request)
в Microsoft.SqlServer.Management.Sdk.Sfc.Enumerator.Process(Object connectionInfo, Request request)
===================================
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.
RegQueryValueEx() returned error 2, 'Не удается найти указанный файл.' (.Net SqlClient Data Provider)
------------------------------
Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=12.00.2000&EvtSrc=MSSQLServer&EvtID=0&LinkId=20476
------------------------------
Имя сервера: \\.\pipe\MICROSOFT##WID\tsql\query
Номер ошибки: 0
Серьезность: 11
Состояние: 0
------------------------------
Расположение программы:
в Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException)
в Microsoft.SqlServer.Management.Common.ServerConnection.GetExecuteReader(SqlCommand command)
В чем может быть проблема? Или, возможно, я все это делаю зря и есть какой-то другой известный способ ограничить выделяемый объем ОЗУ данному процессу?
Погуглив выяснил, что можно ограничить выделяемый объем оперативной памяти под конкретную SQL базу, в том числе и Windows Internal Database от WSUS, путем установки Microsoft SQL Server Management Studio.
Установил, соединился с базой данных WSUS (строка \\.\pipe\MICROSOFT##WID\tsql\query), база появилась в списке соединений, далее правой кнопкой по ней и выбрать «Свойства», после чего должно открыться окно, в котором можно исправить различные параметры, в том числе и максимальный размер выделяемой ОЗУ, но вот тут то и проблема - вместо окна свойств появляется ошибка
===================================
Не удается вывести требуемое диалоговое окно.
===================================
Не удается вывести требуемое диалоговое окно. (SqlMgmt)
------------------------------
Расположение программы:
в Microsoft.SqlServer.Management.SqlMgmt.DefaultLaunchFormHostedControlAllocator.AllocateDialog(XmlDoc ument initializationXml, IServiceProvider dialogServiceProvider, CDataContainer dc)
в Microsoft.SqlServer.Management.SqlMgmt.DefaultLaunchFormHostedControlAllocator.Microsoft.SqlServer.M anagement.SqlMgmt.ILaunchFormHostedControlAllocator.CreateDialog(XmlDocument initializationXml, IServiceProvider dialogServiceProvider)
в Microsoft.SqlServer.Management.SqlMgmt.LaunchForm.InitializeForm(XmlDocument doc, IServiceProvider provider, ISqlControlCollection control)
в Microsoft.SqlServer.Management.SqlMgmt.LaunchForm..ctor(XmlDocument doc, IServiceProvider provider)
в Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ToolMenuItemHelper.OnCreateAndShowFor m(IServiceProvider sp, XmlDocument doc)
в Microsoft.SqlServer.Management.SqlMgmt.RunningFormsTable.RunningFormsTableImpl.ThreadStarter.StartTh read()
===================================
Не удалось получить данные по этому запросу. (Microsoft.SqlServer.Management.Sdk.Sfc)
------------------------------
Чтобы получить справку, щелкните: https://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&LinkId=20476
------------------------------
Расположение программы:
в Microsoft.SqlServer.Management.Sdk.Sfc.Enumerator.Process(Object connectionInfo, Request request)
в Microsoft.SqlServer.Management.SqlManagerUI.ServerPropGenData.InitProp()
в Microsoft.SqlServer.Management.SqlManagerUI.ServerPropGenData..ctor(CDataContainer context, ServerConnection sqlConnectionInfo)
в Microsoft.SqlServer.Management.SqlManagerUI.ServerPropGeneral..ctor(CDataContainer context)
в Microsoft.SqlServer.Management.SqlManagerUI.ServerPropSheet.InitNodeAssociations(CDataContainer context)
в Microsoft.SqlServer.Management.SqlManagerUI.ServerPropSheet..ctor(CDataContainer context)
===================================
При выполнении инструкции или пакета Transact-SQL возникло исключение. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
Расположение программы:
в Microsoft.SqlServer.Management.Common.ServerConnection.GetExecuteReader(SqlCommand command)
в Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteReader(String sqlCommand, SqlCommand& command)
в Microsoft.SqlServer.Management.Smo.ExecuteSql.GetDataReader(String query, SqlCommand& command)
в Microsoft.SqlServer.Management.Smo.DataProvider.SetConnectionAndQuery(ExecuteSql execSql, String query)
в Microsoft.SqlServer.Management.Smo.ExecuteSql.GetDataProvider(StringCollection query, Object con, StatementBuilder sb, RetriveMode rm)
в Microsoft.SqlServer.Management.Smo.SqlObjectBase.FillData(ResultType resultType, StringCollection sql, Object connectionInfo, StatementBuilder sb)
в Microsoft.SqlServer.Management.Smo.SqlObjectBase.FillDataWithUseFailure(SqlEnumResult sqlresult, ResultType resultType)
в Microsoft.SqlServer.Management.Smo.SqlObjectBase.BuildResult(EnumResult result)
в Microsoft.SqlServer.Management.Smo.SqlObjectBase.GetData(EnumResult erParent)
в Microsoft.SqlServer.Management.Sdk.Sfc.Environment.GetData()
в Microsoft.SqlServer.Management.Sdk.Sfc.Environment.GetData(Request req, Object ci)
в Microsoft.SqlServer.Management.Sdk.Sfc.Enumerator.GetData(Object connectionInfo, Request request)
в Microsoft.SqlServer.Management.Sdk.Sfc.Enumerator.Process(Object connectionInfo, Request request)
===================================
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.
RegQueryValueEx() returned error 2, 'Не удается найти указанный файл.' (.Net SqlClient Data Provider)
------------------------------
Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=12.00.2000&EvtSrc=MSSQLServer&EvtID=0&LinkId=20476
------------------------------
Имя сервера: \\.\pipe\MICROSOFT##WID\tsql\query
Номер ошибки: 0
Серьезность: 11
Состояние: 0
------------------------------
Расположение программы:
в Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException)
в Microsoft.SqlServer.Management.Common.ServerConnection.GetExecuteReader(SqlCommand command)
В чем может быть проблема? Или, возможно, я все это делаю зря и есть какой-то другой известный способ ограничить выделяемый объем ОЗУ данному процессу?