Arquivo

Archive for the ‘SQL Server’ Category

** Função SQL…

12 de dezembro de 2012 Deixe um comentário
** Função SQL Server para gerar EAN13 
ALTER FUNCTION [dbo].[UFN_GeraCodigoEAN](@ID VARCHAR(20)) 
RETURNS VARCHAR(20) AS 
BEGIN    
  DECLARE @Retorno VARCHAR(20), @Digito CHAR(1)    

  DECLARE @chk_digit int, @chk int

  DECLARE @num TABLE (num int)

  SELECT @ID = RTRIM(LTRIM(@ID))

  SELECT @ID = '999'
               + ISNULL(REPLICATE('0', 9 - len(ISNULL(@ID ,0))), '') 
               + @ID

   INSERT INTO @num    
   SELECT 1 UNION ALL 
   SELECT 2 UNION ALL 
   SELECT 3 UNION ALL 
   SELECT 4 UNION ALL  
   SELECT 5 UNION ALL 
   SELECT 6 UNION ALL
   SELECT 7 UNION ALL
   SELECT 8 UNION ALL
   SELECT 9 UNION ALL
   SELECT 10 UNION ALL
   SELECT 11 UNION ALL
   SELECT 12

   SELECT @chk_digit = SUM(
          CONVERT(int, SUBSTRING(@ID, LEN(@ID) - num + 1, 1)) 
          * CASE WHEN num % 2 = 1 THEN 3 
            ELSE 1 END)
   FROM  @num    
   WHERE num <= LEN(@ID)

   SELECT @chk_digit = (10 - (@chk_digit % 10)) % 10
   
   SELECT @Digito=CHAR(ASCII('0') + @chk_digit)
   
   SELECT @Retorno=@ID + @Digito

   RETURN @Retorno 
END

Microsoft SQL 2008 Setup: Performance Counter Registry Hive consistency check failed

4 de dezembro de 2012 1 comentário

