Olá! Seja bem-vindo!

Hoje veremos as 5 técnicas mais usadas para você rapidamente conseguir trabalhar com um banco que você não conhece.

Fiz esse artigo porque se você dá suporte a várias empresas (como é meu caso) ou se você está chegando agora em uma empresa nova, é provável que você não conheça os bancos de dados que lá existem.

Dessa forma, saber explorar os metadados do SQL é o caminho mais curto para você tornar-se efetivo rapidamente.

 

 

Metadados e dicionário de dados

Antes de mais nada, é importante explicar dois conceitos: Metadados e dicionários de dados.

 

O mundo está cheio de explicações bastante complexas sobre esses conceitos. Como nosso blog é focado na prática, serei o mais simples e prático possível por aqui.

 

Metadados

Metadados são informações a respeito de objetos do banco e dados guardados no banco. Por exemplo:

– O artista, o álbum e o número da música são metadados sobre uma música;

– O número de colunas existentes em uma tabela é um metadado sobre a tabela;

– Os parâmetros para chamar uma stored procedure são metadados sobre a procedure;

– O tipo de dados de uma coluna existente em uma tabela é um metadado sobre essa coluna.

 

Outro exemplo bem legal aplica-se a documentação de banco de dados: Quando você inclui uma explicação sua sobre como usar uma tabela, isso é um metadado da tabela.

 

E vou te dizer, com a crescente complexidade dos bancos de dados atuais, saber explorar os metadados é a salvação de DBAs, desenvolvedores, analistas de dados e analistas de produtos.

Dicionário de dados

Os metadados precisam ser guardados em algum lugar, esse lugar é o dicionário de dados, que é um repositório de metadados. Nos exemplos a seguir, faremos consultas ao dicionário de dados do SQL Server com o objetivo de obter informações (metadados) sobre os objetos do banco, que contém os dados que nos interessam.

 

5 consultas de metadados mais usadas

Passada a teoria, mergulhemos na prática.

 

Então encorajo você a usar o script abaixo para conhecer melhor algum dos bancos de dados de sua empresa. Se você não tiver acesso, baixe o banco de dados AdventureWorks (que é o banco de dados de exemplo disponibilizado pela Microsoft).

 



------------------------------------------------------------------
-- Como trabalhar com bancos que você ainda não conhece?
-- As 5 consultas de metadados mais usadas
------------------------------------------------------------------
-- Banco de testes: Adventureworks2016CTP3 - https://www.microsoft.com/en-us/download/details.aspx?id=49502

-- 1) Tabelas & colunas: information_schema.columns | sys.columns | syscolumns + information_schema.tables
select * from information_schema.tables
select * from sys.tables -- meu preferido

select * from information_schema.columns order by 2, 3, 5 -- meu preferido (order by 2+3=5 :))
select * from sys.columns -- select * from sys.systypes
select * from syscolumns


-- 2) Info geral sobre objetos: sp_help | alt+f1
execute sp_help 'Production.Product'
execute sp_help 'uspSearchCandidateResumes'


-- 3) sp_helptext
execute sp_helptext 'uspSearchCandidateResumes'
execute sp_helptext 'AdventureWorks2016CTP3.Sales.SalesOrderHeader', 'TotalDue'


-- 4) Programas armazenados (SPs, FCs, TRs, CKs, DFs, etc...): syscomments
select 
	sc.id,
	schema_name(so.schema_id) as owner,
	so.name,
	so.type_desc,
	sop.type_desc as parent_object_type,
	schema_name(sop.schema_id) + '.' + sop.name as parent_object_name,
	col_name(sop.object_id, colid) as column_name,
	sc.text,
	* 
from sys.syscomments sc
inner join sys.objects so on so.object_id = sc.id
left join sys.objects sop on sop.object_id = so.parent_object_id
order by 6, 2, 4


-- 5) Todos os objetos do banco: sysobjects | sys.objects | sys.all_objects
select * from sys.all_objects -- meu preferido
select * from sys.objects
select * from sysobjects

CONCLUSÃO

Em sua vida de DBA, desenvolvedor, ou analista, muitas vezes você terá de trabalhar com um banco de dados que você não conhece. Com a competitividade do mercado de trabalho, o quanto antes você se familiarizar com o ambiente e logo produzir resultados, melhor para você!

 

Por isso, encorajo você a explorar o artigo da semana passada (Tamanho de cada tabela do SQL), os relatórios do SQL e as demais VIEWS, PROCEDURES e FUNCTIONS que nos ajudam a desvendar os segredos dos bancos de dados.

 

Espero que também tenha gostado desse conteúdo.

 

Abraço do seu amigo Josué 🙂

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *