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 instance of LocalDB"C:\Program Files\Microsoft SQL Server\130 \Tools\Binn\SqlLocalDB.exe" start LocalDBApp1 REM Gather інформація про 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 Express LocalDBє екземпляром, створеним користувачем для використання. Будь-який користувач комп'ютера може створити базу даних в екземплярі 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 та 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!