Procedures Não Documentadas no SQL Server 2000 - Parte 2
Darei continuidade nessa matéria, explicando o funcionamento de mais algumas procedures não documentadas existentes no SQL Server 2000.
xp_RegRead
Você instalou o SQL Server 2000 e perdeu aquele “papelzinho” onde estava anotado o CD Key (número de registro) do SQL Server 2000 ... Agora você está em apuros porque fez um upgrade de máquina e precisa realizar uma nova instalação ... E agora? Utilize a procedure xp_RegRead para ler informações do registry; basta informando a chave:
use master
exec xp_RegRead
'HKEY_LOCAL_MACHINE',
'SOFTWARE\Microsoft\Microsoft SQL Server\80\registration\',
'CD_KEY'
-------------------------------------------------------------------------------
Value Data
CD_KEY M3XXD-KQ4K5-XYQ89-YT9P5-DAG6F
xp_FileExist
Utilize para verificar se um arquivo existe em disco. Exemplo:
exec master..xp_FileExist 'c:\autoexec.bat'
-------------------------------------------------------------------------------
File Exists File is a Directory Parent Directory Exists
------------ ------------------ ------------------------
1 0 1
Uma aplicação interessante para essa procedure é a criação de pacotes DTS “on demand”: poderíamos vincular a execução de um pacote à existência de um arquivo em disco:
set nocount on
create table #file (file_exists bit, file_directory bit, parent_directory_exists bit)
insert into #file
exec master..xp_fileexist 'c:\autoexec.bat'
if (select file_exists from #file) = 1
begin
/* o arquivo existe no diretorio, acione o pacote DTS */
exec master..xp_CMDShell 'DTSRun
/S
/U
/P
/N
end
sp_who2
Pode-se dizer que a procedure sp_Who é uma versão “enxuta” de sp_Who2. Ambas fornecem informações sobre os processos ativos no SQL Server 2000; porém sp_Who2 fornece algumas informações adicionais :
- CPUTime: tempo de CPU utilizado utilizado pelo comando pelo último comando executado na sessão
- DiskIO: número de leituras e/ ou escritas realizadas pelo último comando executado na sessão
- LastBatch: Data e hora do último batch executado na sessão
- ProgramName: identificação do programa responsável pelo último comando que foi executado na sessão
sp_Who2 possui um parâmetro opcional: @login_name. Alguns exemplos de execução:
/* para listar todos os processos no servidor */
exec sp_Who2
/* para listar somente o processo cujo spid=67 */
exec sp_Who2 67
/* para listar somente os processos ativos */
exec sp_Who2 active
Observação: o parâmetro “active” exclui da listagem os spids que não estão executando nenhum comando no momento da execução de sp_Who2. Por exemplo, se você está com o Query Analyzer aberto mas não está executando nenhum processo, seu spid não será mostrado nessa listagem.
As dicas de hoje são essas; façam bom uso.
Vou ficando por aqui.
Até a próxima!
Leia a primeira parte deste artigo em:
//www.devmedia.com.br/articles/visualizacomponente2.asp?comp=2371