Sql express 2019 ограничения памяти

Обновлено: 06.07.2024

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

Профессиональная редакция программы PrintStore Pro совместима со следующими версиями Microsoft SQL Server Express: 2008 R2, 2012, 2014, 2016, 2017, 2019. Дополнительная информация о них представлена в следующей таблице.

Таблица сравнения и загрузки версий Microsoft SQL Server Express

Примечания:
1 — ссылки на страницы описаний выпусков SQL Server на официальном сайте Microsoft;
2 — ссылки на инсталляторы и страницы загрузок соответствующих версий SQL Server Express на официальном сайте Microsoft;
3 — максимальный размер используемой базы данных;
4 — максимальный объем памяти для буферного пула на экземпляр;
5 — максимальная вычислительная мощность, используемая одним экземпляром.


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

Инсталляторы SQL Server Express версий 2008 R2, 2012, 2014 с инструментами Management Studio, как правило, имеют называние «Microsoft SQL Server Express with Tools», а имя загрузочного файла начинается с «SQLEXPRWT». В состав инсталляторов SQL Server Express 2016 и последующих версий утилита Management Studio не входит, но ее можно загрузить отдельно.

Измените объем памяти (в мегабайтах) для процесса 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 так, чтобы его параметры не противоречили требованиям к памяти других приложений или других экземпляров 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, таких как буферы резервного копирования и др. Это обобщенное значение, которое может отличаться.
  • Остаток и даст значение параметра max_server_memory в случае установки одного экземпляра.

1 Сведения о размерах стеков потока для различных архитектур см. в разделе Руководство по архитектуре управления памятью.

2 Сведения о вычислении рабочих потоков по умолчанию для заданного числа сходных ЦП на текущем узле см. в разделе Настройка параметра конфигурации сервера "Максимальное число рабочих потоков".

Используйте SQL Server Management Studio.

Используйте два параметра памяти сервера, Мин. памяти сервера и Макс. памяти сервера, для настройки объема памяти (в мегабайтах), находящейся в управлении диспетчера памяти SQL Server для экземпляра SQL Server. По умолчанию SQL Server может динамически изменять требования к памяти в зависимости от доступных системных ресурсов.

Настройка фиксированного объема памяти (не рекомендуется)

Установка фиксированного размера памяти

В обозревателе объектов щелкните правой кнопкой мыши сервер и выберите пункт Свойства.

Щелкните узел Память .

В пункте Параметры памяти сервера введите нужные значения в поля Минимальный размер памяти сервера и Максимальный размер памяти сервера.

Оставьте параметры по умолчанию, чтобы SQL Server изменял требования к памяти динамически, исходя из доступности системных ресурсов. Рекомендуется задать для параметра Макс. памяти сервера значение, указанное выше.

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

Настройка памяти в SSMS

Блокировка страниц в памяти (LPIM)

Эта политика Windows определяет, какие учетные записи могут использовать процесс для сохранения данных в физической памяти, чтобы система не отправляла страницы данных в виртуальную память на диске. Блокировка страниц в памяти может обеспечивать отклик сервера, когда содержимое памяти заносится в файл подкачки. Для параметра Блокировка страниц в памяти указывается значение "Включено" в экземплярах выпуска SQL Server Standard Edition и выше, если учетной записи с привилегией на выполнение sqlservr.exe предоставлено право пользователя Windows Блокировка страниц в памяти (LPIM).

Чтобы отключить параметр Блокировка страниц в памяти для SQL Server, удалите право пользователя Блокировка страниц в памяти у учетной записи с привилегиями для запуска sqlservr.exe (стартовой учетной записи SQL Server).

Задание этого параметра не повлияет на SQL Server динамическое управление памятью, что позволит расширить или сузить ее по запросу других клерков памяти. При использовании пользовательского права Блокировка страниц в памяти рекомендуется задать верхний предел для параметра Макс. памяти сервера, как указано выше.

Включение блокировки страниц в памяти

Включение параметра "Блокировка страниц в памяти"

В меню Пуск выберите команду Выполнить. В окне Открыть введите gpedit.msc.

Откроется диалоговое окно Групповая политика .

В консоли Групповая политика разверните узел Конфигурация компьютера, затем узел Конфигурация Windows.

