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é 🙂