If you experience this error on a non English or MUI version of Windows Server 2008 R2 you can make adjusts in Performance counter registry values as described in Microsoft’s KB 300956 (http://support.microsoft.com/kb/300956).

If nothing helps you… try to execute this patch created by D-Force:

http://www.uploadarchief.net/files/download/sql2008r2_patch.zip

Windows 2003: Recriar disco de Quorum

6 de novembro de 2012 2 comentários

O disco de quorum é um ponto de falha unico no serviço de cluster do Windows Server. Se ele falhar por corrompimento lógico ou físico do disco, seu cluster não vai mais iniciar.

 

Às vezes o disco pode estar sem nenhum problema, mas você migrando seu cluster para uma nova storage e precisa apontar seu cluster para novos discos.

 

Abaixo seguem alguns passos para incluir um novo disco de quorum no seu cluster:

1. Apresente a nova LUN de quorum de 1 GB para todos o nós do cluster

2. Deixe o serviço do cluster ligado em apenas um nó do cluster (desligue o serviço em todos os demais)

3. Inicie o serviço do cluster pelo prompt de comando no nó que esta ligado:
C:\> net start clussvc /fixquorum

4. Abra o Cluster Admin em Start Button > Administrative tools > Cluster Administration

5. Veja que o IP e Nome do cluster estão ativos e todos os outros recursos estão desligados

6. Remova o disco de Quorum e adicione o novo disco

7. Reinicie o serviço de cluster normalmente e verifique que esta tudo ok.

8. Ligue o serviço do cluster nos demais nós do cluster.

 

Referência:

http://support.microsoft.com/kb/258078/en-us

SQL Server: Alguns Contadores de Performace Importantes

11 de junho de 2012 Deixe um comentário

SQL Server: SQL Statistics – SQL Compilations/sec

Esse contador indica o número de vezes por Segundo que o SQL Server compila queries e procedures. O ideal é que esse número sejá o menor possível. Altos picos podem indicar Dynamic SQL em excesso.

SQL Server: SQL Statistics – SQL Re-Compilations/sec

O SQL Server recompila a query quando o Plano de Execução é invalidado por algum evento significante. Este contador indica a quantidade de vezes por segundo que uma querie é recompilada. Recompilar, assim como compilar, utiliza recursos muito elevado no seu sistema e devem ser evitadas. Esses valores precisam ser o menor possível para garantir boa performance, idealmente menor que 10% do numero de Compilations/sec.

SQL Server: Access Methods – Full Scans/sec

Esse contador indica o número de Full Scan por segundo e pode estar relacionado  às páginas de dados das Tabelas ou Indices. A literatura indica que esse valor deve estar entre 1 e 2, mas para bases com muitas tabelas pequenas é perfeitamente aceitável que esse número aumente.

SQL Server: Memory Manager – Optimizer Memory

Esse contador indica a quantidade de memória que o SQL Server aloca para otimização de queries. Essa quantidade de memória tende a ser uniforme sem grandes variações. As variações no gráfico sugerem que muitas Dynamic SQL estão sendo executadas.

SQL Server: Buffer Manager – Stolen pages

Esse contador esta relacionado à quantidade de páginas “roubadas” do SQL Server para serem utilizadas por outras operações como ordenação, transações, locks, etc. Números altos para esse contador indica queries pobres e/ou mal escritas que deveriam ser transcrita em Procedures para melhoramento da utlização do Cache do SQL Server;
Servidores com Stolen Pages elevados geralmente também possuem utilização elevada de CPU.

Categorias:SQL Server

SQL Server atatus arrow not going green

26 de março de 2012 Deixe um comentário

O SQL Server utiliza o WMI para verificar status dos serviços no seu servidor SQL Server.

Algumas vezes o SQL Server Management Studio não consegue ler o status do serviço e exibe simplesmente uma bolinha branco para o Database engine e SQL Server Agent.

 

Para resolver o problema você precisa dar permissão de Remote Enable no WMI para o usuário ou grupo que acessa o SQL Server. Veja no link abaixo um passo a passo:

 http://msdn.microsoft.com/en-us/library/ms188690.aspx

 

Com a permissão correta seu usuário conseguirá ver a seta verde com o status do serviço:

How to Execute SP_HELPTEXT on Remote Server

22 de março de 2012 Deixe um comentário

— Executar procedure no servidor Local

sp_HelpText USP_ChangePassword

 

— Executar procedure no servidor Remoto

EXEC [SqlServerName].[DataBaseName].dbo.sp_HelpText ‘USP_ChangePassword’

Categorias:SQL Server Tags:

SQL Server: Alterar caminho do TempDB

15 de março de 2012 Deixe um comentário

1. Pra verificar o caminho atual do TempDB:

 

USE tempdb 
go
sp_helpfile

 

2. Pra alterar o caminho padrão do TempDB

 

USE master
go
ALTER  DATABASE tempdb 
MODIFY FILE(name= tempdev,filename='T:\TempDB\tempdb.mdf')
go
ALTER DATABASE tempdb 
MODIFY FILE(name= templog,filename='T:\TempDB\templog.ldf')
go

 

3. Reinicie o servico do SQL para aplicar as alteracoes:

 

4. Verifique a alteracao do caminho:

 

USE tempdb 
go
sp_helpfile
Categorias:SQL Server

SQL Server: Select Databases and their size

4 de janeiro de 2012 Deixe um comentário

–drop table #DatabaseSize

create table #DatabaseSize (  Name VARCHAR(200), Collation VARCHAR(200) null, Recovery VARCHAR(200) null, dbsize bigint)

 

EXEC sp_MSForEachDB ‘   Insert Into #DatabaseSize (Name, dbsize)   SELECT “?”, sum(size) * 8 FROM [?]..sysfiles’

 

select * from #DatabaseSize

 

UPDATE DS

SET ds.Recovery = db.recovery_model_desc,  ds.Collation=db.Collation_name

FROM #DatabaseSize DS

INNER JOIN sys.databases db ON DS.Name=db.name

 

select * from #DatabaseSize order by name

SQL Server 2005 Microsoft.SqlServer.MSMQTask.dll in the COM+ catalog Error

6 de dezembro de 2011 Deixe um comentário

Recentemente tentei instalar um SQL Server 2005 Enterprise x64 em Cluster, mas os servidores estavam com lixo de uma tentativa de  instalação do SQL Server 2005 32bits:

Failed to install and configure assemblies C:\Program Files\Microsoft SQL Server\90\DTS\Tasks\Microsoft.SqlServer.MSMQTask.dll in the COM+ catalog. Error: -xxxxx
Error message: Unknown error xxxx
Error description: One or more of the components being installed are already
registered as 32 bit components in the target application. You must install
the 64 bit versions of the components being installed in a different COM+
application, or delete the existing 32 bit versions of the components being
installed from the target COM+ application prior to attempting install of the
64 bit versions. COM+ applications cannot contain bit neutral components.

Isso acontece porque o  Microsoft.SqlServer.MSMQTask da versão 32 bits foi deixado pra trás no COM+ Catalog.

Para resolver o problema, remova oMicrosoft.SqlServer.MSMQTask do COM+ Catalog e clique em Retry na tela de erro:

1. Open Administrative Tools\Component Services

2. Go to Component Services\Computers\My Computer\COM+ Applications

3. Delete Microsoft.SqlServer.MSMQTask