Аргумент                                              Назначение



IsSingleUser                                 Аналог аргумента "single user" процедуры

sp_dboption

IsSuspect                                     Имеются сомнения в целостности базы данных
IsTruncLog                                              Аналог аргумента "trunc. log on chkpt." процедуры

sp_dboption

Version                                        Внутренний номер версии сервера SQL Server,
________________________          на котором была создана база

                                                          данных_________

Результатом выполнения команды DATABASEPROPERTY будет либо значение О, соответствующее значению FALSE или OFF хранимой процедуры sp_dbopt1 on, либо значение 1, соответствующее значению TRUE или ON. Исключением из правила яв­ляется значение, возвращаемое для параметра Version. Для этого параметра воз­вращается значение типа int, которое может принимать любое положительное значение. Если значение параметра не определено, то команда вернет значение NULL.

Приведем пример использования команды DATABASEPROPERTY для получе­ния информации о режиме слияния двух значений NULL, установленном для базы данных pubs: SELECT DATABASEPROPERTY ("pubs", " IsNullConcat")

Сервер вернет примерно следующий результат:

О

(1 row(s) affected)

Для получения некоторой общей информации о базе данных можно исполь­зовать следующую хранимую процедуру: spjielpdb [[@dbname=] "name"]

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

Для получения информации о файлах базы данных из хранимой процедуры spjielpdb происходит вызов хранимой процедуры sp_helpfile, которая и выдает информацию о параметрах файла. Поэто­му формат результата выполнения этих хранимых процедур одинаков. Более подробно формат данных будет рассмотрен ниже.

Для получения информации о базе данных pubs можно использовать следу­ющую команду:

ЕХЕС spjielpdb "pubs"

 

Объем информации, возвращаемый этой командой, достаточно велик, поэтому возможности при­вести эту информацию в книге нет. Однако вы можете выполнить указанную команду в Query Analyzer и посмотреть, что же будет выдано в ответ.

Для получения информации о конкретном файле базы данных можно ис­пользовать следующую хранимую процедуру: sp_helpfile [[^filename = ] "name"]

Эта процедура выдает информацию о файле в следующих столбцах: О Name — логическое имя файла в базе данных;

О Filename— физическое имя файла в операционной системе, которое вклю­чает полный путь к файлу;

О Filegroup— имя группы файлов, к которой принадлежит файл;

О Si ze — текущий размер файла;

О Maxsize— максимальный размер файла, установленный при его создании;

О Growth — шаг прироста размера файла;

О Usage— тип использования файла; возможно одно из двух значений: data only (файл используется для хранения данных) или log on!у (файл исполь­зуется для хранения журнала транзакций).

Для получения информации о группе файлов можно использовать следую­щую хранимую процедуру: sp_helpfilegroup [[Ofilegroupname =] "name"]

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

Для получения информации о группе файлов PRIMARY базы данных pubs можно использовать следующую команду: ЕХЕС sp_helpf11egroup "primary"

Будет получен примерно следующий результат: groupname   groupid fllecount

PRIMARY    1       1

f11e_in_group fileid filename size   maxsize growth

pubs            1        pubs.mdf 2688 KB Unlimited Ш

В столбце Filename будет указан полный путь к файлу.

Для просмотра информации об использовании пространства внутри базы дан­ных можно применить следующую, системную хранимую процедуру:

sp_spaceused [[@objname =] "objname"] [, [@updateusage =] "updateusage"]

Аргумент "objname" содержит имя таблицы базы данных, о которой необхо­димо получить информацию. Аргумент "updateusage" управляет выполнением команды DBCC UPDATEUSAGE и может принимать значения TRUE или FALSE.

Если процедура sp_spaceused запускается без аргументов, то будет выведе­на информация об использовании пространства в текущей базе данных. В ре­зультате выполнения sp_spaceused в контексте базы данных pubs будет получен примерно следующий результат:

database_name

pubs

reserved     data


database_s1ze 3.63 MB

Index size


unallocated space 1.10 MB unused

 

2584 KB     1120 KB          1288 KB          176 KB

Как видно, результат состоит из двух наборов. В столбце database_name указано имя базы данных, о которой выводится информация, в столбце database_s1 ze — первоначальный размер базы данных, а в столбце unal I ocated space— пространство, которое было освобождено при сжатии.

В столбце reserved отображается сумма зарезервированного для базы данных про­странства (database_size - "unallocated space" = data + index_size + unused). В столбце data указан объем памяти, занимаемый данными, а в столбце index_size— объем памяти, занимаемый индексами. Размер свободного про­странства в базе данных выводится в столбце unused.

Чтобы получить информацию об использовании пространства в таблице titleauthor, можно использовать следующую команду: ЕХЕС sp_spaceused " titleauthor"

В результате процедура выдаст примерно следующее:
name         rows reserved data index_size unused

titleauthor 25    48 KB 8 KB 40 KB         0 KB

