** Função SQL…
** 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
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
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:
SQL Server: Alguns Contadores de Performace Importantes
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.
SQL Server atatus arrow not going green
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
— Executar procedure no servidor Local
sp_HelpText USP_ChangePassword
— Executar procedure no servidor Remoto
EXEC [SqlServerName].[DataBaseName].dbo.sp_HelpText ‘USP_ChangePassword’
SQL Server: Alterar caminho do TempDB
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
Windows Server: Serviço do Windows perde a senha sem explicação
Provavelmente isso ocorre porque:
– Você esta usando uma conta de Dominio para executar o serviço.
– A politica default do dominio ou outra GPO esta configurada para restringir o direito de “Login as service” das contas que não receberem explicitamente essa permissão.
– Você precisa conceder essa permissão para a conta do serviço.
Como corrigir o problema:
1. Inicie o Group Policy Management Console no seu Domain Controller (Clique start -> run -> digite “gpmc.msc” -> Clique OK
2. Localize seu default domain policy
3. Altere a politica abaixo e adicione a conta que você deseja que sempre tenha a permissão de “Login as a service“:
Computer Configuration -> Windows Settings -> Security Settings -> Local Policies/User Rights Assignment -> Log on as a service
SQL Server: Select Databases and their size
–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
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