Home - www.devmedia.com.br

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 <servidor-sql>
                /U <usuario>
                /P <senha>
                /N <nome-pacote-DTS>
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!

Paulo Ribeiro

 

Paulo Ribeiro (psribeiro@hotmail.com) é Microsoft MCDBA e membro da equipe editorial da SQL Magazine. Atua como DBA sênior em SQL Server na Livraria e Papelaria Saraiva S/A.

  Monitorando deadlocks com Trace Flags    
  Monitorando deadlocks com o Profiler    
  Variáveis tipo TABLE    
  Tabelas Temporárias    
  Subqueries Parte II: Queries correlatas    
  Subqueries – Parte I    
  Gerenciando Bloqueios–Parte II    
  Gerenciando Bloqueios–Parte I    
  Porque qualificar o owner na chamada de stored-procedures    
  Explorando os Tipos de Join – Parte II    
  Explorando os Tipos de Join – Parte I    
  Versões existentes do SQL Server 2000    
  Tuning - Plano de Execução no SQL Server - Parte 4    
  Tuning - Plano de Execução no SQL Server - Parte 3    
  Tuning - Plano de Execução no SQL Server - Parte 2    
  Tuning - Plano de Execução no SQL Server - Parte 1    
  Tuning - Estatísticas de I/O    
  Desfragmentando Índices no SQL Server    
  Procedures Não Documentadas
no SQL Server 2000 Parte 2
   
  Procedures Não Documentadas
no SQL Server 2000.
   
  SQL Server 2005 - YUKON    
  SQL Server 2000: o Contra-Ataque.    
  Boas-Vindas    
     

 

Todos os direitos reservados: DevMedia Group
SQL Magazine - 2004