Dicas sobre desenvolvimento de software, gestão e tributações

Rede Social

30 de junho de 2020

Quais os bancos de dados mais utilizados 2020


O db-engines.com divulga uma lista sempre bem atualizada dos bancos de dados mais utilizados, é interessante ver como estão se saindo no mercado os bancos de dados que você utiliza, tem conhecimento ou pretende estudar. Ele mostra um comparativo entre datas para ver se há uma evolução ou se o mesmo está sendo menos utilizado mundo a fora.

Como podemos ver na lista os 3 maiores ainda continuam e continuarão por um tempo mandando no mercado (Oracle, MySql e Sql Server), mas é interessante ver por exemplo como o MongoDB vem se mantendo na quinta posição, sendo o de maior posição entre os bancos de dados não relacionais.

Caso tenha interesse temos vários artigos relacionados ao MongoDB, vale a pena dar uma olhada.
Além é claro das postagens sobre SQL Server.

Em contrapartida temos o Acces caindo a cada nova temporada enquanto SQLite, Cassandra e os Azure Sql database e Cosmos vem subindo.

Comparativo entre bancos de dados

Ler

23 de junho de 2020

Sql: Limpeza no HD (LogFile)


Uma boa forma de conseguir espaço no HD é fazer uma limpeza nos arquivos de log do SQL Server, isso acontece muito com os desenvolvedores que tem banco de dados de testes e ficam executando muitos comandos o tempo todo.
O arquivo de log nesses casos vai inflando e muitas vezes não é tão útil porque foram apenas testes então reduzir a quantidade de informações dele não representará grandes perdas.

Lembrando que isso pode ser aplicado à qualquer banco, não apenas de testes, mas tenha cuidado o arquivo de log tem informações importantes caso precise por exemplo executar um procedimento de manutenção ou análise de dados.

Primeiro vamos ver qual o tamanho do arquivo de log dos bancos de dados que você tem.

WITH FS
AS
(
    SELECT DATABASE_ID, TYPE, SIZE * 8.0 / 1024 SIZE, physical_name
    FROM SYS.MASTER_FILES
)
SELECT
    NAME AS NOMEDOBANCO,
    (SELECT SUM(SIZE) FROM FS WHERE TYPE = 0 AND FS.DATABASE_ID = DB.DATABASE_ID) DATAFILESIZEMB,
    (SELECT SUM(SIZE) FROM FS WHERE TYPE = 1 AND FS.DATABASE_ID = DB.DATABASE_ID) LOGFILESIZEMB,
 (SELECT PHYSICAL_NAME FROM FS WHERE TYPE = 1 AND FS.DATABASE_ID = DB.DATABASE_ID)
FROM SYS.DATABASES DB

Esse comando vai mostrar o nome do banco, o tamanho do banco, o tamanho do log e o local do arquivo ldf.

Compare o tamanho do banco com o tamanho do log para decidir qual banco vai querer executar o procedimento. Muitas vezes os arquivos de log ficam bem maiores que o próprio banco.

USE MEU_BANCO_DE_DADOS

ALTER DATABASE MEU_BANCO_DE_DADOS
SET RECOVERY SIMPLE;
GO

DECLARE @NOMELOG varchar(500) = (SELECT DISTINCT name FROM sys.master_files WHERE type = 1 AND name LIKE '%MEU_BANCO_DE_DADOS%')
DBCC SHRINKFILE (@NOMELOG, 100);
GO

ALTER DATABASE MEU_BANCO_DE_DADOS
SET RECOVERY FULL;
GO

Esse comando vai limpar o arquivo de log até chegar a próximo dos 100 MB por causa desse comando SHRINKFILE (@NOMELOG, 100); caso queira outro valor é só trocar de 100 para o que desejar.
Onde estiver MEU_BANCO_DE_DADOS substitua pelo banco de dados que você escolheu.
Ler

16 de junho de 2020

Sql: Having como funciona.


Having é a condição que se aplica ao resultado de um group by. Ela pode ser usada em conjunto com o where e tem uma função semelhante a ele, mas servindo apenas para resultados de um group. É muito útil, mas algumas vezes esquecida pelos programadores.

Vamos a um exemplo:

SELECT X, SUM(Y) 
FROM TAB 
GROUP BY X 
HAVING SUM(Y) >= 10

Neste caso estou selecionando a coluna X e realizando uma soma da coluna Y, essa soma é realizada agrupando os X que são iguais, mas eu só quero visualizar os X que tem a soma de Y maior ou igual a 10.
Mas vamos para um exemplo mais real.

SELECT CPF, COUNT(*) 
FROM VENDAS
WHERE YEAR(DATA_VENDA) = 2020 
GROUP BY CPF 
HAVING COUNT(*) > 100

No caso acima quero saber todos os CPFs de clientes que realizaram compras na minha loja no ano de 2020, para isso eu seleciono o CPF e uso o count para contar quantas vendas foram para cada cliente, por isso agrupo por CPF, mas imagine que quero ver apenas os clientes mais fiéis, que fizeram mais de 100 compras, tendo o count e o group by fica simples, é só adicionar o having maior que 100 que no caso uma tradução possível seria tendo, quero uma contagem das vendas agrupadas por cliente, mas mostrando apenas clientes tendo mais que 100 compras.

Tradução literal do comando:
Selecione o CFP e contagem de linhas
da tabela de vendas
quando a data da venda estiver no ano de 2020
agrupando por CPF
tendo a contagem de linhas valor superior a 100.



Ler

9 de junho de 2020

Git: Como clonar (baixar) um repositório remoto para sua máquina


Para copiar os arquivos de um repositório remoto para a sua máquina é só usar o comando clone:
g clone git@github.com:repositorioRemoto.git meuRepositorioNovo
onde git@github.com:repositorioRemoto.git é o repositório que você quer baixar e meuRepositorioNovo é o nome do repositório na sua máquina.

Lembrando que o clone só serve para repositórios onde você tem permissão para controlar, caso você use o clone para um repositório que não seja seu, você vai conseguir baixar, mas não vai conseguir subir alterações para ele.
Ler

2 de junho de 2020

Git: Como enviar alterações para o repositório remoto (push)


git commit -am "DescricaoDaMinhaAlteracao"
Isso faz com que seja apenas comitada (confirmada localmente) a alteração, após isso é necessário enviar para o servidor para isso usamos:

git push meuRepositorio master
O comando acima envia minhas alterações para o repositório de nome "meuRepositorio" no brach "master", caso você esteja querendo enviar para outro branch é só colocar o nome dele no lugar do master.
Ler