sexta-feira, 27 de março de 2015

Instalando o Mongo como serviço:

Devemos executar a seguinte linha:

mongod --config "D:\mongo\config\mongod.conf" --install --serviceName "MongoDB"




Abaixo o nosso MongoDB já instalado como serviço.



Configurando o Mongo.


Precisaremos criar uma pasta "data\db" para armazenarmos nossos dados, uma pasta para o "log" e mais uma para o nosso arquivo de configuração. No exemplo abaixo vou criar as pastas e os arquivos na minha pasta "D:\mongo".

Segue abaixo os exemplos:

D:\mongo>md data\db
D:\mongo>md log
D:\mongo>echo " " > log\mongodb.log
D:\mongo>md config
D:\mongo>@echo off
echo dbpath=d:\mongo\data\db > config\mongod.conf
echo port=27017 >> config\mongod.conf
echo bind_ip=127.0.0.1 >> config\mongod.conf
echo logpath=d:\mongo\log\mongodb.log >> config\mongod.conf
echo logappend=true >> config\mongod.conf
@echo on



Deverá ficar como a imagem abaixo:




Após isso deveremos acessar a pasta "bin" e digitarmos o seguinte comando:
mongod --config <path do config> ex:
mongod --config d:\mongo\config\mongod.conf




Após isso digitamos "mongo", conforme imagem abaixo:




Pronto, já estamos com o nosso banco rodando, conforme imagem abaixo:



Instalando o mongo como serviço no windows[Link]

Instalando o MongoDB


Na página do Mongo temos a área de donwloads,  aqui baixamos a versão adequada para o nosso PC.

Após baixar iniciamos a instalação do Mongo.





Next




Selecionamos "Custom" para podermos indicar onde sera instalado o nosso banco.



Clicamos em "Browser" para selecionarmos o local mais adequado para o nosso Mongo.



Após escolher o local clicamos em "ok"

 


Depois install



Instalação em progresso.



E em "Finish"



Instalação concluída.

Configurando o Mongo[Link]

terça-feira, 17 de março de 2015

Identity - Campo auto incremento.

Criando uma tabela com um campo auto incremento:


create table veiculo(

id int identity(1,1) not null,

modelo varchar(50),

constraint pk_veiculo primary key clustered (id desc)

);


aqui informamos onde inicia nossa contagem e qual o valor que sera incrementado ao inserirmos uma informação.


Nesta linha "id int identity(1,1) not null," temos a informação que faz o controle do auto incremento, este trecho deve ser preenchido desta forma: "identity(inicio, incremento)".


Inserindo os dados na tabela.


insert into veiculo values('Palio');

insert into veiculo values('Prisma');

insert into veiculo values('Classic');



Podemos observar que não foi necessário incluirmos o valor do campo "id", esta campo é inserido automaticamente pois informamos isso na criação da nossa tabela.


Se realizarmos a consulta abaixo:


select * from veiculo


Teremos o seguinte resultado:



Com o resultado da consulta acima vemos que o campo "id" se inicia em 1 e vai incrementando mais 1 a cada nova inserção, a nossa consulta se inicia a partir do 3 porque o nosso índice foi criado de forma decrescente.


Como descobrir quais tabelas tem o "identity" ativo.


SELECT obj.name, obj.modify_date, c.is_identity FROM sys.columns c

join sys.objects obj on obj.object_id = c.object_id

where c.is_identity = 1

order by obj.name




sexta-feira, 13 de fevereiro de 2015

​Como saber o tamanho de uma tabela ou de um banco de dados?



​​

Usando o banco de testes AdventureWorks2012 executamos os seguintes comandos:

USE AdventureWorks2012;

EXEC sp_spaceused N'Person.Person';

Com este comando obtemos o resultado abaixo referente a tabela "Person.Person" do nosso banco de testes AdventureWorks2012.




EXEC sp_spaceused @updateusage = N'TRUE';

Com este comando obtemos o resultado abaixo referente ao nosso banco de testes AdventureWorks2012.


Fonte: MSDN


SELECT DB.NAME,( Sum(size) * 8 ) / 1024 AS Tamanho
FROM sys.databases DB
    INNER JOIN sys.master_files SM ON DB.database_id = SM.database_id
WHERE DB.NAME = 'AdventureWorks2012'
GROUP BY DB.NAME

Com esta consultas obtemos o resultado abaixo referente ao nosso banco de testes AdventureWorks2012.


quinta-feira, 12 de fevereiro de 2015

Função para transforma minutos em dias, horas e minutos.


Esta função retorna a quantidade de dias, horas e minutos a partir de uma quantidade de minutos(um valor inteiro), por exemplo se passarmos como parâmetro o valor 1500 receberemos de resultado "1d 1h 50m".

Para testarmos a função abaixo usamos a seguinte sintaxe:

SELECT [dbo].[IntToDayHourminute](1550)


Criando a função "IntToDayHourminute".

USE [meu_banco]
GO
/****** Object: UserDefinedFunction [dbo].[IntToDayHourminute] Script Date: 11/02/2015 21:00:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[IntToDayHourminute]
(
@Total int
)
RETURNS nvarchar(30)

AS
BEGIN
declare @Return nvarchar(20)
declare @Minuto int
declare @Hora int
declare @Dia int

set @Dia = case when @Total < 1440 then
0
else
(@Total / 1440)
end;

set @Total = case when @Dia = 0 then
@Total
else
@Total - (@Dia * 1440)
end;

set @Hora = case when @Total < 60 then
0
else
(@Total / 60)
end;

set @Total = case when @Hora = 0 then
@Total
else
@Total - (@hora * 60)
end;

set @Minuto = @Total

set @Return = cast(@dia as varchar(20)) + 'd ' + cast(@Hora as varchar(20)) + 'h ' + cast(@Minuto as varchar(20)) +'m'

return @Return
END