Banco de dados – Andreano Lanusse | Tecnologia e Desenvolvimento de Software http://www.andreanolanusse.com/pt Andreano Lanusse blog - artigos, tutoriais e vídeos sobre tecnologia, desenvolvimento de software (Delphi XE4, C#, PHP, .NET) e técnicas de programação Mon, 15 Jan 2018 05:44:44 +0000 pt-BR hourly 1 https://wordpress.org/?v=6.5.7 Usando Execute Statement em Stored Procedures no InterBase XE http://www.andreanolanusse.com/pt/usando-execute-statement-em-stored-procedures-no-interbase-xe/ http://www.andreanolanusse.com/pt/usando-execute-statement-em-stored-procedures-no-interbase-xe/#comments Mon, 22 Nov 2010 07:05:27 +0000 http://www.andreanolanusse.com/pt/?p=1116 Entre as várias novidades do InterBase XE está a possibilidade de montar SQLs dinamicamente em Stored Procedures através do comando EXECUTE STATEMENT, esse recurso é uma solicitação antiga de muitos usuários, vamos ver como funciona. Existe três variações do EXECUTE STATEMENT, aquela que não retorna nenhum registro ou dado, um registro ou um dado retornado […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

InterBase XE

Entre as várias novidades do InterBase XE está a possibilidade de montar SQLs dinamicamente em Stored Procedures através do comando EXECUTE STATEMENT, esse recurso é uma solicitação antiga de muitos usuários, vamos ver como funciona.

Existe três variações do EXECUTE STATEMENT, aquela que não retorna nenhum registro ou dado, um registro ou um dado retornado e aquele retorna vários registros, vejamos alguns exemplos:

Nenhum registro ou dado retornado

A stored procedure abaixo (EXEC_STMT_NO_RET) irá executar uma stored procedure em seu código, o nome dá stored procedure será passado dinamicamente como parâmetro.

CREATE PROCEDURE EXEC_STMT_NO_RET (proc_name varchar(20))
AS
  Declare Variable EMPNO INTEGER;
  Declare Variable EXECSTMT VARCHAR(150);
BEGIN

   Select MAX(EMP_NO) from EMPLOYEE into EMPNO;

   EXECSTMT = 'EXECUTE PROCEDURE' || proc_name || '( ' || cast (EMPNO as varchar(10)) || ')';

   EXECUTE STATEMENT EXECSTMT;

END

A variável EXECSTMT recebe o comando que deverá ser executado pelo EXECUTE STATEMENT.

Apenas um registro retornado

A procedure abaixo (EXEC_STMT_COUNT) retornar a quantidade de registros de uma tabela, o nome da tabela é passado como parâmetro na hora da execução da stored procedure, sendo que é um SELECT COUNT sempre teremos o retorno como sendo um registro com uma coluna que traz o total de registros da tabela.

CREATE PROCEDURE EXEC_STMT_COUNT (TABLE_NAME VARCHAR(50))
AS
Declar Variable MAXEMPNO INTEGER;
BEGIN
   EXECUTE STATEMENT 'SELECT COUNT(*) FROM ' || TABLE_NAME INTO :MAXEMPNO;
END

Qualquer quantidade de registros retornado

Neste exemplo passamos a tabela e o nome do campo que queremos que seja retornado pela stored procedure, não sabemos quantos registros serão retornados, definimos dinamicamente todo o SQL.

CREATE PROCEDURE EXEC_STMT_ANY (TABLE_NAME VARCHAR(50), STR_FIELD VARCHAR(100) ) RETURNS (INT_RETVAR INTEGER)
AS
  Declare Variable IFIELD VARCHAR(100);
BEGIN
   FOR EXECUTE STATEMENT 'SELECT ' || STR_FIELD || ' FROM ' || TABLE_NAME INTO :IFIELD DO
      // Implemente seu código aqui para cada registro antes de retornar esta linha para o lado cliente

      SUSPEND;
END

Esses são 3 exemplos de como utilizar EXECUTE STATEMENT, lembre-se que ao usar sentenças dinâmicas o mesmo será preparado (Prepared) a cada execução, isso irá impactar na performance da procedure, quando a sentença já está definida na procedure isso não ocorre.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/usando-execute-statement-em-stored-procedures-no-interbase-xe/feed/ 1
Delphi, ER/Studio e DB Optimizer em ação http://www.andreanolanusse.com/pt/delphi-erstudio-and-db-optimizer-em-acao/ http://www.andreanolanusse.com/pt/delphi-erstudio-and-db-optimizer-em-acao/#comments Tue, 25 May 2010 00:57:10 +0000 http://www.andreanolanusse.com/pt/?p=939 Recentemente eu comentei aqui sobre 2 promoções tentadoras para os usuários de Delphi e C++Builder, em uma delas você compra RAD Studio Enterprise e leva Architect, que inclui o ER/Studio Developer Edition e o DB Optimizer GRÁTIS. Nada melhor do que assistir um vídeo e ver como estas 3 ferramentas juntas podem lhe ajudar. Obtenha […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Recentemente eu comentei aqui sobre 2 promoções tentadoras para os usuários de Delphi e C++Builder, em uma delas você compra RAD Studio Enterprise e leva Architect, que inclui o ER/Studio Developer Edition e o DB Optimizer GRÁTIS.

