USE TestDB;
2. В окне запроса создайте новый тип данных со следующими свойствами.
• Он должен называться NAME.
• Он должен находиться в схеме Test.
• Это должна быть строка, содержащая символы Unicode, длиной до 70 символов.
CREATE TYPE Test.NAME FROM NVARCHAR(70);
3. В окне запроса создайте новый тип данных со следующими свойствами.
• Он должен называться CURRENCYVALUE.
• Он должен находиться в схеме Test.
• Это должно быть точное число, которое может содержать до пяти знаков в дробной части и принимать значения до 999 999 999.99999.
CREATE TYPE Test.CURRENCYVALUE FROM DECIMAL(14,5);
Измените таблицу Test.Customers для того, чтобы воспользоваться новыми типами данных.
1. Откройте новое окно создания запроса, введите и выполните инструкцию для использования базы данных TestDB.
USE TestDB;
1. В окне запроса модифицируйте таблицу Test.Customers, внеся в нее следующие изменения:
o замените тип данных столбца Name на тип Test.NAME.
o замените тип данных столбца CreditLimit на тип Test.CURRENCYVALUE.
o замените столбец CreatedDateTime, запретив в нем значение NULL.
ALTER TABLE Test.Customers
ALTER COLUMN Name Test.NAME NOT NULL;
ALTER TABLE Test.Customers
ALTER COLUMN CreditLimit Test.CURRENCYVALUE NULL;
ALTER TABLE Test.Customers
ALTER COLUMN CreatedDateTime DATETIME2 NOT NULL;
Пополнить таблицу 100 000 строками и затем сравнить занимаемый таблицей объем дискового пространства в зависимости от примененного уровня сжатия данных.
1. Откройте новое окно создания запроса, введите и выполните инструкцию для использования базы данных TestDB.
USE TestDB;
2. В окне запроса введите, выделите и выполните следующий запрос для заполнения таблицы Test.Customers 100 000 строками.
INSERT Test.Customers (Name, CreatedDateTime, CreditLimit)
SELECT TOP(100000) so1.name
,SYSDATETIME()
,CASE
WHEN ABS(so1.object_id) > 100000000 THEN NULL
ELSE ABS(so1.object_id)
END
FROM sys.all_objects AS so1
CROSS JOIN sys.all_objects AS so2;
3. В окне запроса введите, выделите и выполните следующие инструкции для перестройки таблицы в режиме без сжатия и формирования отчета о занимаемом таблицей дисковом пространстве.
ALTER TABLE Test.Customers
REBUILD WITH (DATA_COMPRESSION = NONE);
EXEC sp_spaceused
@objname = 'Test.Customers'
,@updateusage = 'true';
Обратите внимание на общий объем дискового простаранства, зарезервированный для таблицы и отображенный в хранимой процедуре sp_spaceused.
4. В окне запроса введите, выделите и выполните следующие инструкции для перестройки таблицы с использованием сжатия на уровне строк и формирования отчета о занимаемом таблицей дисковом пространстве.
ALTER TABLE Test.Customers
REBUILD WITH (DATA_COMPRESSION = ROW);
EXEC sp_spaceused
@objname = 'Test.Customers'
,@updateusage = 'true';
Запомните общий объем дискового простаранства, зарезервированный для таблицы и отображенный в хранимой процедуре sp_spaceused.
5. В окне запроса введите, выделите и выполните следующие инструкции для перестройки таблицы с использованием сжатия на уровне страницы и формирования отчета о занимаемом таблицей дисковом пространстве.
ALTER TABLE Test.Customers
REBUILD WITH (DATA_COMPRESSION = PAGE);
EXEC sp_spaceused
@objname = 'Test.Customers'
,@updateusage = 'true';
Запомните общий объем дискового простаранства, зарезервированный для таблицы и отображенный в хранимой процедуре sp_spaceused.
6. Удалите базу данных.
USE master;
GO
DROP DATABASE TestDB;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.