Microsoft sql server express ограничения. Ограничение памяти редакцией SQL Server

05.03.2020 Советы 

Есть несколько вариантов ограничения памяти, некоторые настраиваем мы, а не которые устанавливает Microsoft.

Ограничение памяти редакцией SQL Server

Поговорим сначала о том, что изменить нам не представляется возможным, а именно ограничение памяти на редакцию SQL Server. От версии к версии эти пороги меняются, сегодня я хотел бы остановиться на SQL Server 2014, остальные версии можно .

Как мы видим, для нагруженных решений, редакции Standard будет недостаточно, а Enterprise стоит значительно больше (в среднем в 4 раза больше если сравнивать лицензии на ядра).

Ограничение памяти экземпляру SQL Server

Теперь перейдём к ограничению на которое мы можем повлиять, а именно к параметру экземпляра max server memory . Данный параметр ограничивает память выделяемую для экземпляра, но охватывает не весь её объём. Max server memory ограничивает только баффер пул (далее buffer pool), если не вдаваться в детали, то buffer pool это область памяти SQL Server отвечающая за весь кэш страниц данных и индексов. Остальная часть кэша (процедурный, backup, для поддержки dll и тд) используется вне buffer pool. Память управляется клерками памяти, посмотреть все их виды и используемые ими ресурсы . Именно по этой причине вы могли видеть что экземпляр часто съедает больше памяти чем мы выставили в max server memory.

max server memory может быть изменён 2 способами:

  1. С помощью T-SQL команд

Transact-SQL

Сначала включаем возможность расширенного изменения конфигурации SQL Server sp_configure "show advanced option", 1 RECONFIGURE GO -- Устанавливаем максимальное количество оперативной памяти для buffer pool в 2048 sp_configure "max server memroy", 2048 RECONFIGURE

2. С помощью SQL Server Management Studion:

Правая кнопка мышки на сервере > Свойства > раздел Память > указать в разделе max server memory нужное значение > ОК

Ограничение памяти с помощью Регулятора Ресурсов

Так же у нас есть возможность опуститься ещё на 1 уровень ниже и ограничить память для конкретных подключений с помощью Регулятора Ресурсов (Resource Governor). В данном компоненте создаются пулы ресурсов, группы рабочих нагрузок и функция распределения подключений по группам рабочих нагрузок (). С помощью Resource Governor мы можем разделить ресурсы экземпляра SQL Server на группы и раздать эти группы, по определённой логике, разным пользователям. Данный функционал доступен только в Enterprise Edition.

Особенности определения реально используемой памяти SQL Server

Понять сколько использует памяти SQL Server можно с помощью диспетчера задач, но если у вас на сервере включена ‘блокировка страниц в памяти’, то данный способ не покажет реальной картины. В таком случае, чтобы посмотреть количество используемой памяти вам потребуется обратиться к счётчикам производительности или написать запрос к представлению sys.dm_os_performance_counters :

  1. Запрос будет выглядеть следующим образом

Ориентированный на разработчиков. Он доступен в SQL Server 2016 Express с дополнительными службами.

При установкеLocalDB выполняется копирование минимального набора файлов, необходимых для запуска компонента Компонент SQL Server Database Engine. После установки LocalDB вы можете установить соединение с помощью специальной строки подключения. При соединении необходимая инфраструктура SQL Server создается и запускается автоматически, что позволяет приложению использовать базу данных без выполнения сложной настройки. Средства разработчика позволяют использовать Компонент SQL Server Database Engine для написания и проверки кода Transact-SQL без необходимости управления полным экземпляром сервера SQL Server.

    Чтобы скачать и установить SQL Server 2016 Express, перейдите в Центр загрузки . Компонент LocalDB выбирается во время установки. В Центре загрузки LocalDB доступен для выборочной установки или при скачивании носителя. Если вы скачиваете носитель, выберите Express Advanced или пакет LocalDB .

    Есть учетная запись Azure? Затем перейдите сюда , чтобы запустить виртуальную машину с уже установленным SQL Server 2016.

