Páginas

segunda-feira, 21 de outubro de 2013

[MS SQL SERVER] - Fazendo backup pela linha de Comando


Bom pessoal, vou compartilhar aqui a forma de fazer backup no SQL Server pela linha de comando:

SQLCMD -SBDTESTE -Usa -Pteste -Q "BACKUP DATABASE [TESTE] TO DISK = 'F:\TESTE\Backup_teste.bak'"

SQLCMD é o utilitário de linha de comando do MS SQL Server.
No parâmetro -S é para informar o nome do servidor. no parâmetro -U é para informar o usuário que efetuará o backup. no parâmetro -P é para informar a senha do usuário. no parâmetro -Q é para informar a sintaxe utilizada para o backup do SQL Server.

Para efetuar a inicialização dos serviços de banco de dados MS SQL Server :

Iiniciando:
NET START MSSQLSERVER

Parando:
NET STOP MSSQLSERVER

Espero ajudar alguns desenvolvedores e iniciantes em MS SQL Server, para auxiliar no seu dia-a-dia.
Que a Graça e Paz estejam com todos.

[PL/MySQL] - Artigos de Estudo sobre PL/MySQL

Bom pessoal, venho compartilhar com a comunidade de MySQL alguns links de artigos sobre PL/MySQL. Segue abaixo:

https://www.dropbox.com/s/sl85h6atf4qk427/sp_mysql.zip
https://www.dropbox.com/s/hnuu2cqqtbjh4vg/sp_mysql_0.pdf
https://www.dropbox.com/s/7q359tc553jdnaj/Transaccao.doc 
https://www.dropbox.com/s/yetcp3b82vj4kpp/SQL.pdf

Espero ajudar, aqueles que estejam a procura de informações sobre a Linguagem de Programação utilizado no SGBD MySQL.Que a Graça e Paz estejam com todos.

[PL/MySQL] - Compreenda as STORE PROCEDURES no MySQL



 
No cenário atual de desenvolvimento estamos cada vez mais preocupados com alguns princípios: A menor escrita de código possível (evitar redundância ao máximo), a centralização da regra de negócio e validação para facilitar a manutenção do projeto, a simplicidade e legibilidade no desenvolvimento do código e para finalizar a menor interdependência de situações no código. Dentro da evolução do desenvolvimento existe uma fase onde partes das regras de negócios estavam localizadas no banco de dados, isto foi possível devido ao recurso da STORE PROCEDURE que são um conjunto de instruções SQL armazenado no servidor. Os dois maiores fatores negativos deste cenário são:
- É o maior poder para o DBA (que agora também fica com a função de programador),
- Aumento na utilização dos recursos no servidor.
ATENÇÃO: Não utilize STORE PROCEDURE para implantação de bibliotecas para serem utilizadas na sua programação por que isto é trabalho para as linguagens de programação, além do mais teria um custo elevado no desempenho de sua aplicação.
De acordo com o manual do MySQL você pode utilizar STORE PROCEDURES neste cenário:
a) Quando várias aplicações clientes são escritas em diferentes linguagens ou funcionam em diferentes plataformas, mas precisam realizar as mesmas operações de banco de dados.
b) Quando a segurança é prioritária. Bancos, por exemplo, usam stored procedures para todas as operações comuns. Isto fornece um ambiente consistente e seguro, e procedures podem assegurar que cada operação seja registrada de forma apropriada. Neste tipo de condiguração, aplicações e usuários não conseguiriam nenhuma acesso as tabelas do banco de dados diretamente, mas apenas podem executar stored procedures específicas.
Vale ressaltar que há um tempo a Microsoft encorajava o desenvolvimento de suas aplicações com STORE PROCEDURES devido ao esquema de segurança.
A STORE PROCEDURE está presente desde a versão 5 do MySQL e segue a sintaxe do SQL:2003 o mesmo utilizado pelo DB2 da IBM. Após esta explicação, voltemos ao projeto da locadora de DVD e vejamos na prática como implantamos STORE PROCEDURES.

Abaixo o DER que iremos trabalhar:
DER Locadora de DVD

Sintaxe de uma procedure:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE PROCEDURE NOME_DA_PROCEDURE
(
tipo_parametro1(Valores possíveis: [ IN | OUT | INOUT ])

parametro1
tipo_dado1(Qualquer tipo válido do mysql(varchar, char, int, date)
, [
tipo_parametro2(Valores possíveis: [ IN | OUT | INOUT ])
parametro2
tipo_dado2(Qualquer tipo válido do mysql(varchar, char, int, date)
]

)

BEGIN
INSTRUCOES SQL;
END

Tipos de Parâmetros:

a) IN => Parâmetro de entrada. É passado um valor que vai será utilizado no corpo da procedure;
b OUT =>Parâmetro de saída. Retorna um valor que pode fica armazenado na memória do servidor;
c) INOUT => Possui a funcionalidade de entrada e saída ao mesmo tempo.
Vamos fazer o procedimento de CRUD para a tabela tegenero (idGenero int(autoincremento), NmGenero, FgStatus smallint) da locadora:

Código de Inserção:

1
2
3
4
5
6
DELIMITER $$
CREATE PROCEDURE prInsereGenero (IN strNmGenero varchar(100), intFgStatus smallint)
BEGIN
INSERT INTO teGenero(NmGenero, FgStatus) VALUES (strNmGenero, intFgStatus);
END $$
DELIMITER ;

Código de exclusão:

1
2
3
4
5
6
DELIMITER $$
CREATE PROCEDURE prExcluiGenero (IN intidGenero int)
BEGIN
DELETE FROM tegenero WHERE idGenero = intidGenero;
END $$
DELIMITER ;

Código de Edição:

1
2
3
4
5
6
7
8
DELIMITER $$
CREATE PROCEDURE prEditaGenero (IN intIdGenero int, strNmGenero varchar(100), intFgStatus smallint)
BEGIN
UPDATE tegenero SET NmGenero = strNmGenero
, FgStatus = intFgStatus
WHERE idGenero = intIdGenero;
END $$
DELIMITER ;

Código da Chamada:

1
2
3
CALL prInsereGenero ('Teste A', 0);
CALL prEditaGenero (2, 'Teste B', 1);
CALL prExcluiGenero (1);

sexta-feira, 18 de outubro de 2013

[ORACLE] - VIEWS PARA TROBLESHOOTING E TUNNIG


[PL/SQL] - Procedimento para Atualização Manual de Estatísticas do Oracle

Procedimento para Atualização Manual de Estatísticas do Oracle:

BEGIN
FOR
rc IN (SELECT T.TABLE_NAME FROM USER_TABLES T)

LOOP
BEGIN
DBMS_STATS.UNLOCK_TABLE_STATS(USER, rc.table_name);
DBMS_STATS.DELETE_TABLE_STATS(USER, rc.table_name);
DBMS_STATS.GATHER_TABLE_STATS(USER, rc.table_name);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line('ERRO AO ATUALIZAR ESTATÍSTICA DO USUÁRIO: ' ||
USER || '.' || rc.table_name ||
' - ' || SQLERRM);
END;
END LOOP;
END;