скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: SQL Server 2000


Для получения информации о конкретном файле базы данных можно ис­пользовать следующую хранимую процедуру: 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

Управление пользовательскими типами данных

В главе 5 в разделе «Типы данных» были рассмотрены встроенные в SQL Ser­ver 2000 типы данных. Эти типы данных всегда имеются в распоряжении пользо­вателей и могут быть использованы для столбцов таблиц, представлений, пере­менных и т. д. Однако помимо встроенных типов данных пользователи могут на их основе создавать свои собственные типы данных — так называемые пользо­вательские типы данных.

Пользовательские типы данных (user-defined data type) — это типы данных, создаваемые пользователями. Они создаются на основе системных типов дан­ных. Пользовательские типы данных часто используются, когда в нескольких таблицах необходимо хранить однотипные значения, причем гарантировать, что столбцы в таблице будут иметь одинаковый размер, тип данных и чувствитель­ность к данным NULL. Например, с помощью пользовательского типа данных можно хранить номера и серии паспорта.

Для создания пользовательского типа данных используется системная хра­нимая процедура sp_addtype:


sp_addtype  [ @typename =  ] type. [ @phystype = ]  system_data_type [ . [ @nulltype = ] "null_type" ] [ , [ @owner = ] "owner name" ]

Если необходимо сделать пользовательский тип данных доступным во всех создаваемых базах дан­ных, добавьте этот тип в базу данных model.

Здесь используются следующие аргументы.

О type — имя создаваемого типа данных. При выборе имени создаваемого типа данных необходимо следовать установленным правилам именования объек­тов. Имя должно быть уникальным в пределах владельца, то есть не совпа­дать с именами других объектов. Разные пользователи могут употреблять оди­наковые имена для создаваемых объектов.

О system_data_type — системный тип данных, на основе которого создается пользовательский тип данных. Можно выбрать один из следующих типов данных:

"binary(n)"            Image                                                             smalldatetime

Bit                               Int                                                                       smallint

"char(n)"               "nchar(n)"                                              '     text

Datetime               Ntext                                                                     tinyint

Decimal                 Numeric                                                         uniqueidentifier

"decimal[(p[,s])]"     "numeric[(p[,s])]"                              "varbinary(n)"

Float                       "nvarchar(n)"                                                       "varchar(n)"

"float(n)"              Real

Кавычки необходимы, когда помимо самого типа данных требуется указание дополнительных параметров. Аргумент п идентифицирует длину системного типа данных в пользовательском типе данных, аргумент р — максимальное суммарное (до и после десятичной точки) количество цифр для числовых типов данных в пользовательском типе данных, аргумент s — максимальное количество десятичных цифр после запятой в пользовательском типе данных.

Нельзя создать пользовательский тип данных на основе системного типа timestamp.

О "null _type". Значение этого аргумента определяет, будет ли пользовательский тип данных хранить значения NULL Аргумент null_type имеет тип varchar(S) и мо­жет принимать одно из трех следующих значений: NULL (разрешается хранение NULL), NOT NULL (хранение NULL запрещается) или NONULL (используется значение по умол­чанию). Если аргумент null_type не указывается, то при создании пользовательс­кого типа используется значение по умолчанию, установленное для базы данных с помощью системной хранимой процедуры sp_dboption. Текущее значение, уста­новленное в базе данных, можно получить с помощью функции GETANSINULL

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.