Установите LocalDB с помощью мастера установки или программы SqlLocalDB.msi. Параметр LocalDB применяется для установки SQL Server 2016 Express.

Выберите LocalDB на странице Выбор компонентов/общие компоненты во время установки. Двоичные файлы LocalDB можно устанавливать лишь по одному разу для каждой основной версии Компонент SQL Server Database Engine . Можно запускать несколько процессов Компонент Database Engine , которые будут использовать одни и те же двоичные файлы. Экземпляр Компонент SQL Server Database Engine , запущенный как LocalDB , имеет те же ограничения, что и SQL Server Express

Управление экземпляром SQL Server Express LocalDB осуществляется с помощью служебной программы SqlLocalDB.exe . SQL Server Express LocalDB следует использовать вместо устаревшей функции пользовательского экземпляра SQL Server Express .

Программа установки LocalDB использует программу SqlLocalDB.msi для установки необходимых файлов на компьютере. После установки LocalDB становится экземпляром SQL Server Express , который способен создавать и открывать базы данных SQL Server . Файлы системной базы данных, как правило, хранятся в каталоге AppData пользователя, который обычно скрыт. Например, C:\Users\<пользователь>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\ . Файлы пользовательской базы данных хранятся в месте, указанном пользователем, как правило, в папке C:\Users\<пользователь>\Documents\ .

Дополнительные сведения о включении LocalDB в приложение см. в документации Visual Studio Общие сведения о локальных данных , Пошаговое руководство. Создание базы данных LocalDB SQL Server и Пошаговое руководство. Подключение к данным в базе данных LocalDB SQL Server (формы Windows) .

Дополнительные сведения об API LocalDB см. в разделах Справочник по API экземпляра SQL Server Express LocalDB и Функция LocalDBStartInstance .

Служебная программа SqlLocalDb позволяет создавать экземпляры LocalDB , запускать и останавливать экземпляр LocalDB , а также включает параметры для управления LocalDB . Дополнительные сведения о программе SqlLocalDb см. в разделе .

Параметры сортировки экземпляра для LocalDB заданы в SQL_Latin1_General_CP1_CI_AS и не могут быть изменены. Параметры сортировки на уровне базы данных, на уровне столбца и на уровне выражения поддерживаются обычным образом. Содержащиеся базы данных следуют правилам метаданных и параметрам сортировки tempdb, определенным .

Ограничения

LocalDB не может быть подписчиком в репликации слиянием.

LocalDB не поддерживает FILESTREAM.

ДляLocalDB разрешены только локальные очереди компонента Service Broker.

Экземпляр LocalDB , принадлежащий встроенным учетным записям, например NT AUTHORITY\SYSTEM, может иметь проблемы с управляемостью из-за перенаправления файловой системы Windows. Вместо этого следует использовать обычную учетную запись Windows в качестве владельца.

Автоматические и именованные экземпляры

LocalDB поддерживает два типа экземпляров: автоматические и именованные.

    Автоматические экземпляры LocalDB являются общедоступными. Они создаются и обслуживаются автоматически и могут использоваться любым приложением. Для каждой версии LocalDB , установленной на компьютере пользователя, существует один автоматический экземпляр LocalDB . Автоматические экземпляры LocalDB обеспечивают удобное управление экземплярами. Нет необходимости создавать экземпляр. Он просто работает. Это упрощает установку приложения и его перенос на другой компьютер. Если на целевом компьютере установлена указанная версия LocalDB , то там также будет доступен автоматический экземпляр LocalDB . Автоматические экземпляры LocalDB именуются по специальному шаблону, принадлежащему зарезервированному пространству имен. Это позволяет избежать возникновения конфликтов имен с именованными экземплярами LocalDB . Автоматический экземпляр имеет имя MSSQLLocalDB .

    Именованные экземпляры LocalDB - закрытые. Они принадлежат одному приложению, которое отвечает за создание экземпляра и управление им. Именованные экземпляры обеспечивают изоляцию от других экземпляров и способствуют повышению производительности за счет снижения уровня конфликта за ресурсы с другими пользователями базы данных. Пользователь должен создавать именованные экземпляры явным образом с помощью API управления LocalDB или неявным образом через файл app.config управляемого приложения (при необходимости управляемое приложение также может использовать API). Каждый именованный экземпляр LocalDB имеет связанную с ним версию LocalDB , которая указывает на соответствующий набор двоичных файлов LocalDB . Имя экземпляра LocalDB имеет тип данных sysname и может содержать до 128 символов (в отличие от обычных именованных экземпляров SQL Server, где допускается использование только обычных имен NetBIOS из 16 символов ASCII). Имя экземпляра LocalDB может содержать любые символы Юникода, допустимые в имени файла. Именованный экземпляр, в котором используется имя автоматического экземпляра, становится автоматическим экземпляром.

