sexta-feira, 6 de julho de 2018

Eventos de auto-growth dos datafiles

Quando os datafiles estão configurados com propriedade "auto-growth" ou auto-crescimento, é possível identificar quando os eventos de expansão do arquivo ocorrem com o script abaixo.

Quando a quantidade de eventos for muito grande, pode gerar fila de espera de I/O, e a sugestão é colocar um tamanho maior como parâmetro de crescimento.

Como recomendação, não utilizar percentuais, mas sim valores fixos, como 64MB por exemplo.

declare @curr_tracefilename varchar(500);
declare @base_tracefilename varchar(500);
declare @indx int;

select @curr_tracefilename = path from sys.traces where is_default = 1;
set @curr_tracefilename = reverse(@curr_tracefilename);
select @indx  = patindex('%\%', @curr_tracefilename) ;
set @curr_tracefilename = reverse(@curr_tracefilename) ;
set @base_tracefilename = left( @curr_tracefilename,len(@curr_tracefilename) - @indx) + '\log.trc'; 
select
servername as [sql_instance],
databasename as [database_name],
filename as [logical_file_name],
(duration/1000) as [duration_ms],
convert(varchar(50),starttime, 100) as [start_time],
cast((integerdata*8.0/1024) as decimal(19,2)) as [change_in_size_mb]
from ::fn_trace_gettable(@base_tracefilename, default)
where eventclass between 92 and 95
order by databasename, starttime desc;
go

Abcs!

quarta-feira, 9 de agosto de 2017

Tempo de execucao de um comando no Management Studio x JOBs

Olá,

uma situação não muito comum, mas que pode arruinar com o plano de execução das suas Queries, principalmente Stored Procedures, é sobre a utilização das opções de usuário no início do bloco de execução na aplicação-cliente.

Cenário:
- no Management Studio, executa-se uma Procedure, ou um SELECT em uma VIEW, e o código executa rapidamente;
- na aplicação-cliente (web ou desktop), ou até mesmo via JOB, a query leva horas pra terminar.

A lista de opções da sessão do usuário (USER OPTIONS) abaixo pode causar este comportamento:

ANSI_NULLS
ANSI_PADDING
ANSI_WARNINGS
ARITHABORT
CONCAT_NULL_YIELDS_NULL
NUMERIC_ROUNDABORT
QUOTED_IDENTIFIER

Não cabe aqui explicar sobre o que cada opção significa, isto você encontra aqui:
https://technet.microsoft.com/pt-br/library/ms176031(v=sql.105).aspx

A questão levantada é a diferença no tempo de execução entre as várias aplicações-cliente que irão utilizar o código ou rotina criada.

Tais opções afetam os resultados e principalmente, o plano de execução criado para sua query originalmente.

Desta forma, sugere-se utilizar o mesmo conjunto de opções utilizadas na criação do objeto (procedure por exemplo) na chamada da sua aplicação-cliente.

Exemplo:
SET ANSI_NULLS ON
SET ANSI_PADDING ON
EXEC sp_minha_procedure

Como na maioria dos casos a falta dessas opções SET não causa nenhum problema, acabamos esquecendo da boa prática. Mas em algumas situações, pode fazer toda a diferença.

Todos os detalhes aqui:
https://technet.microsoft.com/pt-br/library/ms175088(v=sql.105).aspx

Boa sorte!

quinta-feira, 13 de julho de 2017

quinta-feira, 11 de maio de 2017

SQL Workbooks - Tips from Kendra Little

I found this Youtube Channel from DBA Kendra Little.

SQL Workbooks - https://www.youtube.com/channel/UCrJ8WLrVoKxL94mKv2akxTA

There's a lot of very rich and good information about SQL Server.

She also talks about career and other stuff, like this one:

How Does a DBA Build Confidence After Making Mistakes?
https://www.youtube.com/watch?v=aKQWoNJ3jPw

You'll find it very helpful !

Her Twitter handle: @Kendra_Little

Greetings!

quinta-feira, 13 de abril de 2017

Diego Nogare - Azure Machine Learning

Veja esta sessão interessantíssima do nosso amigo Diego Nogare, falando sobre o mais novo recurso da plataforma Azure.

Azure Machine Learning permite criar modelos preditivos utilizando qualquer fonte de dados.



Twitter: @DiegoNogare

Abcs!

Vitor Fava - SQL Server com Docker

Segue dica de video super interessante do nosso amigo Vitor Fava, falando sobre o uso do SQL Server na plataforma Docker.

Essa sessão conta com a participação especial do especialista Andre Kamman.
Twitter: @AndreKamman

Video: https://www.youtube.com/watch?v=MzXomsqqwxI

Blog: https://vfava.wordpress.com/

Twitter: @sqlservermaniac

Abcs!

sexta-feira, 7 de outubro de 2016

SQL Server - Trace Flags

As Trace Flags alteram o comportamento da instância, database ou sessão de usuário, quanto ativas.

Elas podem ser resultado de um "workaround" (contorno/solução) de algum "bug" conhecido, ou terem sido recomendadas pelo suporte da Microsoft, ou simplesmente porque o DBA/programador estão fazendo alguma experimentação no banco de dados.