Nada melhor do que assistir um vídeo e ver como estas 3 ferramentas juntas podem lhe ajudar.

Obtenha todas as informações sobre as promoções aqui.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/delphi-erstudio-and-db-optimizer-em-acao/feed/ 1
Resolvendo problemas de otimização de SQL http://www.andreanolanusse.com/pt/resolvendo-problemas-de-otimizacao-de-sql/ http://www.andreanolanusse.com/pt/resolvendo-problemas-de-otimizacao-de-sql/#respond Fri, 19 Mar 2010 20:47:20 +0000 http://www.andreanolanusse.com/pt/?p=834 Um dos grandes problemas em desenvolvimento de software está relacionado com a performance da aplicação e na grande maioria com SQL não otimizados. Com base nisso começa a doloroza tarefa de otimização, dependendo da estrutura da empresa existe a clara separação entre desenvolvedores e DBAs, na minha opinião este problema acaba sendo responsabilidade dos dois, […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Um dos grandes problemas em desenvolvimento de software está relacionado com a performance da aplicação e na grande maioria com SQL não otimizados. Com base nisso começa a doloroza tarefa de otimização, dependendo da estrutura da empresa existe a clara separação entre desenvolvedores e DBAs, na minha opinião este problema acaba sendo responsabilidade dos dois, muitas vezes existe um grande conflito entre os dois e isso acaba impactando negativamente no negócio da empresa.

Esta mês estive visitando um cliente onde tinhamos os grupos de desenvolvedores e DBAs, ambos trabalhavam integrados e se ajudando muitas vezes. A estrutura de 4 servidores com 48GB RAM, 4 processadores com 8 núcleos cada utilizando SQL Server e aplicação .NET, neste cenário tinhamos problemas de performance.

Para entender onde estava o problema utilizamos duas das nossas soluções: Performance Center e DB Optimizer.

Performance Center nossa solução para monitoramente de servidores de banco de dados 24×7, onde os DBAs são notificados de problemas que podem vir a acontecer e aqueles que estão acontecendo, é como o seu painel de controle onde você tem visibilidade de tudo o que acontece no banco de dados e sistema operacional.

De inicio identificamos bases de dados sem backup a algum tempo, arquivos de log e base de dados no mesmo disco em alguns servidores e vários picos de CPU causados por algumas stored procedures e locks de registros muito frequentes, ou seja, existiam problemas de otimização de SQL e problemas nas aplicações.

Identificado o problema utilizamos o DB Optimizer para efetuar o profile no banco de dados, para nossa surpresa identificamos que uma única stored procedure era executa a cada 2 segundos e efetuava contastes updates, estes updates geravam o log.

Agora a equipe de desenvolvimento esta reavaliando a melhor forma de otimizar este processo na aplicação, os testes iniciais já apontam uma grande melhora no desempenho e a eliminação dos locks, também foram encontrados outros pontos onde é necessário otimizar.

Se você quizer conhecer mais sobre o Performance Center e DB Optimizer, assista minha apresentação sobre SQL Tunning, alta-disponibilidade e eficiência de banco de dados 24×7 que está publicado no EDN.

Assistir o vídeo

Baixar o vídeo e assistir off-line

Baixar o’vídeo

O mais importante é que toda esta descoberta se passou em apenas 3 horas, ou seja, geralmente tardamos dias para encontrar a origem do problemas, quando encontramos. Neste caso com Performance Center e DB Optimizer encontramos em apenas 3 horas.
Até o próximo post.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/resolvendo-problemas-de-otimizacao-de-sql/feed/ 0
Semana do DBA vídeos disponiveis para assistir online ou download http://www.andreanolanusse.com/pt/semana-do-dba-videos-disponiveis-para-assistir-online-ou-download/ http://www.andreanolanusse.com/pt/semana-do-dba-videos-disponiveis-para-assistir-online-ou-download/#comments Sat, 13 Mar 2010 14:00:42 +0000 http://www.andreanolanusse.com/pt/?p=817 A todos aqueles que puderam participar da Semana do DBA online o nosso MUITO OBRIGADO! O evento foi um sucesso, obtendo mais de 1200 usuários conectados durante os 3 dias. Isso demonstra o alto nível das apresentações realizadas durante o evento. As apresentações tiveram como foco mostrar problemas atuais relacionados a bancos de dados e […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