Разные пользователи одного и того же компьютера могут иметь экземпляры с одинаковыми именами. Каждый экземпляр является отдельным процессом, который запускается от разных пользователей.

Если нескольким пользователям компьютера требуется доступ к одному экземпляру LocalDB , то в LocalDB поддерживается общий доступ к экземплярам. Владелец экземпляра может разрешить другим пользователям компьютера соединяться со своим экземпляром. Общими могут быть как автоматические, так и именованные экземпляры LocalDB . Для организации общего доступа к экземпляру LocalDB пользователь должен указать его общее имя (псевдоним). Поскольку общее имя видно всем пользователям компьютера, то оно должно быть уникальным на этом компьютере. Общее имя экземпляра LocalDB имеет тот же формат, что и для именованного экземпляра LocalDB .

Только администратор компьютера может создавать общие экземпляры LocalDB . Администратор или владелец общего экземпляра LocalDB может отменить общий доступ к экземпляру LocalDB . Открытие и отмена общего доступа к экземпляру LocalDB производится с помощью методов LocalDBShareInstance и LocalDBUnShareInstance API LocalDB либо с помощью соответствующих параметров программы SqlLocalDb.

Подключение к автоматическому экземпляру

Самым простым способом использования LocalDB является подключение к автоматическому экземпляру, владельцем которого является текущий пользователь, с помощью строки подключения "Server=(localdb)\MSSQLLocalDB;Integrated Security=true" . Подключиться к определенной базе данных, используя имя файла, можно с помощью строки подключения, подобной следующей: "Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true; AttachDbFileName=D:\Data\MyDB1.mdf" .

Создание и подключение к именованным экземплярам

Помимо автоматических экземпляров, LocalDB также поддерживает именованные экземпляры. Используйте программу SqlLocalDB.exe для создания, запуска и остановки именованного экземпляра LocalDB . Дополнительные сведения об SqlLocalDB.exe см. в разделе .

REM Create an instance of LocalDB "C:\Program Files\Microsoft SQL Server\130 \Tools\Binn\SqlLocalDB.exe" create LocalDBApp1 REM Start the instance of LocalDB "C:\Program Files\Microsoft SQL Server\130 \Tools\Binn\SqlLocalDB.exe" start LocalDBApp1 REM Gather information about the instance of LocalDB "C:\Program Files\Microsoft SQL Server\130 \Tools\Binn\SqlLocalDB.exe" info LocalDBApp1

Вышеуказанная последняя строка возвращает информацию, аналогичную следующей.

Примечание

Если приложение использует версию.NET ранее 4.0.2, то необходимо устанавливать соединение непосредственно с именованным каналом LocalDB . Значение "Имя канала экземпляра" - это именованный канал, который прослушивает экземпляр LocalDB . Часть имени канала экземпляра, следующая после LOCALDB#, будет изменяться при каждом запуске экземпляра LocalDB . Для подключения к экземпляру LocalDB с помощью SQL Server Management Studio введите имя канала экземпляра в поле Имя сервера диалогового окна Соединение с Компонент Database Engine . Можно установить соединение с экземпляром LocalDB из пользовательской программы с использованием строки подключения, аналогичной SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");