Em todo o caso, elas só deveria estar ativas por algum motivo bem específico e devidamente fundamentado.

Faz parte do check-list do DBA verificar quais flags estão ativas, principalmente em um ambiente desconhecido, para apurar possíveis causas de problemas.

Isto pode ser feito executando-se o comando abaixo:

DBCC TRACESTATUS

A lista completa (e em crescimento) de trace flags pode ser encontrada aqui, num belíssimo trabalho de compilação da descrição e fonte de referência para as mesmas:

http://www.sqlservice.se/updated-microsoft-sql-server-trace-flag-list/

Abcs!

quarta-feira, 21 de setembro de 2016

Blog do Dirceu Resende

Recomendo o Blog de de desenvolvimento e SQL Server do nosso amigo Dirceu Resende:

http://www.dirceuresende.com/blog/

Abcs!

Windows 10 - Erro ao acessar compartilhamento no Linux

Depois destas últimas atualizações do Windows 10, perdi o acesso a um compartilhamento no Samba, segue abaixo dicas pra resolução do problema:

https://techjourney.net/cannot-connect-to-cifs-smb-samba-network-shares-shared-folders-in-windows-10/

Abcs!

segunda-feira, 1 de agosto de 2016

Big Data e Data Science: mini-curso gratuito de Diego Nogare

Nosso colega e MVP Data Platform, Diego Nogare, montou um mini-curso muito bacana, falando mais sobre os conceitos envolvendo o assunto do momento: Big Data.

Sao 12 aulas, segue abaixo link da primeira aula.

Fonte:
http://www.datascienceinstitute.com.br/mini-curso-introducao-a-big-data-e-data-science-aula-1/

Aproveite!

sexta-feira, 29 de julho de 2016

Terça de Dados - Canal DBA Brasil

Estou acompanhando um blog DBA Brasil, criado pelo amigo DBA Fábio Cotrim e alguns amigos:
http://www.dbabr.com.br/blog/

Achei interessante uma seção chamada Terça de Dados:
http://www.dbabr.com.br/blog/index.php/category/tercasdedados/

Acompanhe também pelo YouTube:
https://www.youtube.com/channel/UCAZxnrkOD_PTrfMK3-SbCLA/videos

Recomendo!

quarta-feira, 27 de julho de 2016

Management Studio 2016

Última versão do Management Studio, atualizada em 14/07/2016, com uma série de bug fixes.

Pode ser utilizado desde a versão 2008 até a versão 2016.

Link: https://msdn.microsoft.com/en-us/library/mt238290.aspx

terça-feira, 26 de julho de 2016

Propriedade do Database - Delayed Durability

A propriedade "delayed durability" do database muda a forma de gravação do log em disco.


Por padrão, a mesma está desligada (DISABLED), e o log é gravado em disco assim que possível, conforme a fila.

Quando esta opção é alterada para ALLOWED ou FORCED, a transação é marcada como gravada e o processo de gravação em disco é feito em background.

Fazendo um paralelo com o Oracle, trata-se da opção COMMIT WRITE... NOWAIT.

Neste momento, o banco está abrindo mão do "D" da regra ACID, e o banco pode se comportar de maneira inesperada, ficando inconsistente.

Em ambientes onde percebe-se o wait tipo WRITELOG, algum DBA pode recomendar que esta opção seja alterada, para resolver o gargalo do log de transações.

Eu preciso dizer que a alteração desta propriedade é extremamente desaconselhável.

Principalmente, se o seu sistema não tolera perda de dados (algum tolera ?)

Não digam que não avisei...

Mais informações:
http://sqlperformance.com/2014/04/io-subsystem/delayed-durability-in-sql-server-2014

domingo, 17 de julho de 2016

Autodidata

Olá,

se você é como eu, um autodidata nato, você não pode deixar de conferir o vasto conteúdo disponível nos sites abaixo, voltado para área de tecnologia:

EDX: https://www.edx.org/

Os cursos são gratuitos, com atividades semanais, e somente o certificado é pago, opcionalmente.

Uma parceria com diversas instituições, como MIT, Harvard, Berkeley, entre outras, portanto, o conteúdo é de altíssima qualidade.

O outro site é da própria Microsoft, com grupos de estudo para quem está se preparando para algum exame de certificação, com muito material disponível e muitos vídeos.

Born to Learn: https://borntolearn.mslearn.net/

Vão faltar horas no seu dia, aproveite !

quinta-feira, 14 de julho de 2016

Desastre - RPO e RTO

Créditos da Imagem: http://www.hill2dot0.com


No planejamento da estratégia de HA/DR (alta disponibilidade/recuperação de desastres), é muito importante definir os níveis de SLA com seu gestor e/ou cliente, aceitáveis para o negócio.

Se você ainda não definiu uma estratégia de BACKUP das informações, este é o momento.
Num evento de desastre, é inútil lamentar...

Os conceitos aqui apresentados não servem apenas para SQL Server, mas sim, se aplicam a todos os bancos de dados, e se extendem à todas as informações relevantes para o negócio.

