Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Серверы БД лабораторные1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
74.24 Кб
Скачать

Лабораторная работа №3 Работа с утилитой bcp.Exe в Microsoft sql Server 2005.

Задание:

  1. Необходимо из таблицы dbo.ProspectiveBuyer базы данных AdventureWorksDW выгрузить данные в текстовый файл.

  2. Из текстового файла (полученного в предыдущем пункте) загрузить данные в таблицу dbo.BuyerCopy базы данных AdventureWorksDW (созданной в ходе лабораторной работы №2)

Решение:

К пункту 1 задания — выгрузка данных их таблицы в текстовый файл:

  1. Создайте пакетный файл bcp_out.bat с кодом:

bcp AdventureWorksDW.dbo.ProspectiveBuyer out Путь_к_Вашей_папке\ProspectiveBuyer.txt -c -S Имя_Вашего_сервера -U sa -P p@ssw0rd

  1. Запустите bcp_out.bat на выполнение. Убедитесь, что требуемый текстовый файл был успешно создан.

К пункту 2 задания — выгрузка данных их таблицы в текстовый файл:

  1. Создайте пакетный файл bcp_in.bat с кодом:

bcp AdventureWorksDW.dbo.BuyerCopy in Путь_к_Вашей_папке\ProspectiveBuyer.txt -c -S Имя_Вашего_сервера -U sa -P p@ssw0rd

  1. Запустите bcp_in.bat на выполнение. Известными Вам средствами убедитесь, что в таблице dbo.BuyerCopy появились данные из текстового файла ProspectiveBuyer.txt.

Озакомьтесь с описанием утилиты bcp.exe (прилагается описание с сайта http://msdn.microsoft.com). Выполните выборку данных, возвращаемых произвольным запросом, в текстовый файл.

Лабораторная работа №4 Перенос файлов баз данных.

Задание:

Необходимо файлы базы данных AdventureWorksDW переместить в другое место.

Решение:

  1. Переведите базу данных в автономный режим, например, используя команду

ALTER DATABASE AdventureWorksDW SET OFFLINE;

Проверьте, как изменился ярлык этой базы данных в SQL Server Management Studio.

  1. Средствами операционной системы перенесите файлы базы в вашу папку.

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

ALTER DATABASE AdventureWorksDW MODIFY FILE (NAME=AdventureWorksDW_Data, FILENAME='<Имя Вашей папки>\AdventureWorksDW_Data.mdf');

  1. Верните базу данных в обычный режим:

ALTER DATABASE AdventureWorksDW SET ONLINE;

Лабораторная работа №5 Создание базы данных при помощи команды create database. Использование файловых групп для оптимизации работы базы данных.

Задание:

  1. Создать базу данных с помощью команды CREATE DATABASE.

Переместить таблицу базы данных в другую файловую группу.

Решение:

Содание базы данных с помощью команды CREATE DATABASE.

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

USE master
GO
CREATE DATABASE TEST
GO
ALTER DATABASE TEST ADD FILEGROUP TEST_DATA_1
GO
ALTER DATABASE TEST ADD FILEGROUP TEST_DATA_2
GO
ALTER DATABASE TEST
ADD FILE
( NAME = TEST1,
FILENAME = '<Ваша_папка_1>\TEST_1.ndf',
SIZE = 1MB,
MAXSIZE = 10MB,
FILEGROWTH = 1MB)
TO FILEGROUP TEST_DATA_1
GO
ALTER DATABASE TEST
ADD FILE
( NAME = TEST2,
FILENAME = '<Ваша_папка_2>\TEST_2.ndf',
SIZE = 1MB,
MAXSIZE = 10MB,
FILEGROWTH = 1MB)
TO FILEGROUP Test_DATA_2
GO
USE TEST
GO
CREATE TABLE TAB1
(
TAB1_ID INT IDENTITY(1,1),
TAB1_NAME VARCHAR(100),
CONSTRAINT PK_TAB1 PRIMARY KEY(TAB1_ID)
) ON TEST_DATA_1 -- Filegroup we created.
GO
INSERT INTO TAB1(TAB1_NAME)
SELECT Table_Name
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
GO

Выполните скрипт и рассмотрите полученную базу данных (её файлы, файловые группы, таблицы, индексы) в SQL Server Management Studio.

Перемещение таблицы базы данных в другую файловую группу.

Для перемещения таблиц в другую файловую группу SQL Server 2005, в команду ALTER TABLE добавлено предложение 'MOVE TO', позволяющее переместить таблицу в другую файловую группу. Предложение MOVE TO используется наряду с предложением DROP CONSTRAINT в синтаксисе команды ALTER TABLE. Когда удаляется ограничение первичного ключа или кластерный индекс, можно переместить таблицу в новую файловую группу в той же самой транзакции при использовании опции 'MOVE TO'.

Выполнение системной хранимой процедуры sp_help для таблицы TAB1 покажет, что файловой группой для таблицы является TEST_DATA_1.

sp_help TAB1

Вот выборочный результат выполнения этой команды

Data_located_on_filegroup
-------------------------
TEST_DATA_1

index_name index_description
---- ------------------------
PK_TAB1 clustered, unique, primary key located on TEST_DATA_1

constraint_type constraint_name
-------------------------------
PRIMARY KEY (clustered) PK_TAB1

Вышеприведенный результат показывает, что ограничение PK_TAB1 используется для создания кластерного индекса на таблице TAB1. Обратите внимание, что всякий раз, когда определяется ограничение первичного ключа, и на таблице не существует кластерный индекс, SQL Server создаст кластерный индекс для ограничения первичного ключа. Это не справедливо для UNIQUE ограничения. Ограничение/индекс UNIQUE будет всегда некластеризованным, если не определено обратное при создании ограничения или индекса.

Чтобы переместить таблицу в другую файловую группу, мы должны использовать команду удаления ограничения наряду с опцией MOVE TO, как это показано ниже. Как только таблица перемещена в новую файловую группу, мы можем снова создать ограничение первичного ключа.

ALTER TABLE TAB1 DROP CONSTRAINT PK_TAB1 WITH (MOVE TO TEST_DATA_2)
GO
ALTER TABLE TAB1 ADD CONSTRAINT PK_TAB1 PRIMARY KEY(TAB1_ID)
GO

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

sp_help TAB1
Data_located_on_filegroup
-------------------------
TEST_DATA_2

Необходимо помнить следующие ограничения при использовании опции 'MOVE TO': - MOVE TO не применима для индексных представлений или некластеризованных индексов. - Схема фрагментации или файловая группа уже должна существовать. - Если MOVE TO не указана, таблица будет размещаться в той же самой схеме фрагментации или файловой группе, которая была определена для кластерного индекса.

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