Соединение с общим экземпляром LocalDB

Чтобы установить соединение с общим экземпляром LocalDB , добавьте в строку подключения сочетание .\ (точка + обратная косая черта), чтобы указать пространство имен, зарезервированное для общих экземпляров. Например, чтобы соединиться с общим экземпляром LocalDB с именем AppData , укажите в строке подключения (localdb)\.\AppData . Пользователь, устанавливающий соединение с общим экземпляром LocalDB , который ему не принадлежит, должен иметь имя входа для проверки подлинности Windows или SQL Server .

Дополнительные сведения по устранению неполадок в работе LocalDB см. в разделе .

Экземпляр SQL Server 2016 ExpressLocalDB является экземпляром, созданным пользователем для собственного использования. Любой пользователь компьютера может создать базу данных в экземпляре LocalDB , сохранив файлы в своем пользовательском профиле и запустив процесс со своими учетными данными. По умолчанию доступ к экземпляру LocalDB ограничен его владельцем. Данные, содержащиеся в LocalDB , защищаются средствами файловой системы. Если файлы пользовательской базы данных хранятся в общей папке, то базу данных может открыть любой пользователь, имеющий доступ к этой папке, с помощью собственного экземпляра LocalDB . Если файлы базы данных хранятся в защищенном месте, например в папке пользовательских данных, то базу данных может открыть только сам пользователь, а также администратор, обладающий правами доступа к данной папке. Файлы LocalDB могут быть открыты одновременно только одним экземпляром LocalDB .

SQL Server Express является бесплатной версией основной системы управления реляционными базами данных Microsoft — SQL Server, которая может использоваться для хранения и доступа к информации, хранящейся в различных хранилищах. SQL Server обладает впечатляющим набором функций, такими как анализ, отчеты и углубленная расширенная аналитика.

Описание SQL Server Express

Корпоративная версия SQL Server конкурирует с такими ресурсами, как Oracle Database (DB) и MySQL. SQL Server Enterprise поставляется с расширенным набором функций и может быть слишком дорогим для компаний среднего звена. Однако Microsoft предлагает SQL Server в нескольких разных выпусках, включая:

    SQL Server Enterprise.

    Business Intelligence.

    SQL Server Management Studio Express.

    Стандарт SQL Server.

    Web.

SQL SE является самым доступным базовым предложением. Это полный механизм базы данных, который можно развернуть на сервере или внедрить в приложение.

SE является бесплатным и поставляется со многими функциями, такими как корпоративная версия. SQL Server Management Express наиболее подходит для поддержки производственных приложений для предприятий малого и среднего бизнеса. Типичным примером использования будет развертывание разработчиков, которые не хотят создавать приложения с базой данных, размещенной на сервере. Используя Express, они смогут разрабатывать приложения со своей базой данных SQL Server.

Преимущества

Некоторые преимущества данного программного решения:


Ограничения

Перед развертыванием SQL Server Express вы должны узнать о своих ограничениях:

    Максимальная память, используемая SQL Server Database Engine - 1 ГБ.

    Максимальный размер каждой реляционной базы данных - 10 ГБ.

    Агент SQL не включен в Express. Агент SQL - это фоновый инструмент, который позволяет администраторам автоматизировать такие задачи, как резервное копирование данных, настройка репликации базы данных, планирование заданий, пользовательские разрешения и мониторинг базы данных.

    Предел в буферном кеше для каждого экземпляра составляет 1 МБ ОЗУ.

    Механизм реляционной базы данных ограничен меньшим количеством сокета.

Версии