В столбце name указано имя таблицы, о которой выводится информация, а в столбце rows — число строк данных, которое введено в таблице. Объем памяти, выделенный в базе данных для таблицы, указывается в столбце reserved (data + index_s1ze + unused). В столбце data указан объем памяти, занимаемой данными, хранящимися в таблице, а в столбце i ndex_si ze — объем памяти, отве­денный для индекса. Объем свободного пространства указывается в столбце unused

Для получения информации о журнале транзакций Transact-SQL предлагает команду DBCC SQLPERF, выдающую информацию об использовании журналов транзакций в каждой из баз данных, созданных на сервере.

Для получения информации об использовании журналов транзакций нужно выполнить следующую команду: DBCC SQLPERF (LOGSPACE)

В результате будет выдана следующая информация: DatabaseName  LogSize(MB) Log Space Used ( % ) Status

Samp! e_3   1.9921875   33.039215   0  
Sample_2   1.9921875   34.264706   0  
Sample 1   1.9921875   33.553921   0  
Distribution   0.9921875   56.98819   0  
Abba   0.9921875   38.877953   0  
Northwi nd   0.9921875   46.948818   0  
Pubs   0.9921875   55.610237   0  
Msdb   2.4921875   35.442791   0  
Tempdb   0.4921875   85.079521   0  
Model   0.7421875   45.328949   0  
Master   1.2421875   34.709118   0  

(12 row(s) affected)

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Вся информация о файлах и группах файлов базы данных хранится в сис­темных таблицах. Хранимые процедуры обращаются к этим таблицам и возвра­щают пользователю результат в удобном виде. Хотя в некоторых случаях бывает проще напрямую считать данные из системных таблиц, чем выполнять храни­мые процедуры, Microsoft настоятельно советует не прибегать к прямому об­ращению к системным таблицам, так как их структура может быть изменена в следующих версиях, и поэтому программы, успешно работающие с одной из версий SQL Server, могут работать неправильно или вообще не работать со сле­дующими версиями этой СУБД. При использовании хранимых процедур Microsoft гарантирует, что совместимость будет сохранена.

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

Список файлов базы данных хранится в системной таблице sysfiles. Каж­дая строка этой таблицы соответствует одному файлу базы данных. Таблица sysfiles является виртуальной и не может быть изменена непосредственно с помощью команд DELETE, UPDATE или INSERT. Тем не менее, пользователи могут считывать данные из этой таблицы, используя команду SELECT. Структура таб­лицы sysf i I es приведена в табл. 14.3.

Таблица. Структура системной таблицы sysfiles

Имя столбца   Тип данных   Назначение  
Field   Smallint   Идентификационный номер (ID) файла в базе данных  
GroupID   Smallint   ID группы файлов, к которой принадлежит файл  
Size   Int   Текущее количество страниц в файле  
Maxsize   Int   Максимальный размер файла. Значение -1 означает,  
        что размер файла не ограничен  
Growth   Int   Шаг приращения  
Status   Int   Текущий статус файла  
Perf   Int   Зарезервировано  
Name   Nchar(128)   Логическое имя файла  
Filename   Nchar(260)   Физическое имя файла  

Таблица sysf lies описывает подробную структуру файлов. Более компакт­ное описание файлов хранится в таблице sysfilesl, которая содержит столбцы status, field, name и filename, назначение которых аналогично. Для просмот­ра информации о файлах базы данных с помощью таблицы sysfilesl можно выполнить следующую команду: SELECT * FROM sysfilesl

В итоге будет возвращен следующий результат:
status       fileid name               filename

3          1          pubs                ...\data\pubs.mdf

49218 2       pubsjog          ...\data\pubs_log.ldf

(2 row(s) affected)

Описание групп файлов, созданных в базе данных, хранится в системной таблице sysfilegroups. Каждая строка этой таблицы соответствует одной группе. Структура этой таблицы приведена в табл.

Таблица. Структура таблицы sysfilegroups

Имя столбца   Тип данных   Назначение      
GroupID Allocpolicy Status Groupname   Smallint Smallint Ins Sysname   Идентификационный номер группы файлов Зарезервировано Текущий статус группы: 0x8— READONLY, 0x10 — Имя группы файлов   DEFAULT  

Например, для получения информации о группах файлов, определенных в базе данных pubs, можно использовать следующий запрос:

SELECT * FROM sysfilegroups

Будет возвращен примерно следующий результат:

groupld allocpolicy status       groupname

1      0               16             PRIMARY
(1 row(s) affected)

Удаление базы данных

Для удаления базы данных используется следующая команда: DROP DATABASE databasejiame [,...n]

Аргумент database_name указывает имя базы данных, которую необходимо удалить. Одной командой можно удалить несколько баз данных, перечислив их имена через запятую.

Например, для удаления баз данных Pubs и Northwind нужно выполнить следующую команду: DROP DATABASE Pubs. Northwind


Дата добавления: 2019-07-15; просмотров: 225; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!