Разверните узлы Настройки безопасности и Локальные политики.

Выберите папку Назначение прав пользователя .

Политики будут показаны на панели подробностей.

На этой панели дважды щелкните параметр Блокировка страниц в памяти.

В диалоговом окне Параметр политики локальной защиты добавьте учетную запись с правами запуска sqlservr.exe (стартовая учетная запись SQL Server).

Несколько экземпляров SQL Server

При выполнении нескольких экземпляров компонента Компонент Database Engineсуществует три подхода к управлению памятью.

Используйте параметр Макс. памяти сервера, чтобы управлять использованием памяти, как указано выше. Установите максимальные значения для каждого экземпляра, учитывая, что их сумма не должна превышать общий объем физической памяти, установленной на компьютере. Рекомендуется выделять каждому экземпляру объем памяти, пропорциональный его ожидаемой рабочей нагрузке или размеру базы данных. Данный подход имеет то преимущество, что свободная память доступна новым процессам или экземплярам сразу же после их запуска. Недостаток состоит в том, что, когда выполняются не все экземпляры, ни один из выполняющихся экземпляров не сможет использовать память, оставшуюся свободной.

Используйте параметр Мин. памяти сервера, чтобы управлять использованием памяти, как указано выше. Установите минимальные значения для каждого экземпляра так, чтобы их сумма была на 1-2 ГБ меньше общего объема физической памяти, установленной на компьютере. Рекомендуется выделять каждому экземпляру минимальный объем памяти, пропорциональный его ожидаемой рабочей нагрузке. Данный подход имеет то преимущество, что выполняющиеся экземпляры могут использовать оставшуюся свободную память в случае, когда выполняются не все экземпляры. Данный подход также полезен, когда на компьютере выполняется другой процесс, интенсивно потребляющий память, так как при этом обеспечивается удовлетворение как минимум заданных потребностей сервера SQL Server в памяти. Недостаток состоит в том, что при запуске нового экземпляра (или любого другого процесса) уже выполняющимся экземплярам требуется некоторое время для освобождения памяти, особенно если для этого им необходимо записать измененные страницы обратно в базу данных.

Отсутствие действий (не рекомендуется). Первый экземпляр, столкнувшийся с рабочей нагрузкой, попытается захватить всю память. Простаивающие экземпляры или экземпляры, запущенные позже других, могут в конечном итоге быть вынуждены работать лишь с минимальным доступным объемом памяти. SQL Server не пытается равномерно распределять возможности использования памяти между экземплярами. Тем не менее все экземпляры будут реагировать на сигналы уведомлений памяти Windows, корректируя объемы используемой ими памяти. Операционная система Windows не балансирует память между приложениями с помощью уведомлений памяти API-интерфейса. Эти уведомления лишь обеспечивают глобальную обратную связь относительно доступности памяти в системе.

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

Выделение максимального объема памяти

Для всех выпусков SQL Server память можно выделять вплоть до предела виртуального адресного пространства процесса. Дополнительные сведения см. в разделе Предельный объем памяти для выпусков Windows и Windows Server.

Примеры

Пример A. Задание параметра max server memory равным 4 ГБ.

В следующем примере параметр max server memory устанавливается равным 4 ГБ. Обратите внимание, что, несмотря на то что sp_configure указывает имя параметра как max server memory (MB) , в примере демонстрируется пропуск (MB) .

При этом будет выведена инструкция, похожая на следующую:

Параметр конфигурации "max server memory" (в МБ) изменился с 2147483647 на 4096. Выполните инструкцию RECONFIGURE для установки.

Пример Б. Определение текущего распределения памяти

Следующий запрос возвращает информацию о текущем распределении памяти.

Пример В. Определение значения параметра "max server memory" (в МБ).

Следующий запрос возвращает сведения о настроенном сейчас значении и значении, которое используется в SQL Server. Этот запрос возвратит результаты независимо от того, имеет ли параметр "show advanced options" значение true.

Сегодня я хотел бы поговорить о SQL Express, а именно о лимите в 10ГБ на файлы данных. Многие разработчики выбирают эту СУБД для своих проектов. Она имеет достаточно шрокий функционал. Но рано или поздно, они сталкиваются с ограничениями которые не позволяют дальше пользоваться бесплатной версией. Одно из ограничений это лимит на файлы данных. Сегодня я постараюсь ответить на вопрос можно ли как-то обойти это ограничение.