Версия 2016 была выпущена в трех модификациях:

    SP1 Express — это основное предложение для экспресс-доставки, поставляется с базовыми функциями. Кроме того, такие возможности, как динамическая маскировка данных и безопасность на уровне строк, теперь доступны в Express.

    Express с расширенными службами — эта версия содержит большее количество функций. Включены механизм реляционной базы данных, Management Studio, отчетность и полнотекстовый поиск. Идеально подходит для разработчиков, работающих с меньшими приложениями, которым необходимо внедрить отчетность в своих субъектах.

  • Express LocalDB — эта редакция в основном используется в качестве инструмента разработки. Это наиболее легкая версия Express, которая работает как локальное приложение. Поддерживает все основные функции программирования других изданий. Большим преимуществом LocalDB для разработчиков является то, что он позволяет создавать локальную среду, которая намного проще в установке и управлении. Пользователи могут просто запустить экземпляр среды выполнения LocalDB по мере необходимости без установки службы

    Предназначение

    Ограниченная клиентская версия SQL Server Express предназначена для разработчиков, любителей и независимых авторов программного обеспечения, которым нужна база данных с низким уровнем доступа без поддержки предприятия. Общий сценарий, прменяемый для использования этого бесплатного продукта, предназначен для проекта веб-разработки с Visual Studio или для использования в качестве настраиваемой базы данных, которую разработчик может распространять среди клиентов. Версия Express основан на Yukon и содержит те же возможности программирования, как T-SQL, собственный клиент и API ADO.NET.

    Технические особенности

    Данная версия поставляется с Express Manager и диспетчером компьютеров, двумя инструментами GUI для настройки и установки. Версия ограничивается использованием общей памяти в локальной системе. Подключение к базе данных может осуществляться через TCP/IP или именованные каналы. Тем не менее веб-доступ через HTTP или высокопроизводительный доступ с использованием VIA не поддерживается. Вы должны специально включить сетевое взаимодействие с Express, и подключенный пользователь должен включить службу браузера SQL Server, чтобы выполнить сетевое подключение. Общая память не использует службу Browser.

    Установка

    Для запуска Microsoft SQL Server Express вам понадобится система, работающая под управлением Windows 2000 SP4, XP Pro SP1 или Server 2003. Рекомендуемая оперативная память - 512 МБ, но продукт будет работать с 256 МБ ОЗУ. Программное обеспечение также требует 170 МБ пространства на жестком диске, MSIE 6.0 SP1 и Microsoft .NET Framework 2.0 или более поздних версий.

    Сравнение версий и бесплатные загрузки

    Microsoft SQL Server — это система управления базами данных корпоративного качества, которая обычно размещается на сервере и может масштабироваться на нескольких серверах и в разных местах.

    Для локального компьютера, небольших баз данных и менее критических ситуаций Microsoft предлагает ограниченную версию SQL Server под названием SQL Server Express. Данное приложение можно загрузить бесплатно и установить на локальный ПК. Это полезно для следующих ситуаций:


Современный мир - это мир данных и мир сетей. Компании хранят и обрабатывают все больше информации, которая используется и для работы с клиентами, и для анализа и принятия решений. Данные хранятся уже не только локально и доступны многим пользователям с разной ролью. В итоге современные СУБД, изначально разработанные для других целей, постепенно начинают обрастать всевозможными функциями. Посмотрим, что нового в недавнем релизе MS SQL Server 2016.

Знакомимся с MS SQL 2016

Новая версия разрабатывалась воистину ударными темпами. Не успели познакомиться с версией 2014 (вышла 1 апреля 2014 года), как буквально через год, в мае 2015-го, на конференции Ignite был представлен очередной релиз, а для загрузки выложили сразу Community Technology Preview 2. Финальная версия вышла 1 июня 2016 года. В новом релизе MS, очевидно, сделала шаг в направлении общей кодовой базы SQL Server и Azure SQL Database, что довольно логично. Функции, ранее появившиеся в Azure SQL DB (вроде Row-Level Security и Dynamic Data Masking), теперь доступны и для локального сервера.

Вместе с релизом SQL Server 2016 MS представила агрессивную программу перехода с СУБД лидера рынка Oracle (занимает примерно 40% против 21% у MS), включающую «бесплатную» лицензию (заплатить нужно будет за подписку на Software Assurance), инструменты для миграции и обучение персонала. При построении БД с нуля СУБД от Miсrosoft обойдется на порядок дешевле. Предлагаются две лицензии: одна основана на вычислительных мощностях (Core-based), вторая - на количестве пользователей или устройств (Server + Client Access License). Oracle работает под Linux, и здесь у MS тоже есть сюрприз: анонсировано, что новая версия также будет работать под управлением этой ОС. Хотя сам релиз под Linux выйдет примерно в середине 2017 года.

