quinta-feira, 26 de novembro de 2009

Erro no SQL Server "The BackupDirectory registry key is not configured correctly"

Quando ocorrer o erro "The BackupDirectory registry key is not configured correctly" ao restaurar um banco de dados no SQL Server, altere o valor da chave: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\\MSSQLServer

para um caminho válido do servidor.
Caso a chave não exista, basta incluir ela com um caminho válido.

domingo, 1 de novembro de 2009

Numeração Sequencial no Oracle e SQL Server

Algumas vezes precisamos numerar sequencialmente o resultado de uma consulta, e tanto o Oracle como SQL Server tem soluções parecidas para ter esta necessidade, a função Row_Number().
O uso desta função com a cláusula OVER nos possibilita resultados interessantes.

Sintaxe: Over Partition by Colunas Order by Colunas

Exemplo: Considerando uma tabela de funcionários com três colunas Empresa, IDFuncionario e Nome, queremos gerar uma coluna com a posição do funcionário em uma consulta ordenada pelo nome, onde a cada empresa o número deve ser reiniciado:

SELECT Empresa, IdFuncionario, Nome, Row_Number() Over (Partition by Empresa Order By Nome)
From Funcionarios

quinta-feira, 22 de outubro de 2009

Consulta do Espaço Livre das Tablespace no Oracle

Abaixo a consulta que lista o espaço livre em cada tablespace existente no banco de dados Oracle:

Select tablespace_name, sum(bytes)/1024/1024 as "TAMANHO(MB)"
From dba_free_space
Group by tablespace_name
Order by sum(bytes)

segunda-feira, 19 de outubro de 2009

SQL Server Erro Communication Link Failure

Hoje estava aparecendo a mensagem Communication Link Failure em uma base SQL Server 2005.
Pela mensagem parece algum problema de comunicação com o servidor.
O erro ocorria tanto no servidor do banco de dados como nas estações sempre que era executada determinada consulta.
Entretanto o problema era que a base de dados tinha um objeto corrompido, neste caso era um índice. Para descobrir isto executei o comando DBCC CheckDB ('nomebancodados'), e depois tive que reconstruir o índice indicado no resultado desta instrução.

quinta-feira, 1 de outubro de 2009

Consultando as sessões ativas no SQL Server e Oracle

No Sql Server e no Oracle são disponibilizados objetos que permitem visualizar as sessões (conexões) ativas com o banco de dados.
É importante consultar estes objetos para identificar sessões que estão consumindo muitos recursos ou quem está "logado" nela.

SQL Server :
Select * From sys.sysprocesses


Oracle:
Select * from V$Session

terça-feira, 15 de setembro de 2009

Consulta de Bloqueios no Oracle (Locks)

Para consultarmos as transações que estão bloqueadas no Oracle, podemos fazer uma simples consulta nas views do banco de dados:


Select l1.sid, ' esta bloqueando ', l2.sid
From v$lock l1, v$lock l2
Where l1.block = 1
And l2.request > 0
And l1.id1=l2.id1
And l1.id2=l2.id2

Depois para ter maiores informações sobre as sessões bloqueadas consulte a view V$Session.

quarta-feira, 2 de setembro de 2009

SQL Azure


A Microsoft disponibilizou o CTP para testes do ambiente do SQL Azure. Tem como ter o primeiro contato com o banco de dados na nuvem, basta criar um login e aguardar um retorno por email para começar a trabalhar.
É possível criarmos um novo banco de dados, tabelas e dados diretamente das ferramentas do SQL Server 2008, como o Management Studio.
Apesar disto ainda não é possível ver os objetos do banco de dados no Object Explorer da ferramenta e tem alguns "macetes" para conectar no servidor. Acredito que na versão oficial tais limitações não continuem.
Existem também situações a serem observadas no desenvolvimento de soluções como limitações no uso de recursos da versão 2008 do SQL Server e tratamentos para transações de operações no banco de dados.

Mais informações em www.azure.com