Para simplificar então:

- RPO significa o PONTO de recuperação das informações.
Em outras palavras, em que momento as informações do backup estão 100% aproveitáveis.

- RTO significa o TEMPO de recuperação das informações.
Em outras palavras, quanto tempo vou levar para disponibilizar a aplicação para o usuário final, com todas as informações intactas.

Aqui há uma discussão sobre a Matriz de Responsabilidades e SLA, pois vários fornecedores podem estar envolvidos no processo de recuperação do ambiente, e cada um responde pela sua parte, e a sua atividade vai depender da atividade anterior.

Como exemplo, o sistema depende do banco de dados, que depende do sistema operacional, que depende de um componente (disco por exemplo), que depende do fabricante, e assim por diante.

No entanto, cabe a cada um dos envolvidos reduzir ao máximo os tempos destes 2 indicadores.

No caso de banco de dados, dependendo do tamanho total dos arquivos a serem recuperados, há que se balancear os tempos destes 2 indicadores.

Você pode ter que abrir mão de um em relação ao outro, de acordo com as necessidades do negócio.

Na sua estratégia de backup, considere a plataforma Azure da Microsoft, por exemplo, que pode lhe ajudar com uma solução de HA (alta disponibilidade).

Mais informações no blog do Vitor Fava:
https://vfava.wordpress.com/2013/08/20/dicas-para-dba-iniciante-estrategia-de-backup/

Mais informações no blog do Thomas LaRock:
http://thomaslarock.com/2016/07/survive-any-database-disaster/

Abcs!

quarta-feira, 13 de julho de 2016

Excellent article from Kimberly about Isolation Levels

If you want to understand better what are the main Isolation Levels available on SQL Server, this article from Kimberly Tripp (SQL Server MVP) is a must.

http://www.sqlskills.com/blogs/kimberly/locking-isolation-and-read-consistency/

It discusses about locking strategies and how to avoid blocking, one of the biggest issues developers have to deal it when designing applications for databases in general.

Have a good reading!

terça-feira, 12 de julho de 2016

SQL Server Video Archive

98 vídeos sobre diversos tópicos ref. SQL Server:

- Integration Services;
- Master Data Services;
- PowerPivot for Excel;
- Data Quality Services;
- Data Mining;
- Analysis Services;
- Microsoft Certified Master;
- e muito mais!

Só baixar e assistir, em 2 formatos disponíveis (WMV e MP4).

Imperdível!

Fonte: https://technet.microsoft.com/en-us/dn912438

segunda-feira, 11 de julho de 2016

SQL Server 2014 SP2 Liberado

Liberado novo Service Pack do SQL Server 2014, com uma série de correções e novidades.

Download: https://support.microsoft.com/en-us/kb/3171021

Novidade: Comando DBCC CLONEDATABASE

Utilizado para criar uma cópia da estrutura (schema) e das estatísticas de um database, para fins de análise de performance.

Como utilizar: https://support.microsoft.com/en-us/kb/3177838

Fonte: http://sqlserverupdates.com/news/sql-server-2014-sp2-released/

Em detalhes:
http://www.webtelligence-itc.net/webtelligence-itc-blog/2016/7/13/sql-server-2014-sp2-is-released-huge-improvements.html

Características disponíveis somente na versão Enterprise

Principais características disponíveis somente na versão Enterprise Edition (EE) do SQL Server:

- Always Encrypted: criptografia de colunas com informação sensitiva, através de chaves;

- Transparent Data Encryption (TDE): proteção de dados com criptografia (backups e arquivos de dados);

- AlwaysOn Availability Groups: solução HA/DR (Alta Disponibilidade e Disaster Recovery);

- Change Data Capture: log/auditoria de alterações em tabelas;

- Column Store Index: tipo de índice especial de coluna, voltado para Data Warehouse;

- Data Compression: compressão de dados de linhas e páginas de tabelas;

- Database Snapshot: backup instantâneo do database, para fins de relatórios históricos;

- In Memory OLTP: opção para colocar vários objetos diretamente em memória;

- Master Data Services Database: sistema de organização e padronização de dados de múltiplas fontes;

- Online Indexing: "rebuild" de índices sem gerar bloqueios (locks) para a aplicação;

- Oracle Publishing: permite utilizar o Oracle como publicador de uma replicação SQL Server;

- Mirrored Backups: backups espelhados para 2 locais, em paralelo;

- NUMA Aware: fácil integração com sistemas de arquitetura NUMA;

- Resource Governor: controle de CPU e Memória por usuário ou grupo;

- R Server: serviço fornecedor utilizado pela linguagem "R";

- Table and Index Partitioning: particionamento de tabelas e índices.

Fonte: https://msdn.microsoft.com/en-us/library/cc645993.aspx

sexta-feira, 8 de julho de 2016

Exames para Certificação SQL Server 2016

Segue informações sobre os exames (atualizados) para Certificação no SQL Server 2016:

https://borntolearn.mslearn.net/b/weblog/posts/certification-update-sql-2016

Abcs!