Microsoft SQL Server: Detectando Índices Fragmentados – Melhorando a Performance

Assim como o disco, fisicamente, torna-se fragmentado; também acontece com toda organização lógica que venha fazer uso desta mídia. Tablespaces, tabelas, e, índices. Todos se fragmentam. Faz parte do negócio. É regra do jogo, se quiser brincar, aceite-as. A fragmentação (não importa o objeto de banco de dados em questão) acontecerá mais, ou menos, dependendo do tipo de operação do banco de dados.

Bancos de dados transacionais (OLTP) tendem a se fragmentar muito muito mais do bancos de dados de consulta massiva (OLAP/DW). Pelo menos, se sustentados da maneira correta.

Quanto mais escrita, maiores as probabilidades de fragmentação. A modelagem podem afetar, também, a fragmentação.

Claro que, tudo que está fragmentado está bagunçado. E, tudo que está bagunçado não vai bem. No caso de banco de dados, isto significa uma redução de performance.

O efeito colateral mais esperado da desfragmentação é o aumento de performance, ou, se preferir: recuperação da performance perdida. Neste artigo, trataremos, puramente, da fragmentação de índices.

Mas, para os loucos por um código pronto, vamos ao que interessa: Fragmentação de Índices no Microsoft SQL Server. Lidar com fragmentação, envolve duas etapas básicas: identificação e ação.

Continue lendo Microsoft SQL Server: Detectando Índices Fragmentados – Melhorando a Performance

Novo MySQL 8.0 lançado!

Todos os anos novos produtos são lançados. Na área de TI não é diferente. Já vi muita coisa boa ser lançada, reeditada, copiada… Mas, também já vi muito lixo tecnológico e “emblomation” de marketing. Nestes 34 anos de TI, já muita coisa. No mundo de banco de dados não é diferente.

O MySQL escorregou em alguns lançamentos. Mas, não é o caso desta versão 8.0 que traz algumas significativas melhorias. Na minha opinião, o que realmente conta:

Dicionário de Dados: Quem tem muitos objetos em sua instância vai entender o do que estou falando. Tenho clientes com mais de 3 milhões de objetos, e, não é divertido dar um simples SELECT no (DES)INFORMATION_SCHEMA. Travamento de instância, lentidão, LOCK (YES, LOCKS!). O novo dicionário de dados, chega em boa hora, e, parece resolver este problema.

ROLES! Nada faz mais sentido do que agrupar um monte de papéis e atribuir estes papéis a um determinado usuário, ao invés da eterna chatice de ficar atribuindo um-a-um cada privilégio de cada sujeito. Os mais malas-sem-alça, certamente, já tinha criado uma PROC para copiar privilégios. Mas, pára! Estamos nos século 21, estava na hora!

Índices invisíveis: Não entendi? Para que eu quero um índice que nem o MySQL enxerga, e, não usa em nenhuma query. Ah! Pequeno Padawan, eu explico. Nunca “dropou” um índice de uma tabela gigante, se arrependeu, e, depois ficou assistindo toda uma temporada de GoT, enquanto, recriava o maldito índice? Essa é a vantagem dos índices invisíveis. Voce coloca um índice na geladeira, se ninguém deu falta dele, após algum tempo, voce capa ele fora.

Continue lendo Novo MySQL 8.0 lançado!

Tentando (re)Instalar seu OS X e não consegue?

Tudo deu errado 🙂 e voce precisa reinstalar seu sistema operacional MAC OSX (qualquer versão). Acredite, tentei isso com OS X Lion, OS X Mountain Lion, OS X Snow Leopard, OS X Mavericks, e, até com OS X Yosemite.

Tentei resetar SMC e PRAM… Tudo indicava ser algum problema de disco, mas, não era.

Sintomas:

1/ Consigo entrar na tela de recuperação do MAC command + R

2/ Consigo utilizar o utilitário de disco e verificar que tudo está OK com meu disco

3/ Consigo iniciar a reinstalação do OS X de todas as maneiras possíveis (Menu de recuperação, Recuperação via Internet, via SuperDisk/DVD, via Internet)

NOTA: Não importa o meio que eu utilize para reiniciar a instalação do meu OS X, todas falham, e, apresentam o mesmo erro.

Continue lendo Tentando (re)Instalar seu OS X e não consegue?