Может использовать только 1 Физический процессор (но все ядра) Имеет ограничение 10ГБ на файлы данных (начиная с версии SQL Server 2008 R2) Ограничение касается только фалов данных, но не файлов логов;

К примеру у нас в базе имеется таблица dbo.Data следующей структуры, и она занимает в БД более 80% места.

Давайте распределим эту таблицу к примеру на 4 базы. Вообще выбор на сколько частей можно разделить таблицу зависит от баланса между сложностью поддержки мнжества баз, и получаемым в результате объемом хранения. Т.е. не стоит создавать 100 баз данных, потому что их будет сложно поддерживать, да SQL Server будет тормозить (не забывайте про другие ограничения).

Теперь наша задача найти подходящий столбец, по которому возможно было бы разделить данные. Если у вас есть подходящий столбец можно использовать его. Хорошим вариантом был бы какой нибудь тип записи в таблице RecordTypeId, в котором храняться значения от 1-8, тогда можно распределить данные по 8 базам.

В нашем примере у нас такого столбца нет, поэтому нам придется добавить суррогатный тип записи. Итак приступим. Создаем 4 дополнительные базы данных и в них таблицы аналогичной структуры.

Мы добавили столбец DB tinyint not null - это будет наш сурогатный тип записи (разделитель) Мы добавили в структуру таблицы ограничение, чтобы в каждой из таблиц мог храниться только определенный тип записи CH_CreatedDate check ( DB = 4 ) например.

Теперь, можно проверить как данные распределились по базам
Теперь старую таблицу нужно удалить, и работаеть с данными через представление dbo.vData, для простоты можете дать представлению тоже название что имела таблица т.е. dbo.Data.

Хорошо давате теперь поэкспериментируем с типичными запросами к данным, и посмотрим на их планы выполнения.


Как видите были просканированы 4 таблицы которые находятся в разных базах, после чего результаты были объеденены


Тожесамое произошло и здесь, только в место сканирования мы имеем поиск в кластерном индексе

Также можно ограничивать и используемые базы

Тут произведен поиск в кластерных индексах только двух таблиц

А как насчет не кластерных индексов, они работают? Давайте проверим. Создаем индексы на поле CreatedDate для каждой таблицы.


Некластерные индексы используютя в плане

Применив такой подход вы конечно же столкнетесь с дополнительными усилиями по сопровождению ваших данных. Ведь теперь у вас не одна база данных а несколько :). Но тем не менее возможно это поможет вам сэкономить пару лишних баксов.

date

18.08.2021

directory

SQL Server

comments

комментариев 5

В этой статье мы пошагово рассмотрим установку Microsoft SQL Server 2019 с описанием всех опций, компонентов, актуальных рекомендаций и best practice.

MS SQL Server это лидирующая РСУБД (Реляционная система управления базами данных) а также главный конкурент Oracle Database в корпоративном сегменте. В СНГ MSSQL чаще всего применяется для собственных разработок прикладного ПО и для 1С.

Редакции MS SQL Server 2019

Всего есть 6 выпусков (редакций) MSSQL 2019:

Особенности лицензирования SQL Server

MS SQL Server лицензируется по 2 моделям:

  • PER CORE — лицензирует MSSQL по ядрам сервера
  • SERVER + CAL — лицензия целиком на сервер и на каждого пользователя, который будет работать с сервером

Enterprise редакция может быть лицензирована только по типу PER CORE

Также в MSSQL Server 2019 появилась новая возможность для лицензирования контейнеров, виртуальных машин и Big Data Clusters.

Более подробная информация по лицензирования SQL Server представлена в отдельной статье.

Начало установки 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”.

установшик MS SQL Server 2019

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

Параметры обновлений SQL Server при установке

На этом шаге вы можете включить поиск обновлений через Windows Update. Включать эту опцию или нет, решать вам. Всё зависит от вашей планировки обновлений и от требований к отказоустойчивости сервера. Если у вас нет четкого плана обновлений ваших серверов, лучше оставьте этот параметр включенным.

ошибка установки sql server: Error 0x80244022: Exception from HRESULT: 0x80244022