A todos aqueles que puderam participar da Semana do DBA online o nosso MUITO OBRIGADO! O evento foi um sucesso, obtendo mais de 1200 usuários conectados durante os 3 dias. Isso demonstra o alto nível das apresentações realizadas durante o evento.

As apresentações tiveram como foco mostrar problemas atuais relacionados a bancos de dados e como as soluções Embarcadero podem ajudar a resolver estes problemas.

Você pode acompanhar através do Twitter todos os comentários realizados durante o evento através do hashtag #SemanadoDBA, você pode também me seguir no Twitter (@andreanolanusse).

Você pode assistir as 3 apresentações acessando o artigo publicado no EDN Brasil, clique aqui.

Após assistir os vídeos você pode efetuar Download do trial dos produtos e testar – http://www.embarcadero.com/downloads

Mais uma vez obrigado a todos e divirtam-se com os vídeos.

EDN – Embarcadero Developer Network
http://edn.embarcadero.com/br (Artigos e Vídeos)
Trial Download
Embarcadero Database Management Solution

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/semana-do-dba-videos-disponiveis-para-assistir-online-ou-download/feed/ 2
Semana do DBA – SQL Tunning, disponibilidade e eficiência de banco de dados 24×7 http://www.andreanolanusse.com/pt/semana-do-dba/ http://www.andreanolanusse.com/pt/semana-do-dba/#comments Thu, 11 Mar 2010 13:32:32 +0000 http://www.andreanolanusse.com/pt/?p=804 Amigos desenvolvedores, DBAs, arquitetos e todos conectados ao mundo do software. Para aqueles que participaram da minha apresentação na Semana do DBA sobre o tema Gestão de dados e mudança em ambientes heterogêneos, onde foram abordados temas relacionados a administração de diversos bancos de dados em diferentes plataformas, sincronização de dados, schemas e configuração de […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Amigos desenvolvedores, DBAs, arquitetos e todos conectados ao mundo do software.

Para aqueles que participaram da minha apresentação na Semana do DBA sobre o tema Gestão de dados e mudança em ambientes heterogêneos, onde foram abordados temas relacionados a administração de diversos bancos de dados em diferentes plataformas, sincronização de dados, schemas e configuração de servidores.

Comente sobre o evento no seu twitter usando o hashtag #SemanadoDBA, você pode também me seguir no Twitter (@andreanolanusse) e acompanhar os comentários sobre o evento.

Abaixo segue alguns links relacionados as soluções apresentadas:

Artigos e Vídeos gratuitos no EDN – Embarcadero Developer Network – http://edn.embarcadero.com/br
Download de trial dos produtos Embarcadero – http://www.embarcadero.com/downloads
Embarcadero Database Management Solution

Hoje tem mais, vamos falar sobre Performance, SQL Tunning, efeciência e disponibilidade 24×7.

EDN – Embarcadero Developer Network
http://edn.embarcadero.com/br (Artigos e Vídeos)
Trial Download
Embarcadero Database Management Solution

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/semana-do-dba/feed/ 1
Semana do DBA – começa hoje 10 de março – divulgue no Twitter #SemanadoDBA http://www.andreanolanusse.com/pt/semana-do-dba-comeca-hoje-10-de-marco-divulgue-no-twitter-semanadodba/ http://www.andreanolanusse.com/pt/semana-do-dba-comeca-hoje-10-de-marco-divulgue-no-twitter-semanadodba/#respond Thu, 11 Mar 2010 00:41:21 +0000 http://www.andreanolanusse.com/pt/?p=799 Amigos desenvolvedores, DBAs, arquitetos e todos conectados ao mundo do software. Hoje dia 10 de março, começamos a Semana do DBA, uma série de três apresentações online sobre temas como: modelagem, arquitetura, gestão, SQL tunning e performance de bancos de dados. Se você já recebeu a confirmação da sua inscrição, basta conectar, sugerimos conectar 10 […]

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>

Amigos desenvolvedores, DBAs, arquitetos e todos conectados ao mundo do software. Hoje dia 10 de março, começamos a Semana do DBA, uma série de três apresentações online sobre temas como: modelagem, arquitetura, gestão, SQL tunning e performance de bancos de dados.

Se você já recebeu a confirmação da sua inscrição, basta conectar, sugerimos conectar 10 minutos antes.

Comente sobre o evento no seu twitter usando o hashtag #SemanadoDBA, você pode também me seguir no Twitter (@andreanolanusse) e acompanhar os comentários sobre o evento.

Devido ao grande interesse as inscrições estão encerradas, agora estamos com uma fila de espera onde iremos confirmado de acordo com o andamento do evento.

Até daqui a pouco.

Andreano Lanusse | Tecnologia e Desenvolvimento de Software Siga-me no Twitter: @andreanolanusse

]]>
http://www.andreanolanusse.com/pt/semana-do-dba-comeca-hoje-10-de-marco-divulgue-no-twitter-semanadodba/feed/ 0