Salve, salve minha gente, boa tarde!!!
Mais uma segunda – feira começando e mais uma semana se iniciando, já passamos da metade do mês de Junho tão aguardado devido ao lançamento do novo Microsoft SQL Server 2016. Caso você tenha perdido alguma informação sobre este lançamento, aproveito para compartilhar aqui um dos diversos posts publicados no meu blog sobre esta nova versão:
- https://pedrogalvaojunior.wordpress.com/2016/06/02/microsoft-sql-server-2016-express-ja-esta-disponivel/
- https://pedrogalvaojunior.wordpress.com/2016/05/17/novidade-sql-server-2016-comando-truncate-table-agora-com-with-partitions/
- https://pedrogalvaojunior.wordpress.com/2016/04/06/microsoft-sql-server-2016-rc2-feature-pack/
Voltando a falar sobre o Short Scripts, esta é uma das sessões mas visitadas do meu blog, onde o objetivo é compartilhar os scripts existentes em minha biblioteca de códigos dedicados exclusivamente para o SQL Server. Muitos destes scripts são resultado de pesquisas, posts publicados nos fóruns MSDN e também de respostas encontradas em outros websites de profissionais, administradores de banco de dados, professores e comunidades.
Boa parte deste material é fruto de um trabalho dedicado exclusivamente a colaboração com a comunidade, visando sempre encontrar algo que possa ser a solução de um determinado problema, bem como, a demonstração de como se pode fazer uso de um determinado recurso. Todos os scripts publicados nesta sessão são devidamente testados antes de serem publicados, mas isso não significa que você pode fazer uso dos mesmo em seu ambiente de produção, vale sim todo cuidado possível para evitar maiores problemas.
Caso você não tenha acessado os últimos posts, não perca tempo, utilize os links publicados a seguir:
https://pedrogalvaojunior.wordpress.com/2016/03/22/short-scripts-marco-2016/
https://pedrogalvaojunior.wordpress.com/2015/12/14/short-script-dezembro-2015/
https://pedrogalvaojunior.wordpress.com/2015/10/21/short-scripts-outubro-2015/
https://pedrogalvaojunior.wordpress.com/2015/08/26/short-scripts-agosto-2015/
https://pedrogalvaojunior.wordpress.com/2015/06/03/short-script-junho-2015/
Para esta relação você vai encontrar scripts relacionados aos seguintes assuntos, conceitos, recursos ou funcionalidades:
- Acesso a banco de dados;
- Collation;
- Comando Exec;
- Comando Union;
- Comando Union All;
- Comando Create Table;
- Comando Alter Table;
- Common Table Expression;
- DBCC CheckPrimaryFile;
- DMV sys.dm_db_index_usage_stats;
- DMV sys.dm_os_buffer_descriptors;
- Índices Clustered e NonClustered;
- Option MaxRecursion;
- Plano de Execução;
- Querys consideradas pesadas;
- Tabela de sistema sys.allocation_units;
- Tabela de sistema sys.partitions;
- Tabela de sistema sys.indexes;
- Tabela e caracteres Unicode; e
- Recursividade.
— Short Script 1 – DBCC CheckPrimaryFile – Verificando se o arquivo realmente é um Primary File —
DBCC CheckPrimaryFile (‘C:\Bancos\Laboratorio.MDF’,0)
Go
— Short Script 2 – DBCC CheckPrimaryFile – Retornando o conjunto completo de informações associados ao Primary File que formam a estrutura do respectivo Banco de Dados —
DBCC CheckPrimaryFile (‘C:\Bancos\Laboratorio.MDF’,1)
Go
— Short Script 3 – DBCC CheckPrimaryFile – Retornando o nome do banco de dados, versão e collation relacionados ao Primary File —
DBCC CheckPrimaryFile (‘C:\Bancos\Laboratorio.MDF’,2)
Go
DBCC CheckPrimaryFile (‘C:\Bancos\Laboratorio.MDF’,3)
Go
— Short Script 6 – Observando a mudança de comportamento após a troca de Collation —
([id] [INT] NULL,
GO
GO
AS
BEGIN
SELECT a.id, a.author FROM dbo.Authors a
WHERE a.author = @author
END
GO
ALTER COLUMN author VARCHAR(50) COLLATE SQL_Latin1_General_CP437_BIN2 NULL
— Short Script 7 – Descobrindo o código Unicode de um caracter ou String —
DECLARE @n CHAR(10);
SET @n = N’Abc’;
SELECT UNICODE(@n);
Go
DECLARE @n NCHAR(10);
SET @n = N’??????????’;
SELECT UNICODE(@n);
Go
— Short Script 8 – Criando CTEs —
;With Exemplo1(Valor, Nome)
As
(
Select 1, ‘Pedro Galvão’ As Nome
)
Select * from Exemplo1
Go
;With Exemplo2(Valor)
As
( Select 10
Union
Select 50
Union
Select 8
Union
Select 10 + 2
)
Select Valor = (Select Max(valor) From Exemplo2) + (Select Sum(Valor) From Exemplo2)
Go
;With ConcatenarNomes(nome)
AS
( SELECT Nome = CONVERT(Varchar(4000),’Pedro Antonio’)
UNION ALL
SELECT CONVERT(Varchar(4000),nome + ‘ Galvão Junior’) FROM ConcatenarNomes
WHERE LEN(nome) < 30
)
SELECT Nome FROM ConcatenarNomes
Go
;With CTENumerosPares(Numero)
As
( Select 0 As Numero
Union All
Select Numero + 2 As Numero From CTENumerosPares
Where Numero < 100
)
Select Numero From CTENumerosPares
Go
;With CTENumerosSequenciais(Numero)
AS
( SELECT 1 AS Numero
UNION ALL
SELECT Numero + 1 AS num FROM CTENumerosSequenciais
WHERE Numero < 1000
)
OPTION (MAXRECURSION 0)
Go
COUNT(*)/128.0000 MB,
name AS BaseTableName,
IndexName,
IndexTypeDesc
FROM sys.dm_os_buffer_descriptors AS bd
INNER JOIN (SELECT s_obj.name,
s_obj.index_id,
s_obj.allocation_unit_id,
s_obj.OBJECT_ID,
i.name IndexName,
i.type_desc IndexTypeDesc
FROM
(SELECT OBJECT_NAME(OBJECT_ID) AS name,
index_id,
allocation_unit_id,
OBJECT_ID
FROM sys.allocation_units AS au INNER JOIN sys.partitions AS p
ON au.container_id = p.hobt_id
AND (au.TYPE = 1 OR au.TYPE = 3)
UNION ALL
SELECT OBJECT_NAME(OBJECT_ID) AS name,
index_id,
allocation_unit_id,
OBJECT_ID
FROM sys.allocation_units AS au INNER JOIN sys.partitions AS p
ON au.container_id = p.partition_id
AND au.TYPE = 2
) AS s_obj LEFT JOIN sys.indexes i
ON i.index_id = s_obj.index_id
AND i.OBJECT_ID = s_obj.OBJECT_ID
) AS obj ON bd.allocation_unit_id = obj.allocation_unit_id
WHERE database_id = DB_ID()
and name not like ‘sys%’
and IndexName <> ‘null’
GROUP BY name, index_id, IndexName, IndexTypeDesc
ORDER BY cached_pages_count DESC;
Chegamos ao final de mais um post, fique a vontade para compartilhar este conteúdo com seus contatos e redes sociais, contribua também enviando dicas, sugestões, dúvidas, críticas, enfim participe e ajude a melhorar cada vez mais esta sessão.
Mais uma vez obrigado por sua visita, nos encontramos em breve em mais um post da sessão Short Scripts.
Uma ótima semana, abraços.
6 comentários em “Short Scripts – Junho 2016”
Os comentários estão encerrados.