Реализовано пять версий: Enterprise, Standard, Express, Developer и Web. Версия Developer Edition доступна бесплатно и обладает всеми возможностями Enterprise, но предназначена исключительно для разработки и тестирования, ее нельзя использовать в рабочих средах. Числовые показатели по сравнению с 2014 практически не изменились. Максимальный размер баз данных 524 Пбайт, у Express - 10 Гбайт. Максимальный объем используемой памяти на экземпляр: Express - до 1 Гбайт, Standard - 128 Гбайт, остальные ограничены возможностями ОС. Максимальное количество ядер: Express - до четырех, Standard - 24 (в 2014 - 16).

Как принято, новый релиз поддерживает минус одно поколение ОС. Из списка выпали Win7 и Win2k8. Возможна установка SQL Server на все x64-редакции Windows от 8 и Win2012, в том числе и урезанные Core и Nano. Особо отмечается, что процессоры x86 больше не поддерживаются.

С нового релиза SQL Server Management Studio (SSMS) поставляется отдельно, а сам он теперь управляет всеми редакциями SQL Server от 2008 (включая будущую SQL 2016 под Linux). То есть теперь не придется держать несколько SSMS для работы с разными релизами СУБД. Установка SSMS возможна на Win7SP1+/Win2k8+.

В SSMS появилось несколько полезных возможностей. Например, Live Query Statistics позволяет наблюдать за ходом выполнения запроса. Полученные сведения (время, количество данных, процент выполнения) можно использовать для оптимизации. Активируется функция при помощи кнопки Include Live Query Statistics, в сессии должен быть включен сбор статистики (SET STATISTICS XML ON , SET STATISTICS PROFILE ON). Модуль PowerShell для работы с MS SQL sqlps, идущий в комплекте SQL 2016, поддерживает управление всеми версиями от SQL2k (конечно, в более ранних версиях сервера будут недоступны некоторые функции). Также изменения коснулись набора дополнений к Visual Studio - SQL Server Data Tools для Visual Studio. Раньше были доступны две версии: собственно SSDT и SSDT-BI (Business Intelligence), теперь они объединены в один пакет.

В документе SQL Server 2016 and Windows Server 2016 Better Together разработчики приводят примеры, почему только сочетание MS Server 2016 и SQL Server 2016 обеспечит максимальную безопасность и производительность. Например, Win2016 поддерживает технологию энергонезависимой памяти Storage Class Memory (SCM), в том числе и NVDIMM - они заменяют обычные DIMM-модули памяти, но умеют хранить информацию при потере питания. Применяя их, можно добиться существенного прироста производительности. С помощью технологии Storage Spaces Direct на основе стандартных серверов с локальным хранилищем можно создать высокодоступное и масштабируемое хранилище данных.

Еще две технологии - Just-In-Time (JIT) и Just Enough Administration (JEA) - позволяют ограничить администратора в правах по времени или при помощи PowerShell делегировать пользователю ровно те права, которые ему нужны, чтобы выполнять работу.


Безопасность

Функции SQL Server, позволяющие обезопасить данные и бороться с угрозами, расширяются и совершенствуются от версии к версии. В основу положен принцип минимальных привилегий, доступ к информации через хранимые процедуры и определяемые пользователем функции, обеспечивающие доступ только к разрешенным ресурсам. Прозрачное шифрование данных и журналов (Transparent data encryption, TDE), шифрование на уровне ячеек и шифрование соединений защищают информацию от кражи. Плюс размещение файлов базы на Encrypting File System. Однако новые угрозы и задачи для SQL-сервера возникают постоянно, и инструменты безопасности не всегда с ними справляются.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «сайт», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!