Sql express 2019 ограничения памяти
Эта статья приводит ограничения емкости вычислительных ресурсов в различных выпусках SQL Server и описывает отличия в их работе в физических и виртуальных средах, содержащих процессоры с технологией Hyper-Threading.
Эта таблица поясняет обозначения из предыдущей схемы.
Значение | Описание |
---|---|
0..1 | Ноль или один |
1 | Ровно один |
1..* | Один или более |
0..* | Ноль или более |
1..2 | Один или два |
- У виртуальной машины (ВМ) есть как минимум один виртуальный процессор.
- Один или несколько виртуальных процессоров выделяются ровно одной виртуальной машине.
- Ноль или один виртуальный процессор сопоставляются с нулем или другим числом логических процессоров. Сопоставление виртуальных и логических процессоров
- "Один к нулю" означает непривязанный логический процессор, который не используется операционными системами на виртуальной машине.
- "Один ко многим" означает избыточное выделение ресурсов.
- "Нуль ко многим" означает отсутствие виртуальной машины на основной системе. Поэтому в виртуальных машинах не используются никакие логические процессоры.
- "Один к нулю" означает, что процессорное гнездо пусто. Микросхема не установлена.
- "Один к одному" означает, что в гнездо установлен одноядерный процессор. Такое сопоставление сейчас встречается редко.
- "Один ко многим" означает, что в сокет установлена многоядерная микросхема. Обычно используются значения 2, 4 и 8.
- "Один к одному" означает, что технология Hyper-Threading отключена.
- "Один к двум" означает, что технология Hyper-Threading включена.
Далее даны определения терминов, используемых в этой статье.
Потоком или логическим процессором называется одна логическая вычислительная подсистема с точки зрения SQL Server, операционной системы, приложения или драйвера.
Ядром называется единица процессора. Оно может состоять из одного логического процессора или нескольких.
Физический процессор может содержать одно или несколько ядер. Физический процессор также называется процессорным пакетом или сокетом.
Системы с несколькими физическими процессорами, а также системы, где физические процессоры имеют несколько ядер или поддерживают технологию Hyper-Threading, позволяют операционной системе одновременно выполнять несколько задач. Каждый поток выполнения представляется как логический процессор. Например, если на компьютере установлено два четырехъядерных процессора с включенной технологией Hyper-Threading (два потока на ядро), то получится 16 логических процессоров: 2 процессора x 4 ядра в каждом процессоре x 2 потока в каждом ядре. Стоит отметить, что:
Вычислительная мощность логического процессора на один поток ядра с технологией Hyper-Threading меньше, чем мощность логического процессора с таким же ядром при отключенной технологии Hyper-Threading.
Емкость вычислительных ресурсов двух логических процессоров в ядре с технологией Hyper-Threading больше, чем у того же ядра без этой технологии.
Каждый выпуск SQL Server обладает двумя ограничениями вычислительной мощности.
Максимальное число сокетов (физических процессоров или процессорных пакетов)
Максимальное число ядер, обнаруженных операционной системой
Эти ограничения относятся к отдельному экземпляру SQL Server. Они представляют максимальную вычислительную мощность, которую будет использовать отдельный экземпляр. Ограничения не распространяются на сервер, где может развертываться экземпляр. На практике развертывание нескольких экземпляров SQL Server на одном физическом сервере является эффективным способом использовать вычислительную емкость физического сервера, на котором процессоров или ядер больше, чем допускают ограничения.
В следующей таблице приводятся ограничения вычислительной мощности для одного экземпляра каждого выпуска SQL Server.
SQL Server edition Максимальная емкость вычислительных ресурсов для одного экземпляра (SQL ServerКомпонент Database Engine) Максимальная емкость вычислительных ресурсов для одного экземпляра (AS, RS) Enterprise Edition: лицензирование на ядро* Максимальное значение, поддерживаемое операционной системой Максимальное значение, поддерживаемое операционной системой Разработчик Максимальное значение, поддерживаемое операционной системой Максимальное значение, поддерживаемое операционной системой Standard Ограничение: меньшее из 4 процессоров и 24 ядер Ограничение: меньшее из 4 процессоров и 24 ядер Express Ограничение: меньшее из 1 процессора и 4 ядер Ограничение: меньшее из 1 процессора и 4 ядер *Выпуск Enterprise Edition с лицензированием по схеме "сервер + клиентские лицензии (CAL)" поддерживает не более 20 ядер на экземпляр SQL Server. (Такая модель лицензирования недоступна для новых соглашений.) В модели лицензирования по числу ядер никаких ограничений нет.
В виртуальном окружении вычислительная емкость ограничена количеством логических процессоров, а не ядер. Причина в том, что гостевые приложения не знают архитектуру процессора.
Например, сервер с четырьмя сокетами, в каждом из которых размещен четырехъядерный процессор с включенной технологией Hyper-Threading, обеспечивающей работу двух потоков на каждое ядро, в сумме содержит 32 логических процессора. Но, если технология Hyper-Threading отключена, логических процессоров на том же сервере будет только 16. Эти логические процессоры можно сопоставить с виртуальными машинами на сервере. Вычислительная нагрузка виртуальных машин на данный логический процессор сопоставляется одному потоку выполнения в физическом процессоре на сервере.
Если вам важна производительность каждого отдельного виртуального процессора, возможно, технологию Hyper-Threading имеет смысл отключить. Вы можете включить или отключить для процессора технологию Hyper-Threading в параметрах BIOS. Но чаще всего влияние на производительность всех выполняемых на сервере рабочих нагрузок оказывают операции, областью действия которых является весь сервер. В таких случаях имеет смысл отделить рабочие нагрузки, запускаемые в виртуальных средах, от нагрузок, которые лучше работают в операционных системах на базе физических сред, где технология Hyper-Threading дает им существенный прирост производительности.
Примите участие в разработке документации по SQLЗнаете ли вы, что содержимое SQL можно изменить самостоятельно? Это не только улучшит нашу документацию, но и даст вам статус участника в создании этой страницы.
Измените объем памяти (в мегабайтах) для процесса SQL Server, используемого экземпляром SQL Server. Существует два параметра использовании серверной памяти: Мин. память сервера и Макс. память сервера. Эти параметры меняют объем памяти, выделяемой диспетчером SQL Server Memory Manager процессам SQL Server.
Параметры по умолчанию и минимальное допустимое значение для этих параметров
Параметр По умолчанию Минимально допустимое min server memory 0 0 max server memory 2 147 483 647 мегабайт (МБ) 128 МБ По умолчанию SQL Server может динамически изменять требования к памяти в зависимости от доступных системных ресурсов. Дополнительные сведения см. в разделе Управление динамической памятью.
Если вы зададите слишком высокое значение макс. памяти сервера одному экземпляру SQL Server, возможно, придется конкурировать с другими экземплярами SQL Server, размещенными на том же узле, за память. Если же задать слишком низкое значение, может возникнуть значительный дефицит памяти или проблемы с производительностью. Если присвоить параметру Макс. памяти сервера минимальное значение, SQL Server может не запуститься. Если не удается запустить SQL Server после изменения этого параметра, запустите его с использованием параметра запуска -f и верните параметр max server memory к предыдущему значению. Дополнительные сведения см. в разделе Параметры запуска службы Database Engine.
SQL Server может использовать память динамически; но можно установить параметры памяти вручную и ограничить объем памяти, доступный для SQL Server. Перед настройкой объема памяти для SQL Server определите подходящее значение путем вычитания из общего объема физической памяти того объема, который требуется операционной системе, выделениям памяти, не управляемым параметром max_server_memory, и другим экземплярам SQL Server (и для других нужд, если компьютер не выделен полностью под сервер SQL Server). Разница — максимальный объем памяти, который можно выделить текущему экземпляру SQL Server.
Настройка именования экземпляра SQL Server
Вы можете оставить параметр Default Instance, в таком случае имя вашего экземпляра будет MSSQLSERVER. При выборе Named Instance вы сами указываете имя экземпляра SQL Server. В моём случае я назову экземпляр DEV. Instance ID рекомендуется ставить такой же, как и имя экземпляра, во избежание путаницы.
В Installed instances отображаются установленные на сервере экземпляры MSSQL, у меня уже есть один.
Особенности лицензирования SQL Server
MS SQL Server лицензируется по 2 моделям:
- PER CORE — лицензирует MSSQL по ядрам сервера
- SERVER + CAL — лицензия целиком на сервер и на каждого пользователя, который будет работать с сервером
Enterprise редакция может быть лицензирована только по типу PER CORE
Также в MSSQL Server 2019 появилась новая возможность для лицензирования контейнеров, виртуальных машин и Big Data Clusters.
Задать параметры вручную
Можно установить для параметров сервера Мин. памяти сервера и Макс. памяти сервера значения, покрывающие весь доступный объем памяти. Этот метод полезен для системных администраторов или администраторов баз данных, когда требуется настроить экземпляр SQL Server так, чтобы его параметры не противоречили требованиям к памяти других приложений или других экземпляров SQL Server, запущенных на этом узле.
Параметры min server memory и max server memory являются расширенными. При использовании системной хранимой процедуры sp_configure для изменения этих настроек изменить их можно, только если параметр show advanced options установлен в значение 1. Эти параметры вступают в силу сразу же без перезагрузки сервера.
Параметр min_server_memory используется для гарантированного предоставления минимального объема памяти, доступного диспетчеру памяти SQL Server для экземпляра SQL Server. SQL Server не выделяет немедленно объем памяти, указанный в параметре min server memory , после запуска. Тем не менее, когда это значение достигается с ростом рабочей нагрузки, экземпляр SQL Server не может освободить память, выделенную буферному пулу, если не уменьшить значение параметра min server memory . Например, если на одном узле может находиться сразу несколько экземпляров SQL Server, задайте параметр min_server_memory вместо max_server_memory, чтобы зарезервировать память для экземпляра. Кроме того, необходимо задать значение min_server_memory в виртуализированной среде, чтобы гарантировать, что при дефиците памяти на базовом узле не будет попыток выделить больше памяти из буферного пула в гостевой виртуальной машине SQL Server, чем это необходимо для приемлемой производительности.
SQL Server не гарантирует, что объем памяти, заданный параметром min server memory, будет выделен. Если нагрузка на сервер никогда не требует выделения всего объема памяти, заданного параметром min server memory, сервер SQL Server будет использовать меньше памяти.
Параметр max_server_memory гарантирует, что в ОС не возникнет дефицит памяти. Чтобы задать конфигурацию "Макс. памяти сервера", отследите общее использование памяти процессом SQL Server и определите требования к памяти. Для исходной настройки или при отсутствии возможности получения сведений об использовании памяти процессом SQL Server с течением времени используйте следующий обобщенный подход к настройке значения max server memory для одного экземпляра.
- Из значения общего объема памяти ОС вычтите эквивалент потенциального выделения памяти потока SQL Server, которое превышает значение max server memory (вычисляется так: размер стека 1 * вычисляемое максимальное число рабочих потоков 2 ).
- Затем вычтите 25 % для других выделений памяти вне элемента управления max server memory, например для буферов резервного копирования, библиотек DLL расширенных хранимых процедур, объектов, созданных с помощью процедур автоматизации (вызовов sp_OA), и выделений от поставщиков связанных серверов. Это обобщенное значение, которое может отличаться.
- Остаток и даст значение параметра max_server_memory в случае установки одного экземпляра.
1 Сведения о размерах стеков потока для различных архитектур см. в разделе Руководство по архитектуре управления памятью.
2 Сведения о вычислении рабочих потоков по умолчанию для заданного числа сходных ЦП на текущем узле см. в разделе Настройка параметра конфигурации сервера "Максимальное число рабочих потоков".
Несколько экземпляров SQL Server
При выполнении нескольких экземпляров компонента Компонент Database Engineсуществует три подхода к управлению памятью.
Используйте параметр Макс. памяти сервера, чтобы управлять использованием памяти, как указано выше. Установите максимальные значения для каждого экземпляра, учитывая, что их сумма не должна превышать общий объем физической памяти, установленной на компьютере. Рекомендуется выделять каждому экземпляру объем памяти, пропорциональный его ожидаемой рабочей нагрузке или размеру базы данных. Данный подход имеет то преимущество, что свободная память доступна новым процессам или экземплярам сразу же после их запуска. Недостаток состоит в том, что, когда выполняются не все экземпляры, ни один из выполняющихся экземпляров не сможет использовать память, оставшуюся свободной.
Используйте параметр Мин. памяти сервера, чтобы управлять использованием памяти, как указано выше. Установите минимальные значения для каждого экземпляра так, чтобы их сумма была на 1-2 ГБ меньше общего объема физической памяти, установленной на компьютере. Рекомендуется выделять каждому экземпляру минимальный объем памяти, пропорциональный его ожидаемой рабочей нагрузке. Данный подход имеет то преимущество, что выполняющиеся экземпляры могут использовать оставшуюся свободную память в случае, когда выполняются не все экземпляры. Данный подход также полезен, когда на компьютере выполняется другой процесс, интенсивно потребляющий память, так как при этом обеспечивается удовлетворение как минимум заданных потребностей сервера SQL Server в памяти. Недостаток состоит в том, что при запуске нового экземпляра (или любого другого процесса) уже выполняющимся экземплярам требуется некоторое время для освобождения памяти, особенно если для этого им необходимо записать измененные страницы обратно в базу данных.
Отсутствие действий (не рекомендуется). Первый экземпляр, столкнувшийся с рабочей нагрузкой, попытается захватить всю память. Простаивающие экземпляры или экземпляры, запущенные позже других, могут в конечном итоге быть вынуждены работать лишь с минимальным доступным объемом памяти. SQL Server не пытается равномерно распределять возможности использования памяти между экземплярами. Тем не менее все экземпляры будут реагировать на сигналы уведомлений памяти Windows, корректируя объемы используемой ими памяти. Операционная система Windows не балансирует память между приложениями с помощью уведомлений памяти API-интерфейса. Эти уведомления лишь обеспечивают глобальную обратную связь относительно доступности памяти в системе.
Эти настройки можно изменять без перезапуска экземпляров, поэтому можно легко экспериментировать с целью нахождения наиболее подходящих настроек для данной модели использования.
Редакции MS SQL Server 2019
Всего есть 6 выпусков (редакций) MSSQL 2019:
- Express является бесплатной для использования редакцией. Функционал довольно ограничен, самое ощутимое ограничение экспресс версии — максимальный размер базы 10 ГБ. Эта редакция подойдет для небольших проектов, например, студенческих работ или для обучения SQL/T-SQL.
- Standard это полноценная платная редакция, но многих функций всё еще нет. Максимальный объём оперативной памяти, который сможет использовать SQL Server – 128 ГБ, также отсутствуют группы доступности AlwaysOn и другие компоненты. Standard предназначен для приложений в небольших организациях.
- Enterprise включает в себя все возможные функции и компоненты, никаких ограничений нет. Корпоративная редакция обычно используется крупными корпорациями или компаниями, которым необходим функционал этой версии.
- Developer редакция так же как и Enterprise не имеет никаких ограничений и её можно использовать бесплатно, но она может использоваться только для разработки и тестирования приложений.
- Web редакция почти ничем не отличается от standard, кроме как более сильными ограничениями в функционале и соответственно более низкой стоимости лицензирования;
- Evaluation — ознакомительная редакция SQL Server, которая предоставляет полный функционал Enterprise и работает в течении 180 дней (может быть обновлена до полноценной версии).
Настройка Database Engine в SQL Server
На шаге Database Engine Configuration доступны 6 вкладок, начнем по порядку:
В Server Configuration вы должны выбрать Authentication Mode и указать аккаунт для администратора SQL Server’a.
У вас на выбор есть 2 режима: Windows authentication mode и Mixed mode.
- С Windows аутентификацией авторизоваться смогут только пользователи вашего домена или компьютера под управлением Windows.
- В Mixed mode помимо windows авторизации станет доступна авторизация по учетным данным самого SQL Server’a.
Майкрософт рекомендует использовать Windows Authentication как самый безопасный, но на практике скорее всего вам нужно будет логиниться на сервер из других приложений. Например, написанных на java, и в таком случае без аутентификации SQL сервера не обойтись.
Если вы уверены, что ваши пользователи будут логиниться только с Windows компьютеров и приложений, поддерживающих Windows аутентификацию, то выбирайте Windows authentication mode.
В моём случае я ставлю Mixed mode. В этом режиме вам нужно будет прописать пароль от пользователя sa и выбрать Windows аккаунт, который будет обладать административными правами.
На вкладке Data Directories вы должны выбрать каталог, в которой SQL Server будет хранить базу данных и транзакционные логи.
Для данных лучше всего выделить отдельный RAID массив. Дисковая подсистема критически важна для производительности SQL Server’а, поэтому необходимо выбрать самый хороший из доступных вам вариант хранения данных, будь то NAS или локальный RAID из быстрых дисков.
Хорошей практикой считается разнесение всех директорий (системных баз данных, пользовательских баз данных, логов пользовательских баз данных, резервных копий) на разные хранилища. Таким образом вы добьетесь максимальной производительности от SQL Server’а на уровне работы с хранением данных.
В моём случае я укажу отдельный диск с RAID 1 для всех директорий.
На вкладке TempDB настраиваются параметры для базы tempdb. Её правильная конфигурация важна для производительности сервера, так как эта база участвует практически во всех операциях с данными.
Вкладка MaxDOP.
Сервер с одним узлом NUMA Не более 8 логических процессоров Значение параметра MAXDOP не должно превышать количество логических процессоров Сервер с одним узлом NUMA Больше 8 логических процессоров Значение параметра MAXDOP должно быть равно 8 Сервер с несколькими узлами NUMA Не более 16 логических процессоров на узел NUMA Значение параметра MAXDOP не должно превышать количество логических процессоров на каждый узел NUMA Сервер с несколькими узлами NUMA Больше 16 логических процессоров на каждый узел NUMA Значение MAXDOP должно быть равно половине количества логических процессоров на узел NUMA со значением MAX, равным 16 В моём случае я поставлю 0. Это даст наибольшую производительность для выполнения планов параллельных запросов, но это может вызвать задержки, так как другие запросы должны будут дождаться завершения выполнения текущего запроса, потому что все ядра процессора будут заняты выполнением текущего запроса.
Для “боевого” сервера я всё же рекомендую следовать правилам из таблицы, а также ознакомиться с документацией по ссылке выше.
Вкладка Memory – нужно указать минимальный и максимальный объем оперативной памяти, который будет использовать SQL Server. Так как спрогнозировать нужный объём для сервера довольно сложно, рекомендуется выделить SQL Server’у 80-85% от всего объёма оперативной памяти сервера. Для того чтобы узнать реальный объём используемой оперативной памяти, нужно круглосуточно мониторить потребление оперативной памяти через специальные DMV (Dynamic Management View) и отслеживать пики потребления RAM. Только с наличием этой информации можно спрогнозировать реальный объем потребления оперативки.
Я оставлю Default значения (min 0 и max 2147483647 MB).
Вкладка FILESTREAM – включение технологии FILESTREAM. Она позволяет хранить бинарные файлы на файловой системе и обеспечивает доступ к ним через SQL. Если вы не уверены, что хотите работать с бинарными данными на уровне SQL, то тогда оставьте FILESTREAM выключенным.
Шаг Feature Configuration Rules пройдет автоматически. Ознакомьтесь со сводкой в Ready to Install и жмите Install.
На этом базовая установка SQL Server 2019 Enterprise завершена. В следующей статье мы посмотрим на основные способы анализа производительности и проблем в SQL Server.
Примечание. На более старых версиях ( SQL Server 2014, 2016) некоторых вкладок и параметров может не быть.
См. также раздел
Начало установки SQL Server
В этой статье мы будем устанавливать MS SQL Server 2019 Enterprise Edition на Windows Server 2019.
Примечание. В SQL Server 2019 появилась полноценная поддержка Linux, а соответственно Docker и Kubernetes.
- Скачайте и распакуйте установочный образ SQL Server 2019. Запустите setup.exe;
- Так как в этой статье мы будем устанавливать обычный изолированный экземпляр, во вкладке Installation выберите “New SQL Server stand-alone installation”.
В инсталляторе SQL Server можно выполнить много других действий: обновить старый экземпляр, починить сломанный и некоторые другие вещи.
Пример A. Задание параметра max server memory равным 4 ГБ.
В следующем примере параметр max server memory устанавливается равным 4 ГБ. Обратите внимание, что, несмотря на то что sp_configure указывает имя параметра как max server memory (MB) , в примере демонстрируется пропуск (MB) .
При этом будет выведена инструкция, похожая на следующую:
Параметр конфигурации "max server memory" (в МБ) изменился с 2147483647 на 4096. Выполните инструкцию RECONFIGURE для установки.
Настройка параметров служб SQL Server, кодировка
Во вкладке Service Accounts укажите аккаунты из-под которых будут работать службы SQL Server на хосте. Хорошей практикой считается использование MSA (Managed Service Accounts) и gMSA (Group Managed Service Accounts) технологий, как самых надежных в плане безопасности. Я буду использовать обычный доменный аккаунт.
Выставьте у SQL Server Agent поле Startup Type в Automatic, иначе агент придется запускать вручную.
Также начиная с SQL Server 2016 появилась возможность выставлять параметр IFI (Instant File Initialization) при установке сервера. В инсталляторе он называется “Grant Perform Volume Maintenance Task privilege to SQL Server Database Engine”. Его включение означает, что старые данные не будут перезаписываться нулями при:
- Создании базы данных;
- Добавлении данных в файлы данных или лог файлы;
- Увеличении размера существующих файлов (включая операции авто увеличения);
- Восстановлении базы данных/файловой группы.
Это ускоряет процесс инициализации файлов, но уменьшает безопасность, потом что старые данные не затираются нулями, поэтому старая информация, которая содержалась в этих файлах, может быть частична доступна.
Рекомендую включать этот параметр, если опасность утечки данных несущественна.
На следующем шаге вы должны выбрать Collation.
Грубо говоря, Collation это настройка кодировки SQL Server. Этот параметр устанавливает кодировку страниц, правила сортировки, кодировку для char/varchar и другие языковые настройки.
При установке сервера вы выбираете Collation для всего SQL Server. После установки можно будет поменять этот параметр, но сделать это будет непросто, поэтому нужно сразу выбрать подходящий для ваших задач Collation.
Для СНГ рекомендуется выбирать Cyrillic_General_CI_AS. Если данные будут только на английском, можно выбирать SQL_Latin1_General_CP1_CI_AS.
Если вы планируете использовать SQL Server в боевых условиях, ознакомьтесь с документацией по выбору Collation, так как это важный параметр, хоть он и может быть задан для конкретной базы данных.
Примеры
Пример В. Определение значения параметра "max server memory" (в МБ).
Следующий запрос возвращает сведения о настроенном сейчас значении и значении, которое используется в SQL Server. Этот запрос возвратит результаты независимо от того, имеет ли параметр "show advanced options" значение true.
This article discusses compute capacity limits for editions of SQL Server and how they differ in physical and virtualized environments with hyperthreaded processors.
This table describes the notations in the preceding diagram:
Value Description 0..1 Zero or one 1 Exactly one 1..* One or more 0..* Zero or more 1..2 One or two To elaborate further:
- A virtual machine (VM) has one or more virtual processors.
- One or more virtual processors are allocated to exactly one virtual machine.
- Zero or one virtual processor is mapped to zero or more logical processors. When the mapping of virtual processors to logical processors is:
- One to zero, it represents an unbound logical processor not used by the guest operating systems.
- One to many, it represents an overcommit.
- Zero to many, it represents the absence of virtual machine on the host system. So VMs don't use any logical processors.
- One to zero, it represents an empty socket. No chip is installed.
- One to one, it represents a single-core chip installed in the socket. This mapping is rare these days.
- One to many, it represents a multi-core chip installed in the socket. Typical values are 2, 4, and 8.
- One to one, hyperthreading is off.
- One to two, hyperthreading is on.
The following definitions apply to the terms used in this article:
A thread or logical processor is one logical computing engine from the perspective of SQL Server, the operating system, an application, or a driver.
A core is a processor unit. It can consist of one or more logical processors.
A physical processor can consist of one or more cores. A physical processor is the same as a processor package or a socket.
Systems with more than one physical processor or systems with physical processors that have multiple cores and/or hyperthreads enable the operating system to execute multiple tasks simultaneously. Each thread of execution appears as a logical processor. For example, if your computer has two quad-core processors with hyperthreading enabled and two threads per core, you have 16 logical processors: 2 processors x 4 cores per processor x 2 threads per core. It's worth noting that:
The compute capacity of a logical processor from a single thread of a hyperthreaded core is less than the compute capacity of a logical processor from that same core with hyperthreading disabled.
The compute capacity of the two logical processors in the hyperthreaded core is greater than the compute capacity of the same core with hyperthreading disabled.
Each edition of SQL Server has two compute capacity limits:
A maximum number of sockets (or physical processors or processor packages)
A maximum number of cores as reported by the operating system
These limits apply to a single instance of SQL Server. They represent the maximum compute capacity that a single instance will use. They do not constrain the server where the instance may be deployed. In fact, deploying multiple instances of SQL Server on the same physical server is an efficient way to use the compute capacity of a physical server with more sockets and/or cores than the capacity limits allow.
The following table specifies the compute capacity limits for a single instance of each edition of SQL Server:
SQL Server edition Maximum compute capacity for a single instance (SQL ServerDatabase Engine) Maximum compute capacity for a single instance (AS, RS) Enterprise Edition: Core-based Licensing* Operating system maximum Operating system maximum Developer Operating system maximum Operating system maximum Standard Limited to lesser of 4 sockets or 24 cores Limited to lesser of 4 sockets or 24 cores Express Limited to lesser of 1 socket or 4 cores Limited to lesser of 1 socket or 4 cores *Enterprise Edition with Server + Client Access License (CAL) licensing is limited to 20 cores per SQL Server instance. (This licensing is not available for new agreements.) There are no limits under the Core-based Server Licensing model.
In a virtualized environment, the compute capacity limit is based on the number of logical processors, not cores. The reason is that the processor architecture is not visible to the guest applications.
For example, a server that has four sockets populated with quad-core processors and the ability to enable two hyperthreads per core contains 32 logical processors with hyperthreading enabled. But it contains only 16 logical processors with hyperthreading disabled. These logical processors can be mapped to virtual machines on the server. The virtual machines' compute load on that logical processor is mapped to a thread of execution on the physical processor in the host server.
You might want to disable hyperthreading when the performance for each virtual processor is important. You can enable or disable hyperthreading by using a BIOS setting for the processor during the BIOS setup. But it's typically a server-scoped operation that will affect all workloads running on the server. This might suggest separating workloads that will run in virtualized environments from workloads that would benefit from the hyperthreading performance boost in a physical operating system environment.
Компоненты SQL Server 2019: для чего нужны, какие нужно установить
На этом этапе вам предлагают установить различные компоненты SQL Server. Пройдемся по ним подробнее, посмотрим какие нужно ставить в различных ситуациях:
- Database Engine Services – это основной движок SQL Server. Обязателен к установке.
- SQL Server Replication – службы репликации. Компонент довольно часто используются, поэтому если вы не уверены нужны ли они вам, то лучше отмечайте для установки.
- Machine Learning Services and Language Extensions – службы для выполнения R/Python/Java кода в контексте SQL Server. Необходимо, если вы собираетесь заниматься Machine Learning.
- Full-Text and Semantic Extractions for Search – компонент необходим, если вам нужна полнотекстовая технология поиска или семантический поиск в документах (например docx). В случае семантического поиска по документам, вам также понадобиться FILESTREAM, о нём ниже.
- Data Quality Services – службы для коррекции и валидации данных. Если вы не уверены нужен ли вам DQS, то лучше не устанавливайте его.
- PolyBase Query Service For External Data – технология для доступа к внешним данным, например на другом SQL Server или в Oracle Database. Java connector for HDFS data sources относиться к PolyBase технологии и нужен в случае если вы хотите работать с HDFS технологией.
- Analysis Services – также известен как SSAS. Технология для бизнес-отчетов (BI) и работы с OLAP. Используется в крупных компаниях для отчетности.
Дальше переходим к списку Shared Features (функций, распространяющихся на весь сервер, а не на конкретный экземпляр).
- Machine Learning Server (Standalone) – то же самое что и Machine Learning Services and Language Extensions, но с возможностью установки без самого движка SQL Server.
- Data Quality Client – то же самое что и DQS, только standalone.
- Client Tools Connectivity – библиотеки ODBC, OLE DB и некоторые другие. Рекомендем ставить обязательно.
- Integration Services – службы интеграции данных, известны также как SSIS. Технология для ETL (Extract, Transform, Load) данных. SSIS нужны, если вы хотите автоматизировать импорт данных и менять их в процессе импорта. Scale Out Master/Worker нужны для масштабирования работы SSIS. Если вы не уверены нужны ли они вам, то не отмечайте их.
- Client Tools Backwards Compatibility – устаревшие DMV и системные процедуры. Рекомендую ставить.
- Client Tools SDK – пакет с ресурсами для разработчиков. Можно не ставить, если не уверены, нужен ли он вам.
- Distributed Replay Controller/Client – повторяют и улучшают функционал SQL Server Profiler. Службы Distributed Replay нужны для моделирования нагрузки и для различного рода тестирования производительности.
- SQL Client Connectivity SDK – ODBC/OLE DB SDK для разработчиков.
- Master Data Services – компонент из Microsoft Power BI. Нужен для анализа, валидации, интеграции и коррекции данных.
Некоторые из этих компонентов (например, Java connector for HDFS data sources) могут отсутствовать в более старых версиях SQL Server.
Чуть ниже, на этом же шаге, вы можете указать директорию для файлов SQL Server’a. Если у вас нет весомых причин менять её, то оставьте стандартную (C:\Program Files\Microsoft SQL Server\).
После того как вы выбрали нужные вам компоненты MSSQL, инсталлятор проверяет совместимость компонентов с вашей системой, и, если проблем нет, этот шаг пройдет автоматически.
Тип инсталляции SQL Server
На этом шаге вы можете выбрать установку нового экземпляра или добавление функционала в уже установленный экземпляр. В нашем случае выбираем “Perform a new installation”.
Теперь нужно ввести ключ продукта. Если нет ключа, выбирайте Free edition (например, Developer), но имейте в виду, что с редакцией Developer вы имеете право только разрабатывать и тестировать ПО, но не использовать сервер в продуктивной среде.
На шаге License Terms принимаем лицензионное соглашение.
Contribute to SQL documentationDid you know that you can edit SQL content yourself? If you do so, not only do you help improve our documentation, but you also get credited as a contributor to the page.
Используйте данную страницу для просмотра или изменения параметров памяти сервера. Если параметр Минимальный размер памяти сервера равен 0, а параметр Максимальный размер памяти сервера равен 2 147 483 647 МБ, SQL Server всегда может использовать оптимальный объем памяти, в зависимости от того, сколько памяти в текущий момент использует операционная система и другие приложения. При изменении загрузки компьютера и SQL Server меняется объем выделенной памяти. Ограничить объем динамически выделяемой памяти можно с помощью задания минимального и максимального значений.
Используйте SQL Server Management Studio.
Используйте два параметра памяти сервера, Мин. памяти сервера и Макс. памяти сервера, для настройки объема памяти (в мегабайтах), находящейся в управлении диспетчера памяти SQL Server для экземпляра SQL Server. По умолчанию SQL Server может динамически изменять требования к памяти в зависимости от доступных системных ресурсов.
Настройка фиксированного объема памяти (не рекомендуется)
Установка фиксированного размера памяти
В обозревателе объектов щелкните правой кнопкой мыши сервер и выберите пункт Свойства.
Щелкните узел Память .
В пункте Параметры памяти сервера введите нужные значения в поля Минимальный размер памяти сервера и Максимальный размер памяти сервера.
Оставьте параметры по умолчанию, чтобы SQL Server изменял требования к памяти динамически, исходя из доступности системных ресурсов. Рекомендуется задать для параметра Макс. памяти сервера значение, указанное выше.
На следующем снимке экрана показаны все три шага:
See also
Параметры обновлений SQL Server при установке
На этом шаге вы можете включить поиск обновлений через Windows Update. Включать эту опцию или нет, решать вам. Всё зависит от вашей планировки обновлений и от требований к отказоустойчивости сервера. Если у вас нет четкого плана обновлений ваших серверов, лучше оставьте этот параметр включенным.
Error 0x80244022: Exception from HRESULT: 0x80244022
Шаг Install Setup Files произойдет автоматически. Он подготовит файлы для установки.
Install Rules так же пройдет автоматически, если установщик не обнаружит проблем, которые необходимо решить перед установкой MSSQL (например, перезагрузить компьютер или несовместимость вашей версии Windows с версией SQL Server).
Блокировка страниц в памяти (LPIM)
Эта политика Windows определяет, какие учетные записи могут получать доступ к API для сохранения данных в физической памяти, чтобы система не отправляла страницы данных в виртуальную память на диске. Блокировка страниц в памяти может обеспечивать отклик сервера, когда содержимое памяти заносится в файл подкачки. Для параметра Блокировка страниц в памяти указывается значение "Включено" в экземплярах выпуска SQL Server Standard Edition и выше, если учетной записи с привилегией на выполнение sqlservr.exe предоставлено право пользователя Windows Блокировка страниц в памяти (LPIM).
Чтобы отключить параметр Блокировка страниц в памяти для SQL Server, удалите право пользователя Блокировка страниц в памяти у учетной записи с привилегиями для запуска sqlservr.exe (стартовой учетной записи SQL Server).
Использование LPIM не влияет на SQL Server динамическое управление памятью, что позволяет расширить или сузить ее по запросу других клерков памяти. При использовании пользовательского права Блокировка страниц в памяти рекомендуется задать верхний предел для параметра Макс. памяти сервера, как указано выше.
Использование LPIM с неправильно настроенным параметром максимального объема памяти сервера, в котором не учтены другие потребители памяти в системе, может привести к нестабильной работе. Это зависит от объема памяти, требуемого для других процессов или требований к памяти SQL Server вне области max server memory. См. дополнительные сведения о max server memory.
Начиная с SQL Server 2012 (11.x), флаг трассировки 845 не требуется для использования заблокированных страниц в выпуске Standard Edition.
Включение блокировки страниц в памяти
Включение параметра "Блокировка страниц в памяти"
В меню Пуск выберите команду Выполнить. В окне Открыть введите gpedit.msc.
Откроется диалоговое окно Групповая политика .
В консоли Групповая политика разверните узел Конфигурация компьютера, затем узел Конфигурация Windows.
Разверните узлы Настройки безопасности и Локальные политики.
Выберите папку Назначение прав пользователя .
Политики будут показаны на панели подробностей.
На этой панели дважды щелкните параметр Блокировка страниц в памяти.
В диалоговом окне Параметр политики локальной защиты добавьте учетную запись с правами запуска sqlservr.exe (стартовая учетная запись SQL Server).
Get help
Получение справкиПример Б. Определение текущего распределения памяти
Следующий запрос возвращает информацию о текущем распределении памяти.
Параметры
Минимальный размер памяти сервера (в МБ)
Указывает, что при запуске SQL Server выделяется, по крайней мере, минимальный объем выделенной памяти, и этот объем не уменьшается. Задайте значение в зависимости от объема и активности экземпляра SQL Server. Задавайте для этого параметра оправданное значение, чтобы операционная система не забирала значительный объем памяти у SQL Server , и это не сказывалось на производительности Windows.Максимальный размер памяти сервера (в МБ)
Максимальный объем памяти, который может использовать SQL Server во время работы. Этому параметру настройки может быть присвоено конкретное значение, если известно, что одновременно с SQL Server будет запущено несколько других приложений; также необходимо гарантировать достаточное количество памяти для этих приложений. Если другие приложения, например веб-серверы или серверы электронной почты, запрашивают память только при необходимости, то не задавайте этот параметр, так как SQL Server освобождает для них память по мере необходимости. Однако некоторые приложения часто используют весь объем памяти, доступный в момент запуска, и не запрашивают ее дополнительно. Если приложение запущено на том же компьютере, на котором запущен SQL Server, задайте такое значение, которое обеспечивает необходимый для приложения объем памяти, не занимаемый SQL Server. Минимальный размер памяти, который можно указать в параметре max server memory , составляет 128 МБ. (64 мегабайт (МБ) для старых 32-разрядных систем.)Память для создания индекса (в КБ; 0 для использования динамической памяти)
Устанавливает объем памяти (в КБ), который используется во время операции сортировки при создании индекса. Значение по умолчанию, равное 0, соответствует динамическому распределению, которое можно использовать в большинстве случаев без дальнейшей настройки. Кроме того, можно задать значение в диапазоне от 704 до 2 147 483 647.Значения от 1 до 703 недопустимы. Если введено значение в этом диапазоне, введенное в поле значение заменяется на 704.
Минимальный объем памяти для запроса (в КБ)
Устанавливает объем памяти (в КБ), выделяемый для выполнения запроса. Пользователь может задать значение в диапазоне от 512 до 2 147 483 647 КБ. Значение по умолчанию — 1024 КБ.Настроенные значения
Отображает настроенные значения для параметров на этой панели. В случае изменения этих значений выберите пункт Текущие значения и посмотрите, вступили ли в силу внесенные изменения. В противном случае первым должен быть перезапущен экземпляр SQL Server .Текущие значения
Показывает текущие значения для параметров на этой панели. Эти значения доступны только для чтения.18.08.2021
insci
SQL Server
комментариев 7
В этой статье мы пошагово рассмотрим установку Microsoft SQL Server 2019 с описанием всех опций, компонентов, актуальных рекомендаций и best practice.
MS SQL Server это лидирующая РСУБД (Реляционная система управления базами данных) а также главный конкурент Oracle Database в корпоративном сегменте. В СНГ MSSQL чаще всего применяется для собственных разработок прикладного ПО и для 1С.
Выделение максимального объема памяти
Для всех выпусков SQL Server память можно выделять вплоть до предела виртуального адресного пространства процесса. Дополнительные сведения см. в разделе Предельный объем памяти для выпусков Windows и Windows Server.
Читайте также: