Стиснення бази даних
Зміна бази даних
Видалення бази даних здійснюється за допомогою оператора:
DROP DATABASE імя_бази_данних [... n]
В результаті видаляються всі файли, які використовуються базою даних. Правом на видалення володіє власник бази і користувачі ролі sysadmin. це право не може бути передано іншим облікових записів.
Зміна власника бази даних проводиться за допомогою спеціальної процедури, що. Власником можна зробити будь-який обліковий запис, який в даний момент не є користувачем бази, в такий спосіб:
sp_changedbowner [[@ loginname =] 'имя_пользователя'
Перейменування бази даних:
sp_renamedb [@ old_name =] 'старое_імя', [@ new_name =] 'новое_імя'
Для перейменування бази даних її необхідно перевести в одного користувача режим роботи.
Для управління вже існуючими файлами журналу і файлами даних, додавання додаткових файлів даних або журналу, видалення файлів, а також для роботи з файловими групами використовується команда:
ALTER DATABASE база_данних
| ADD LOG FILE <указание_на_файл>
| REMOVE FILE логіческое_імя_файла
| ADD FILEGROUP імя_группи
| REMOVE FILEGROUP імя_группи
| MODIFY FILE <указание_на_файл>
| MODIFY FILEGROUP імя_группи свойство_группи>
[, FILEGROWTH = шаг_пріращенія_размера [Mb | Kb | %])
Дана команда дозволяє додавати файл в існуючу файлову групу, видаляти файли (при цьому видаляється і фізичний файл), додавати і видаляти файлові групи, змінювати фізичні параметри вже існуючих файлів, а також змінювати властивості файлових груп: READONLY, READWRITE. DEFAULT (при визначенні цього властивості, в цю групу буде заноситься файли, у яких в параметрах не визначена приналежність до групи; встановленої за замовчуванням спочатку вважається первинна файлова група).
Стиснення бази даних - це процес зменшення розмірів файлів бази даних за рахунок видалення невживаних частин файлу. Існує три способи стиснення бази даних:
· Автоматичне стиснення при встановленні відповідного параметра в настройках бази даних;
· Видалення вільного простору з файлів бази даних за допомогою утиліт адміністрування MS SQL Server;
· Зменшення розміру зазначених файлів (або файлових груп), а також очищення вмісту файлів для їх подальшого видалення.
Автоматичне стиснення даних виконується постійно з певними інтервалами, якщо встановлено параметр бази даних autoshrink. При операціях автоматичного стиснення можна визначити, яку частину бази даних необхідно стиснути. MS SQL Server намагається звільнити значну частину бази даних самостійно. Ці операції виконуються в період найменшої активності користувачів.
Стиснення всієї бази даних вручну здійснюється з використанням наступної команди:
DBCC SHRINKDATABASE ( 'імя_БД', [ 'відсоток'] [, NOTRUNCATE | TRUNCATEONLY])
· Імя_БД - ім'я бази даних, яку необхідно стиснути;
· Відсоток - кількість відсотків вільного простору, яке бажано залишити після стиснення;
· NOTRUNCATE - зведене простір не повертається операційній системі, а резервується в файлах, тобто фізично зменшення розміру бази даних не відбувається;
· TRUNCATEONLY - вільний простір видаляється за останнім використовуваним в файлі екстенти [1], при цьому дані не переміщаються, а параметр відсоток ігнорується.
Права на стиск бази даних видані тільки членам ролі sysadmin і власникам бази даних. Після стиснення бази даних виводиться звіт, в якому вказується:
· Кількість сторінок, до яких стискається файл;
· Розрахункова кількість сторінок, в які можуть бути поміщені всі дані файлу;
· Кількість сторінок, що містять дані;
· Кількість сторінок, на які файл може бути ще стиснутий.
Не можна стиснути базу даних до розміру менше початкового.
Стиснення бази даних можна здійснити також і шляхом стиснення кожного її файлу за допомогою наступної команди:
DBCC SHRINKFILE ( 'имя_файла', [ 'конечний_размер']
[, EMPTYFILE | NOTRUNCATE | TRUNCATEONLY])
· Имя_файла - логічне ім'я файлу, який необхідно стиснути;
· Конечний_размер - бажаний розмір (ціле число в мегабайтах), який повинен мати файл після виконання стиснення. Якщо цей параметр не вказаний або менше мінімально допустимого розміру, то файл стискається до мінімально можливого розміру;
· EMPTYFILE - виконується перенесення даних з файлу в інші файли файлової групи;
· NOTRUNCATE - місце, що звільнилося місце не повертається операційній системі, тобто розмір файлу не зменшується насправді. При цьому дані розташовуються більш компактно і зміщуються до початку файлу;
· TRUNCATEONLY - відбувається обрізання файлу, починаючи з останньої використовуваної сторінки. Ніякого переміщення даних не відбувається.