Archive for the ‘Bla bla bla’ Category

Mudando de endereco: silasmendes.com/dba

Pois é. To em novo endereço 😀
Depois de um ano aqui no diariodba.wordpress.com, agora resolvi adquirir um domínio próprio: http://silasmendes.com/dba/
As coisas continuam como antes, só que agora o blog poderá ser acessado também por quem não tem acesso às páginas hospedadas no wordpress.com.
É isso ae, agora vamo trabalhá 🙂

1 ANO DE BLOG (post atrasado!!)

A vida ta uma correria né?
Tenho conversado com muitos DBAs e desenvolvedores e estamos todos no mesmo barco: faculdade, certificações, trabalho, família e etc.
Em Abril este blog completou um ano, lembro que no início tive a intenção de escrever um post por semana, mas logo vi que a coisa seria complicada, porque na maioria dos dias, depois do trânsito, trabalho e faculdade a gente só pensa mesmo em chegar em casa e dormir! Mas está tudo bem.
Neste momento tenho focado meus estudos no SQL Server 2008 e tenho me surpreendido com todas as novas features e a robustez deste produto.
Estou lendo o Accelerated SQL Server 2008 e pretendo em dois meses fazer o
exame 70-432. Tenho o MCITP no SQL Server 2005, mas não optei pelo exame de upgrade porque quero percorrer com calma e atenção todos os passos para as certificações do SQL Server 2008.
Neste 1º ano de blog, partindo de uma média de 15 para 1.000 visitas por mês, posso concluir que este canal tem servido ao meu aprendizado e ao suporte de tantos outros profissionais de TI que, como eu, estão aí, tentando manter o ritmo na correria do dia-a-dia.

Bom trabalho, bons estudos.

Silas Mendes

xp_getfiledetails – Propriedades do arquivo

No SQL Server 2000 existe uma procedure não documentada que traz as propriedades de um arquivo, como data de criação, data de alteração e etc; sem dúvidas um recurso bastante interessante.

Veja um exemplo da chamada:

xp_getfiledetails ‘C:\WINDOWS\EXPLORER.EXE’

Problemas? Sim… essa proc não está mais disponível a partir da versão 2005.
Esse sem dúvidas é um bom motivo para não nos apegarmos à funcionalidades não documentadas… depois dá uma dor de cabeça enorme e um monte de DBA indignado correndo atrás de uma solução similar.

(Bom, mas pra quem continua com o SQL Server 2000, ainda é uma ótima opção! 😀 )

Espaço em disco

 

Para verificar o espaço livre nos discos do seu servidor de banco de dados, dentro do Query Analyser ou Management Studio execute esta procedure:

xp_fixeddrives

O resultado será algo parecido com este aí:

drive    MB free
C        38177
D        130733
X        138790
Y        8140
Z        57013

(5 row(s) affected)

Até +

Instalando o SQL Server 2008 (Parte II)

Depois de mais um tempo ausente volto pra falar sobre o erro da instalação do SQL Server 2008 no Windows XP (veja link do post aqui). Claro que esse não é o cenário ideal para instalação do SQL Server, mas se você quer instalá-lo no seu notebook ou PC, pra conhecer, estudar ou etc, então pode se deparar com o seguinte erro:

The Windows Installer service cannot update the system file C:\WINDOWS\system32\msxml6r.dll because the file is protected by Windows.  You may need to update your operating system for this program to work correctly.

Isso aconteceu comigo e depois de muitas pesquisas, agora em Outubro a Microsoft liberou um artigo falando sobre este erro.

Segundo o artigo, o erro ocorre quando tentamos instalar uma versão inglês do SQL Server (2005 ou 2008) num Windows XP SP3 não-inglês.

Solução? Não existe uma propriamente dita até o momento, mas se ao verificar o arquivo de log da instalação do SQL Server (na busca do Windows procure por SQLSetup*MSXML6*) você encontrar uma mensagem como está: “MSXML 6.0 Parser — Installation completed successfully.”, você poderá ignorar este erro.

Para ler o artigo na integra, acesse este link: http://support.microsoft.com/kb/958897

Bom trabalho, bons estudos!

Tutorial: Instalando o SQL Server 2008 Express.

Novos projetos

Estou trabalhando num novo projeto e infelizmente não tenho encontrado muito tempo pra escrever por aqui. Tenho várias novidades pra postar e até semana que vem teremos novos posts.

Por enquanto um bom fim de semana pra todos 🙂

MCAD, MCSD, MCDBA

 

Pra você que ainda não concluiu e quer obter as certificações MCAD, MCSD ou MCDBA fique atento pois os exames para estas certificações estarão disponíveis somente até 31 de Março de 2009.

A boa notícia é que a Microsoft está oferecendo um desconto de 40% para esses exames; sem dúvidas uma ótima motivação 🙂

 

Bom estudo!

 

Consultando Metadados

 

Durante o processo de desenvolvimento é comum realizar consultas a metadados, ou seja, consultas que retornam informações sobre o próprio banco; algo como a consulta abaixo,  que retorna todas as tabelas de um determinado banco, junto com o nome de suas colunas e o tipo de dados:

