Category Archives: Scripts

Visualizing the content of encrypted stored procedures

Probably you were a bit curious about it and decided to click here, right? This is a very recurrent question on Microsoft forums, where people who maybe by mistake encrypted all of the stored procedures, or maybe you support a 3rd party application and there is an particular stored procedure killing the performance of your server and you just wanna know what the same is doing?

Independent of what you want to do, let me show you here how can you manage to see the content of an encrypted procedure. Read the rest of this entry

Removing Databases from Availability Groups with Powershell

Those days at work I had to remove a bunch of databases from the Availability Groups and later drop them from the primary and secondary replicas. I know I could do the click, click and drop thing, but why not PowerShell? Read the rest of this entry

Synchronize Files and Folders using Powershell

Hello everyone!

Last week I was helping an Application Admin to Synchronize files and folders between Source and Destination Servers. The challenge was because some folders had really long hierarchies, so you could imagine something like this.

image

I would say that doing this for some files it is really ok, but for my case we are talking about of 10GB of data and around 4K folders in the root level. Basically, this was the solution that I was able to come up.
The script in in the Github link below.
Read the rest of this entry

My Lightining Talk at SQL Saturday Vienna 2018

SQLSat679_Speaking_600x300_02

Hello everyone!

I just wanted to share that I will be presenting a Lightining Talk at SQL Saturday 679 in Vienna, Austria. I will have 10 minutes to present the following session.

Title: My 5 favorite Powershell Commands!

So, if you are planning to be in Vienna for the SQL Saturday, make sure to register yourself, as there are only a few spots available. Also, if you are a DBA, I would say that you really should be attending my Lightining Talk, because the commands that I am gonna show you will save your life.. or at least make it easier.

Also, look at the Event Agenda, as there will be many other sessions in all areas of the Data Platform world.

http://www.sqlsaturday.com/679/EventHome.aspx

See you in Vienna!

SQL Saturday 689 – Prague – Scripts and Slides

Hi Everyone,

First of all, I want to thank everyone at my session at SQL Saturday 689 in Prague this last weekend. It was a tremendous pleasure for me to present and share a bit of what I know with all of you.

I also want to say THANK YOU to the Czech BI & SQL Pass User Group for putting this amazing event to the community, I know how much work and effort has to be done to have such a great event. You treated not only myself but all the speakers so well, so thanks again for having me! You guys are great!

I also want to say THANK YOU to the Sponsors, with all your support the event was just awesome!

As I promised during my presentation, I would write this post to share the link to where you can download most of the resources used by myself during the presentation.

https://github.com/marcosfreccia/sql-saturday-689-prague

I would like to also ask you a bit of your time to fill up the session evaluation. This means a lot to all the speakers. Doing that, it helps all of us speakers to improve our presentation, subjects, demos and etc.. Please, please, please!! Do it! The link is below.

https://goo.gl/6ZTfH6

Thanks again and see you in 2018!

Regards,
Marcos Freccia
Data Platform MVP

Deletando informações em batches –

Olá pessoal,

Quando trabalhamos bases de dados muito grandes e criticas é normal que alguma forma de purge (expurgo) seja feita no banco de dados, é melhor para a aplicação e também para o DBA. Porem uma grande preocupação quando vamos falar sobre deletar uma grande quantidade de dados é não prejudicar nosso arquivo Transaction Log para que o mesmo não estoure o espaço em disco, como também não bloqueie nossa aplicação que esta tentando inserir ou atualizar dados na base. Alem de tudo isso nos preocupamos com performance, pois uma grande operação de delete poderia impactar todo o nosso ambiente.

Pensando nisso criei um script bem simples, mas que pode te ajudar no momento de realizar esse expurgo da base de dados. Read the rest of this entry

Recycle ErrorLog baseado no tamanho do arquivo

Olá pessoal,

Estou aqui para divulgar um script que criei, onde baseado no tamanho do arquivo do ErrorLog realizamos ou não a limpeza do mesmo. O mesmo foi criado em PowerShell e é bastante simples, pois meu conhecimento nele é relativamente baixo. No meu script o tamanho do arquivo foi  setado para 250MB, mas você pode edita-lo para acomodar a sua necessidade.

Não vou colar o script aqui na postagem, mas sim o link para o meu OneDrive onde o mesmo se encontra.

http://1drv.ms/1B02XA0

Para executar o script é bastante simples, bastando apenas criar um job no SQL Server Agent onde o step deverá executar código PowerShell. Você pode consultar essa documentação abaixo para a criação do Job.

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

 

Espero que gostem do script, e se alguem não estiver conseguindo realizar o download do arquivo, deixe um comentário que eu poderei ajustar.

 

Abraços,
Marcos Freccia
SQL Server MVP

Procurando por não sysadmin job owners

Olá pessoal,

Na semana passada tive uma demanda para retornar uma lista de Jobs onde os owners não estavam na role sysadmin, podendo trazer assim algum risco para a execução do mesmo. Para não passar de job a job procurando pela informação, criei um script bastante simples para resolver esse problema. Espero que gostem!

select Name,SUSER_SNAME(owner_sid) as JobOwner
from msdb.dbo.sysjobs
where enabled = 1
and IS_SRVROLEMEMBER(‘sysadmin’,SUSER_SNAME(owner_sid)) <> 1

O resultado retornado é este logo abaixo. Assim, vocês podem analisar de uma maneira facil e rápida, se devemos trocar o Job Owner do job em questão ou não.

image

 

Espero que tenham gostado.

Marcos Freccia
SQL Server MVP

O que você precisa saber sobre sp_estimate_data_compression_savings

Olá pessoal,

Recentemente tenho trabalhado em alguns scripts que utilizam a sp_estimate_data_compression_savings para verificar possíveis ganhos com compressão. Acontece que utilizar essa procedure em grandes ambientes e até mesmo com diferentes aplicações, traz consigo uma série de implicações que você pode ter no momento de executá-la.

1) Existe um bug ja registado aqui onde no momento da verificação de uma possível compressão, qualquer indice criado em uma coluna do tipo timestamp faz com que a procedure seja abortada e encerre sua execução. O problema não impede que você faça a compressão da mesma, apenas te impede de executar a procedure para estimar. Até o momento o problema foi corrigido apenas para SQL 2012.

2) Outro problema encontrado, é que não é possivel realizar compressão em indices que contenham colunas do tipo SPARSE. Então se a procedure sp_estimate_data_compression_savings também interrompe a sua execução quando encontrar esse problema, e isso se extende no momento que você tenta realizar o rebuild do indice para então realizar a compressão.

Ainda estou enfrentando alguns outros problemas, que estou verificando o comportamento. Então assim que encontrar, prometo atualizar esse post.

Em um futuro proximo, posso também ensinar como criar uma solução de reporting para compressão.

Espero que tenham gostado e até a proxima,
Marcos Freccia

Script – Obtendo Max Server Memory e Total Server Memory

Pessoal,

Compartilhando apenas um pequeno script que me ajudou a pegar de alguns servidores o valor configurado no max server memory e também recuperar o total de memoria que o servidor possui. Ele faz a leitura da procedure sp_configure e também da DMV sys.dm_os_sys_info.

O script funciona para SQL 2005, 2008 e 2008 R2. Para funcionar em SQL 2012 e 2014, você precisa fazer uma pequena modificação que eu mostro nesse link abaixo, onde vocês possam realizar o download do mesmo.

http://gallery.technet.microsoft.com/scriptcenter/Get-Max-Server-Memory-and-c092066e

Espero que seja util para alguem.

Abraços,
Marcos Freccia