Conteúdo do cotidiano e gratuito de tecnologia em Banco de dados, Servidores Windows, Linux, BSD e Desenvolvimento em PL/SQL.
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.
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 ])parametro1tipo_dado1(Qualquer
tipo válido do mysql(varchar, char, int, date), [tipo_parametro2(Valores
possíveis: [ IN | OUT
| INOUT ])parametro2tipo_dado2(Qualquer
tipo válido do mysql(varchar, char, int, date)])BEGININSTRUCOES 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)BEGININSERT 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)BEGINDELETE 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)BEGINUPDATE tegenero SET NmGenero = strNmGenero, FgStatus = intFgStatusWHERE 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
[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;
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;
Assinar:
Postagens (Atom)