Error 0x80244022: Exception from HRESULT: 0x80244022

Шаг Install Setup Files произойдет автоматически. Он подготовит файлы для установки.

Install Rules так же пройдет автоматически, если установщик не обнаружит проблем, которые необходимо решить перед установкой MSSQL (например, перезагрузить компьютер или несовместимость вашей версии Windows с версией SQL Server).

Тип инсталляции SQL Server

выбор типа установки sql server - новая установка

На этом шаге вы можете выбрать установку нового экземпляра или добавление функционала в уже установленный экземпляр. В нашем случае выбираем “Perform a new installation”.

ввести ключ установки sql server

Теперь нужно ввести ключ продукта. Если нет ключа, выбирайте Free edition (например, Developer), но имейте в виду, что с редакцией Developer вы имеете право только разрабатывать и тестировать ПО, но не использовать сервер в продуктивной среде.

На шаге License Terms принимаем лицензионное соглашение.

Компоненты SQL Server 2019: для чего нужны, какие нужно установить

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

  1. Database Engine Services – это основной движок SQL Server. Обязателен к установке.
  2. SQL Server Replication – службы репликации. Компонент довольно часто используются, поэтому если вы не уверены нужны ли они вам, то лучше отмечайте для установки.
  3. Machine Learning Services and Language Extensions – службы для выполнения R/Python/Java кода в контексте SQL Server. Необходимо, если вы собираетесь заниматься Machine Learning.
  4. Full-Text and Semantic Extractions for Search – компонент необходим, если вам нужна полнотекстовая технология поиска или семантический поиск в документах (например docx). В случае семантического поиска по документам, вам также понадобиться FILESTREAM, о нём ниже.
  5. Data Quality Services – службы для коррекции и валидации данных. Если вы не уверены нужен ли вам DQS, то лучше не устанавливайте его.
  6. PolyBase Query Service For External Data – технология для доступа к внешним данным, например на другом SQL Server или в Oracle Database. Java connector for HDFS data sources относиться к PolyBase технологии и нужен в случае если вы хотите работать с HDFS технологией.
  7. Analysis Services – также известен как SSAS. Технология для бизнес-отчетов (BI) и работы с OLAP. Используется в крупных компаниях для отчетности.

Дальше переходим к списку Shared Features (функций, распространяющихся на весь сервер, а не на конкретный экземпляр).

  1. Machine Learning Server (Standalone) – то же самое что и Machine Learning Services and Language Extensions, но с возможностью установки без самого движка SQL Server.
  2. Data Quality Client – то же самое что и DQS, только standalone.
  3. Client Tools Connectivity – библиотеки ODBC, OLE DB и некоторые другие. Рекомендем ставить обязательно.
  4. Integration Services – службы интеграции данных, известны также как SSIS. Технология для ETL (Extract, Transform, Load) данных. SSIS нужны, если вы хотите автоматизировать импорт данных и менять их в процессе импорта. Scale Out Master/Worker нужны для масштабирования работы SSIS. Если вы не уверены нужны ли они вам, то не отмечайте их.
  5. Client Tools Backwards Compatibility – устаревшие DMV и системные процедуры. Рекомендую ставить.
  6. Client Tools SDK – пакет с ресурсами для разработчиков. Можно не ставить, если не уверены, нужен ли он вам.
  7. Distributed Replay Controller/Client – повторяют и улучшают функционал SQL Server Profiler. Службы Distributed Replay нужны для моделирования нагрузки и для различного рода тестирования производительности.
  8. SQL Client Connectivity SDK – ODBC/OLE DB SDK для разработчиков.
  9. Master Data Services – компонент из Microsoft Power BI. Нужен для анализа, валидации, интеграции и коррекции данных.

Некоторые из этих компонентов (например, Java connector for HDFS data sources) могут отсутствовать в более старых версиях SQL Server.

Чуть ниже, на этом же шаге, вы можете указать директорию для файлов SQL Server’a. Если у вас нет весомых причин менять её, то оставьте стандартную (C:\Program Files\Microsoft SQL Server\).

компоненты sql server, какие нужно устаналивать обязательно

После того как вы выбрали нужные вам компоненты MSSQL, инсталлятор проверяет совместимость компонентов с вашей системой, и, если проблем нет, этот шаг пройдет автоматически.

