segunda-feira, 29 de setembro de 2008

Artigo Nº 14: Performance em consultas com Stored Procedures

Diante das necessidades de alta performance em aplicações WEB, um elemento que auxilia neste processo são as Stores Procedures(SP), procedimentos executados diretamente pelo BD, diminuindo significativamente o tempo para manipulação dos dados.
Veremos um exemplo de utilização de cursores no Banco Firebird, cursores são normalmente utilizados para retornar mais de um registro em uma SP, entre outras funcionalidades.
Criando nossa Stored Procedure:
CREATE PROCEDURE SP_CLIENTES (
cep integer)
returns (
nome varchar(100),
endereco varchar(100))
as
begin
for select clientes.nome,clientes.endereco from clientes
where clientes.cep = :cep
into :nome, :endereco do

suspend;

end^


O uso do for/selec/do caracteriza o uso do cursor.

Após criada nossa SP, para chamá-la basta realizarmos um simples select passando o parâmetro:
select * from sp_clientes(98910000)
Para consultas pesadas no BD, as SPs são uma ótima alternativa para aumentar a performance.

Abraço e até a próxima.



PS: O post mais comentado do blog foi simplesmente excluído pelo nosso administrador...

PS2: Tudo bem, a gente sabe que o blog não trata desse assunto, foi mesmo só pra tirar um pouco com o Azuis..., faz parte tb...

Artigo Nº 13: Carregar Lista de Dados em C#

Bom, estou voltando com um artigo sobre gridview com DataSet em C#. Como já foi dito no décimo artigo que fala sobre performance comparando DataReader e DataSet, o DataSet se torna mais lucrativo quando se trata de performance. Bom, começando temos primeiramente que configurar uma conexão com o banco de dados, iremos usar o banco de dados SQLServer conectando através do driver de conexão com o Odbc.

Cria-se uma nova classe com o nome de BancoDados e dentro desta um objeto de conexão Odbc ficando assim.

public OdbcConnection sCon;
sCon = new OdbcConnection("Driver={SQL Native Client}; Server=crack\\sqlexpress; Database=prop; Uid=sa; Pwd=123456;");

Onde dentro dos parenteses seria a string de conexão no caso com SQL Server. Criado este objeto vamos criar duas funções, uma para abrir a conexão com o banco e outra para fechar a conexão com o banco. Vamos lá então. A primeira:

// Publica para ser chamada de qualquer lugar e VOID por que não retorna nada
public void Conecta()
{
try // Tratamento de Erros
{

if (sCon.State == 0)
// Se fechada a conexão, abre ela
{
sCon.Open(); // Abre a conexão
}
}
catch (Exception e)
{
throw new Exception("Não Conectou: " + e.Message);
}
}

Pois então esta feito a primeira agora a segunda:
// Já foi explicado antes o por que do public e do void
public void Desconecta()
{
try
{
sCon.Close(); // Fecha a conexão

}

catch (Exception e)

{

t
hrow new Exception("Erro: " + e.Message);
}
}

Bom, nossa primeira classe está pronta, agora vamos para a classe que retornará dados do banco de dados para uma GridView. Cria-se uma nova classe com o nome de usuarios. Nesta vamos criar uma function apenas.

// Publica e retorna um DataSet.
public DataSet Usuarios()
{

Bom, nossa primeira classe está pronta, agora vamos para a classe que retornará dados do banco de dados para uma GridView. Cria-se uma nova classe com o nome de usuarios. Nesta vamos criar uma function apenas.

// Publica e retorna um DataSet.

Muito bom, criamos as 2 classes que vamos utilizar. Cria-se uma nova página .aspx para que assim possamos buscar os dados com a nossa classe. Adicione nesta página aspx uma gridview e nomeie ela como desejar, aqui usaremos GVUsuarios como nome dela. Agora vamos no evento OnLoad da página aspx e lá vamos chamar a nossa classe.

// Define novamente uma variável para uma classe
usuarios User = new usuarios();
// Agora diz que o DataSource da GridView é o nosso DataSet
GVUsuarios.DataSource = User.Usuarios();
// Atualiza a tabela
GVUsuarios.DataBind();

Agora abaixo vocês podem ver o resultado final, mas é claro que vocês devem definir os campos que vocês querem trazer na GridView

Teclas de Atalho Delphi

F5: Adiciona um break-point na linha selecionada

Ctrl+F7: Executa a opção de debug Evaluate/Modify para verificar o conteúdo da variável selecionada em tempo de debug.

Ctrl+F5: Adiciona um Watch para a variável selecionada em tempo de debug.

Ctrl+Shift+F11: Chama as opções do projeto.

Ctrl+Shift+I: Indentar multiplas linhas de código de uma única vez em "n" espaços (conforme o que estiver especificado em Tools/Editor Options/General/Block Indent).

Ctrl+Shift+U
: Recuar indentação em "n" espaços (ídem acima).

Ctrl+Shift+0 a 9: Inserir um Bookmark no editor de código.

Ctrl+: troque n pelo número do Bookmark.

Ctrl+Shift+0: para desmarcar um Bookmark.

Alt+G: Ir para uma determinada linha.

Ctrl+Shift+Seta (cima/baixo): Intercala entre o cabeçalho da procedure/função e a implementação da mesma.

Ctrl+Shift+C: Complementacao de Classes.

Ctrl+Shift+Up: Vai para a seção interface.

Ctrl+Shift+Down: Vai para a seção implementation.

Ctrl+Mouse: Clique com o botão esquerdo do mouse mantendo pressionada a tecla Ctrl sobre a chamada a uma procedure/function/variável para localizá-la na unit atual ou em outra unit.

Ctrl+J (Code Templates): Exibi templates de códigos.

Ctrl+Shift+J (Delphi 2006): Executar o SyncEdit para alterar variáveis com mesmo nome de uma só vez após a seleção de um bloco de código.

Ctrl+O+U: Alterna a caixa (maiúscula/minúscula) do código selecionado.

Ctrl+K+E: Converter o código selecionado para minúsculas.

Ctrl+K+F: Converter o código selecionado para maiúsculas.

Ctrl+E: Ativa a busca incremental. Sem a necessidade de teclar (Ctrl+F).

Ctrl+Shift+Setas: Mover o(s) componente(s) selecionado(s) rapidamente no form.

Ctrl+Setas: Move o componente pixel a pixel.

Shift+Setas: Redimensiona o componente pixel a pixel.

Ctrl+Alt+P
(Delphi 2006...): Seleciona a Paleta de Ferramentas possibilitando a filtragem dos componentes ao se digitar seus nomes.

Ctrl+Shift+E (Delphi 2006...): Executa o Refactoring de modificação de nomes de variáveis, procedures/functions e propriedades.

Ctrl+Shift+A
(Delphi 2006...): Executa o Refactoring Find Unit, que localiza as units onde as variáveis são declaradas e as coloca na seção uses automaticamente.

Ctrl+Shift+V (Delphi 2006...): Refactoring de declaração de variável, pressiona-se este atalho para declará-la localmente.

Ctrl+Shift+D (Delphi 2006...): Refactoring de declaração de atributo, pressiona-se este atalho para declará-lo na classe.

Ctrl+Shift+F9
(Delphi 2006...): Executa a aplicação sem a opção de depuração (Debug). A execução fica mais rápida.

Referências: Imasters, Marlos Waquim