SELECT

      t.name      nome_tabela,

      c.name      nome_coluna,

      ty.name     tipo_dado

FROM

      sysobjects t, syscolumns c, systypes ty

WHERE

      t.id = c.id AND

      t.type = ‘U’ AND

      c.xtype = ty.type

 

 

Isto está errado?

Não.

No entanto não é uma boa prática realizar consultas diretamente nas tabelas de sistema. Além do esforço em entender a estrutura dessas informações e construir a query, existe a possibilidade de no futuro a Microsoft alterar a estrutura de umas dessas tabelas. E aí? O que acontece com sua aplicação que estava buscando dados naquela estrutura?

Para evitar esse tipo de problemas o Microsoft SQL Server oferece um catalogo de views de metadados (desenvolvidas de acordo com os padrões ISO); a idéia é que essas views sempre retornarão os dados independente da versão do SQL Server, logo se houverem mudanças nas tabelas de sistema, sua aplicação não será afetada porque ela está buscando dados de uma view, além disso, a forma de consulta é muito simples. Veja só:

Se você quer obter os mesmos dados da consulta acima utilizando uma dessas views, precisa somente disso:

SELECT

      TABLE_NAME, COLUMN_NAME, DATA_TYPE

FROM

      INFORMATION_SCHEMA.COLUMNS

Veja como é mais simples.

Quer consultar todas as tabelas de sua base que comecem com tb_pedido? Então tente isso:

 

SELECT

      TABLE_NAME

FROM

      INFORMATION_SCHEMA.TABLES

WHERE

      TABLE_NAME like ‘tb_pedido%’

 

Se quiser consultar todas as procedures que iniciam com ‘listar%’ utilize:

SELECT

      *

FROM

      INFORMATION_SCHEMA.ROUTINES

WHERE

      SPECIFIC_NAME like ‘listar%’ and ROUTINE_TYPE = ‘PROCEDURE’

Além destas existem outras views que podem te auxiliar na consulta a metadados. Veja uma  lista completa aqui.

Bom trabalho!

 

 

 

 

Convertendo dados – CAST ou CONVERT?

 

Já ouvi diversas pessoas perguntarem a diferença entre o CAST e CONVERT, e às vezes coisas comuns passam despercebidas. A idéia é a mesma: as duas funções permitem converter um tipo de dado em outro, no entanto a função CAST é padrão ANSI, então teoricamente ela pode ser usada em qualquer SGBD; já a função CONVERT é uma função T-SQL, ou seja, específica do Microsoft SQL Server. Além desta diferença, a função CONVERT tem um opcional que permite a conversão do dado e a possibilidade de formatar o resultado, é o que chamamos de estilo, e isso é muito útil quando você trabalha com datatypes datetime e money/float.

Então, por exemplo,  se você quiser converter uma data e deixá-la no formato dd/mm/aaaa deve usar o CONVERT:

select CONVERT(varchar(60), current_timestamp, 103)

No exemplo acima estamos pegando a data atual e convertendo para VARCHAR e formatando a data como dd/mm/aaaa. A formatação neste caso está utilizando o estilo 103.

Uma tabela completa com os estilos disponíves pode ser acessada neste link: http://msdn.microsoft.com/en-us/library/ms187928.aspx

Bom trabalho 🙂

 

Instalando o SQL SERVER 2008 (Parte I)

Ontem baixei a versão final do SQL Server 2008 e instalei aqui.

A versão é a Enterprise (Trial)  e tive dois problemas durante a instalação.

Um foi bem curioso, antes de iniciar a instalação o instalador informou que não poderia prosseguir porque existiam ferramentas do SQL Server 2005 Express instaladas e que para continuar a instalação eu deveria removê-las. O detalhe é que eu nunca instalei nenhuma versão Express nessa estação(!).

“The SQL Server 2005 Express Tools are installed. To continue, remove the SQL Server 2005 Express Tools.”

Ok… numa pesquisa rápida no fórum da Technet encontrei outros caras que já tiveram o mesmo problema e fiquei surpreso ao saber que o problema era devido a uma ferramenta que instalei, a SQL Prompt da Red Gate (essa ferramenta adiciona Intellisense no Query Analyser e SSMS). Bom, removi a ferramenta e o processo continuou normalmente…

…até eu encontrar outro erro, e infelizmente mais preocupante que o primeiro.

The Windows Installer service cannot update the system file C:\WINDOWS\system32\msxml6r.dll because the file is protected by Windows.  You may need to update your operating system for this program to work correctly.

Nas buscas pelo google e technet vi que o assunto está sempre relacionado ao Windows XP e o SP2… vou começar alguns testes hoje a tarde. Se alguém aí já viveu essa situação e tem uma sugestão de como resolver deixe sua contribuição 🙂

Editado: Solução para este problema neste post:https://diariodba.wordpress.com/2008/11/04/instalando-o-sql-server-2008-parte-ii/

Tutorial: Instalando o SQL Server 2008 Express.