Настройка именования экземпляра SQL Server

Вы можете оставить параметр Default Instance, в таком случае имя вашего экземпляра будет MSSQLSERVER. При выборе Named Instance вы сами указываете имя экземпляра SQL Server. В моём случае я назову экземпляр DEV. Instance ID рекомендуется ставить такой же, как и имя экземпляра, во избежание путаницы.

sql server named instance или default экземпляр

В Installed instances отображаются установленные на сервере экземпляры MSSQL, у меня уже есть один.

Настройка параметров служб 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”. Его включение означает, что старые данные не будут перезаписываться нулями при:

  • Создании базы данных;
  • Добавлении данных в файлы данных или лог файлы;
  • Увеличении размера существующих файлов (включая операции авто увеличения);
  • Восстановлении базы данных/файловой группы.

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

Рекомендую включать этот параметр, если опасность утечки данных несущественна.

запуск sql server под доменной учетной записью

На следующем шаге вы должны выбрать Collation.

Грубо говоря, Collation это настройка кодировки SQL Server. Этот параметр устанавливает кодировку страниц, правила сортировки, кодировку для char/varchar и другие языковые настройки.

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

Для СНГ рекомендуется выбирать Cyrillic_General_CI_AS. Если данные будут только на английском, можно выбирать SQL_Latin1_General_CP1_CI_AS.

Если вы планируете использовать SQL Server в боевых условиях, ознакомьтесь с документацией по выбору Collation, так как это важный параметр, хоть он и может быть задан для конкретной базы данных.

sql server 2019 кодировка Collation

Настройка Database Engine в SQL Server

На шаге Database Engine Configuration доступны 6 вкладок, начнем по порядку:

В Server Configuration вы должны выбрать Authentication Mode и указать аккаунт для администратора SQL Server’a.

У вас на выбор есть 2 режима: Windows authentication mode и Mixed mode.

Майкрософт рекомендует использовать Windows Authentication как самый безопасный, но на практике скорее всего вам нужно будет логиниться на сервер из других приложений. Например, написанных на java, и в таком случае без аутентификации SQL сервера не обойтись.

Если вы уверены, что ваши пользователи будут логиниться только с Windows компьютеров и приложений, поддерживающих Windows аутентификацию, то выбирайте Windows authentication mode.

В моём случае я ставлю Mixed mode. В этом режиме вам нужно будет прописать пароль от пользователя sa и выбрать Windows аккаунт, который будет обладать административными правами.

тип аутентфикации sql server: Windows authentication mode или Mixed mode

На вкладке Data Directories вы должны выбрать каталог, в которой SQL Server будет хранить базу данных и транзакционные логи.

Для данных лучше всего выделить отдельный RAID массив. Дисковая подсистема критически важна для производительности SQL Server’а, поэтому необходимо выбрать самый хороший из доступных вам вариант хранения данных, будь то NAS или локальный RAID из быстрых дисков.

Хорошей практикой считается разнесение всех директорий (системных баз данных, пользовательских баз данных, логов пользовательских баз данных, резервных копий) на разные хранилища. Таким образом вы добьетесь максимальной производительности от SQL Server’а на уровне работы с хранением данных.

В моём случае я укажу отдельный диск с RAID 1 для всех директорий.

путь к базам данных и каталогам бэкапов sql server

На вкладке TempDB настраиваются параметры для базы tempdb. Её правильная конфигурация важна для производительности сервера, так как эта база участвует практически во всех операциях с данными.

настройка параметров tempdb в sql server

Вкладка 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).

настройка выделения памяти для sql server

Вкладка FILESTREAM – включение технологии FILESTREAM. Она позволяет хранить бинарные файлы на файловой системе и обеспечивает доступ к ним через SQL. Если вы не уверены, что хотите работать с бинарными данными на уровне SQL, то тогда оставьте FILESTREAM выключенным.

Шаг Feature Configuration Rules пройдет автоматически. Ознакомьтесь со сводкой в Ready to Install и жмите Install.

На этом базовая установка SQL Server 2019 Enterprise завершена. В следующей статье мы посмотрим на основные способы анализа производительности и проблем в SQL Server.

Читайте также: