Published on

October 4, 2008

Полезные неофициальные хранимые процедуры в SQL Server

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

sp_fixindex

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

EXEC sp_fixindex 'pubs', 'sysindexes', 2

sp_lock2

При работе с блокировками в SQL Server часто рекомендуется использовать системную хранимую процедуру sp_lock. Однако существует улучшенная версия под названием sp_lock2, которая предоставляет дополнительную информацию, такую как имя таблицы и владелец. Вот пример использования:

EXEC sp_lock2

sp_who2

Хранимая процедура sp_who2 возвращает подробную информацию о текущих пользователях и процессах SQL Server. Она предоставляет дополнительную информацию, такую как время CPU, дисковый ввод-вывод, последний пакет и имя программы по сравнению с хранимой процедурой sp_who. Вот пример использования:

EXEC sp_who2

sp_tempdbspace

Хранимая процедура sp_tempdbspace может использоваться для получения общего размера и использованного пространства базы данных tempdb. Это может быть полезно для контроля использования пространства базы данных tempdb. Вот пример использования:

EXEC sp_tempdbspace

sp_MShelpcolumns

Хранимая процедура sp_MShelpcolumns возвращает полную схему таблицы, включая длину, тип, имя и указание, является ли столбец вычисляемым. Вам нужно указать имя таблицы в качестве параметра для работы с этой хранимой процедурой. Вот пример использования:

USE pubs
GO
EXEC sp_MShelpcolumns 'authors'
GO

sp_MShelpindex

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

USE pubs
GO
EXEC sp_MShelpindex 'authors'
GO

sp_MShelptype

Хранимая процедура sp_MShelptype возвращает полезную информацию о системных типах данных и пользовательских типах данных. Вы можете указать имя типа данных в качестве параметра, или вы можете запустить хранимую процедуру без параметров, чтобы получить информацию о всех встроенных и пользовательских типах данных. Вот пример использования:

USE pubs
GO
EXEC sp_MShelptype

sp_MStablespace

Хранимая процедура sp_MStablespace возвращает количество строк и использованное пространство таблицы и ее индексов. Вам нужно указать имя таблицы в качестве параметра для работы с этой хранимой процедурой. Вот пример использования:

USE pubs
GO
EXEC sp_MStablespace 'authors'
GO

sp_MSindexspace

Хранимая процедура sp_MSindexspace возвращает размер в килобайтах, который используют индексы в определенной таблице. Вам нужно указать имя таблицы и имя индекса в качестве параметров для работы с этой хранимой процедурой. Вот пример использования:

USE pubs
GO
EXEC sp_MSindexspace 'authors'
GO

sp_MStablerefs

Хранимая процедура sp_MStablerefs возвращает все зависимости для заданной таблицы. Вам нужно указать имя таблицы в качестве параметра для работы с этой хранимой процедурой. Вот пример использования:

USE pubs
GO
EXEC sp_MStablerefs 'titleauthor'
GO

sp_MSforeachtable

Иногда вам может потребоваться выполнить одни и те же действия для всех таблиц в базе данных. Хранимая процедура sp_MSforeachtable может использоваться для этой цели. Она позволяет выполнить команду для каждой таблицы в базе данных. Вот пример использования для перестроения всех индексов в вашей базе данных:

EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?')"

sp_MSkilldb

Хранимая процедура sp_MSkilldb устанавливает базу данных в состояние подозрения и позволяет dbcc dbrepair уничтожить ее. Это следует использовать с осторожностью и только из контекста базы данных master. Вот пример использования:

USE master
GO
EXEC sp_MSkilldb 'pubs'
GO

Это всего лишь несколько примеров полезных неофициальных хранимых процедур, доступных в SQL Server. Хотя они неофициальные, они могут быть ценными инструментами в определенных ситуациях. Однако важно отметить, что неофициальные функции могут не иметь официальной поддержки со стороны Microsoft, поэтому используйте их на свой страх и риск и всегда тщ

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.