<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Boaglio.com &#187; Oracle</title>
	<atom:link href="http://www.boaglio.com/index.php/category/oracle/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.boaglio.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 Nov 2011 00:48:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>O que a Oracle não consegue comprar</title>
		<link>http://www.boaglio.com/index.php/2011/03/13/o-que-a-oracle-nao-consegue-comprar/</link>
		<comments>http://www.boaglio.com/index.php/2011/03/13/o-que-a-oracle-nao-consegue-comprar/#comments</comments>
		<pubDate>Sun, 13 Mar 2011 06:43:19 +0000</pubDate>
		<dc:creator>Fernando Boaglio</dc:creator>
				<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.boaglio.com/?p=636</guid>
		<description><![CDATA[No começo dos anos 90, a Digital cria um banco de dados chamado RDB que começa a ganhar uma boa fatia do mercado. Provavelmente você nunca ouviu falar dele , pois em 1994 a Oracle comprou a empresa inteira e deu um jeito de oficialmente descontinuar o produto e garantir mais uma fatia do mercado. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2011/03/oracle_evil_empire-300x300.png" title="(1216 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2011/03/oracle_evil_empire-300x300.png" alt="" title="oracle_evil_empire" width="300" height="300" class="aligncenter size-full wp-image-640" /></a></p>
<p>No começo dos anos 90, a Digital cria um banco de dados chamado <a href="http://www.boaglio.com/go.php?http://en.wikipedia.org/wiki/Oracle_Rdb" title="(92 hits)">RDB</a> que começa a ganhar uma boa fatia do mercado. Provavelmente você nunca ouviu falar dele , pois em 1994 a Oracle comprou a empresa inteira e deu um jeito de oficialmente descontinuar o produto e garantir mais uma fatia do mercado. </p>
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2011/03/bea.jpg" title="(982 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2011/03/bea.jpg" alt="" title="bea" width="136" height="82" class="aligncenter size-full wp-image-641" /></a></p>
<p>No começo dos anos 2000, uma empresa começa a ganhar nome no mercado com seu excelente servidor de aplicação chamado Weblogic. Em 2008 a Oracle compra mais essa e em alguns anos o nome da BEA cairá no esquecimento. Se eu ficar escrevendo sobre <a href="http://www.boaglio.com/go.php?http://en.wikipedia.org/wiki/Oracle_Corporation#Corporate_acquisitions" title="(302 hits)">todas as aquisições da Oracle</a>, você vai parar de ler esse artigo nesse parágrafo mesmo.</p>
<p>A linguagem Java sempre foi open source, mas a engine que roda as aplicações não ( a JVM ), e a Sun Microsystems chegou a anunciar que tinha planos para abrir o código, mas logo em seguida a empresa foi comprada pela Oracle e aparentemente os planos não mudaram e agora <a href="http://www.boaglio.com/go.php?http://www.oracle.com/us/corporate/press/176988" title="(106 hits)">todo mundo quer ajudar</a> pra quando chegar a hora levar crédito também.</p>
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2011/03/SunRIPsmall.jpg" title="(900 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2011/03/SunRIPsmall-300x234.jpg" alt="" title="Sun RIP " width="300" height="234" class="aligncenter size-medium wp-image-642" /></a><br />
<script type="text/javascript">google_ad_client = "pub-3816383189082763";google_ad_slot = "0931072200";google_ad_width = 468;google_ad_height = 60;</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script></p>
<p>Quando se compra uma empresa e talvez até um jabá por fora para garantir que a coisa ande,  normalmente os envolvidos são poucos. Quando se fala de uma comunidade, e ainda com trabalho voluntário, o dinheiro não ajuda muito. Por esse motivo que nenhuma empresa grande é dona ou tem controle sobre o <strong>movimento open source</strong>.</p>
<p>Foi criado o projeto <a href="http://www.boaglio.com/go.php?http://en.wikipedia.org/wiki/LibreOffice#History" title="(90 hits)">LibreOffice</a> como resposta da ameaça ao projeto <em>OpenOffice</em> ser descontinuado, apesar das <a href="http://www.boaglio.com/go.php?http://arstechnica.com/open-source/news/2010/10/oracle-wants-libreoffice-members-to-leave-ooo-council.ars" title="(102 hits)">tentativas da Oracle de atrapalhar o processo</a>.</p>
<p>Também foi criado o projeto <a href="http://www.boaglio.com/go.php?http://mariadb.org/" title="(126 hits)">MariaDB</a> como resposta da compra do MySQL e da mudança de sua licença. </p>
<p>Além , disso a comunidade open source não investe o seu precioso tempo voluntário em projetos proprietários que foram abertos mas não valem a pena. As vezes essas empresas grandes podem pensar: &#8220;<a href="http://www.boaglio.com/go.php?http://news.cnet.com/IBM-to-open-source-DB2/2100-7344_3-6241694.html" title="(209 hits)">vamos abrir o fonte daquela coisa velha que a molecada open source atualiza e melhora o código pra gente</a>&#8221; . Pois é, felizmente não é assim que a coisa funciona. </p>
<p>Recentemente o framework <a href="http://www.boaglio.com/go.php?http://en.wikipedia.org/wiki/Qt_%28framework%29" title="(25 hits)">Qt</a> passou por uma onda de boatos que iria acabar justamente por um <a href="http://www.boaglio.com/go.php?http://www.bbc.co.uk/news/business-12427680" title="(165 hits)">acordo que a Nokia fez com a Microsoft</a>. Se você já usou Skype, Virtual Box ou Google Earth, então já usou o <strong>Qt</strong>, pois ele é o responsável pela parte visual. Com ele também é feito o ambiente gráfico <strong>KDE</strong>, que também muita gente desinformada achou que estaria ameaçado&#8230; em primeiro lugar o <strong>KDE</strong> e o <strong>Qt</strong> existiam antes da aquisição da Nokia e o seu responsável sempre foi a comunidade open source. Em segundo lugar, devido à importância do projeto do <strong>KDE</strong>, foi criada uma <a href="http://www.boaglio.com/go.php?http://ev.kde.org/" title="(60 hits)">entidade sem fins lucrativos que visa manter a parte legal e financeira do projeto KDE</a>. Pois é, a comunidade open source não é só um bando de moleques trabalhando de graça, é algo maior que isso que está se organizando aos poucos, por esse motivo eu acho que o mínimo que ela merece é o nosso respeito. </p>
<p><strong>Fernando Boaglio, para a comunidade</strong></p>
<p><map name='google_ad_map_636_74531d4cc4df7f28'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/636?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_636_74531d4cc4df7f28' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=636&amp;url= http%3A%2F%2Fwww.boaglio.com%2Findex.php%2F2011%2F03%2F13%2Fo-que-a-oracle-nao-consegue-comprar%2F' /></p><div class="al2fb_like_button"><div id="fb-root"></div><script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/pt_BR/all.js#xfbml=1&appId=357307720952117";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<fb:like href="http://www.boaglio.com/index.php/2011/03/13/o-que-a-oracle-nao-consegue-comprar/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.boaglio.com/index.php/2011/03/13/o-que-a-oracle-nao-consegue-comprar/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>10 motivos para usar o SQuirreL SQL</title>
		<link>http://www.boaglio.com/index.php/2010/04/28/10-motivos-para-usar-o-squirrel-sql/</link>
		<comments>http://www.boaglio.com/index.php/2010/04/28/10-motivos-para-usar-o-squirrel-sql/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 00:20:30 +0000</pubDate>
		<dc:creator>Fernando Boaglio</dc:creator>
				<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[Clube dos 10]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.boaglio.com/?p=441</guid>
		<description><![CDATA[Hoje em dia dá muita pena de um consultor do mercado que não conhece as ferramentas que o mercado oferece, recentemente fui entrevistado pelo projeto KDE (que eu ajudo) para falar um pouco sobre esse assunto. Com certeza quem não trabalha com banco de dados é minoria, se você como eu pertence à maioria, não [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje em dia dá muita pena de um consultor do mercado que não conhece as ferramentas que o mercado oferece, <a href="http://www.boaglio.com/go.php?http://br.kde.org/Entrevista_Fernando_Boaglio_2010" title="(114 hits)">recentemente fui entrevistado pelo projeto KDE</a> (que eu ajudo) para falar um pouco sobre esse assunto.</p>
<p>Com certeza quem não trabalha com banco de dados é minoria, se você como eu pertence à maioria,<em> não saia de casa sem o esquilo</em>! </p>
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/i-dont-take-peanuts.jpg" title="(2782 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/i-dont-take-peanuts-300x199.jpg" alt="" title="esquilo" width="300" height="199" class="aligncenter size-medium wp-image-442" /></a><br />
<script type="text/javascript">google_ad_client = "pub-3816383189082763";google_ad_slot = "0931072200";google_ad_width = 468;google_ad_height = 60;</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script></p>
<p>Desenvolvido desde 2001 o <strong>SQuirreL SQL</strong> é a melhor ferramenta que você pode usar no seu trabalho, necessitando de poucos ajustes para funcionar pra valer.<br />
Comece fazendo o <a href="http://www.boaglio.com/go.php?http://www.squirrelsql.org/" title="(693 hits)">download do JAR no site oficial</a> (não baixe o ZIP, que contém menos recursos), e continue lendo!</p>
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel1.png" title="(3007 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel1-246x300.png" alt="" title="SQL SQuirreL 3.1.1" width="246" height="300" class="aligncenter size-medium wp-image-448" /></a></p>
<p>Separei as principais vantagens sobre ele:</p>
<ol>
<li><strong>É open source</strong> &#8211; além de gratuito, o código fonte é totalmente aberto, o que facilita o seu crescimen,, to com a ajuda da comunidade criando novas melhorias e estendendo suas funcionalidades com plugins.</li>
<li><strong>É multiplataforma</strong> &#8211; como ele é feito em Java, roda praticamente em qualquer plataforma existente.</li>
<li><strong>Suporta mais de 20 bancos de dados</strong> &#8211; usando um driver JDBC ele suporta diversos bancos, entre eles eu uso mais os drivers do  <a href="http://www.boaglio.com/go.php?http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html" title="(293 hits)">Oracle</a>, <a href="http://www.boaglio.com/go.php?http://dev.mysql.com/downloads/connector/j/" title="(107 hits)">MySQL</a>, <a href="http://www.boaglio.com/go.php?http://jdbc.postgresql.org/download.html" title="(87 hits)">PostgreSQL</a>, <a href="http://www.boaglio.com/go.php?http://www.ibm.com/db2/express/" title="(77 hits)">DB2</a> e <a href="http://www.boaglio.com/go.php?http://sourceforge.net/projects/jtds/files/" title="(122 hits)">SQL Server</a>
<p>Clique na opção <em>Drivers</em>, depois <em>MySQL</em> e selecione a opção para <em>modificar</em> o driver.</p>
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel3.png" title="(3233 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel3-300x198.png" alt="" title="Configurando JDBC" width="300" height="198" class="aligncenter size-medium wp-image-451" /></a></p>
<p>Em seguida clique na aba <em>Extra Class Path</em>, clique em <em>Add</em> e selecione o arquivo jar do JDBC do MySQL (exemplo: <em>mysql-connector-java-5.1.5-bin.jar</em>). Depois de selecionado o arquivo, clique em <em>List Drivers </em>e selecione uma opção do combo <em>Class Name</em>. </p>
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel4.png" title="(3384 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel4-300x253.png" alt="" title="Configurando Driver MySQL" width="300" height="253" class="aligncenter size-medium wp-image-452" /></a></p>
<p>Felizmente só precisamos criar o driver uma vez, agora vamos criar uma conexão clicando no <em>+</em> :</p>
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel5.png" title="(3117 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel5-300x278.png" alt="" title="Configurar um acesso ao  MySQL" width="300" height="278" class="aligncenter size-medium wp-image-453" /></a></p>
<p>Informe os dados do banco, e selecione a opção <em>Auto Logon</em> e clique em <em>Ok</em> para salvar. </p>
</li>
<li><strong>Tem interface em português</strong> &#8211; não é qualquer ferramenta que oferece o nosso idioma, para isso basta alterar o <em>Locale</em> nas <em>Preferências Globais</em> dentro da aba <em>Geral</em>.
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel2.png" title="(2569 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel2-300x190.png" alt="" title="alterar idioma" width="300" height="190" class="aligncenter size-medium wp-image-449" /></a></p>
<p>Nem tudo está traduzido, mas já é um começo.</li>
<li><strong>Possui auto-complete de tabelas e colunas</strong> &#8211; hoje se a ferramenta não tem auto-complete, você demora para montar os seus comandos SQL no mínimo o dobro do tempo.<br />
    Vejam um exemplo listando as tabelas existentes:</p>
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel6.png" title="(2237 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel6-300x182.png" alt="" title="auto-complete de tabela" width="300" height="182" class="aligncenter size-medium wp-image-454" /></a></p>
<p>    E outro sugerindo o nome das colunas de uma tabela:</p>
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel7.png" title="(2075 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel7-300x204.png" alt="" title="auto-complete de coluna de tabela" width="300" height="204" class="aligncenter size-medium wp-image-455" /></a></p>
</li>
<li><strong>Facilmente altera tabelas</strong> &#8211; lembrar a sintaxe de remover ou aumentar o tamanho uma coluna nem sempre é trivial, ainda mais quando existem diferentes tipos de banco e cada um com sua sintaxe. Felizmente existe aqui o plugin chamado <strong>Refactoring</strong> que conforme o tipo de banco de dados, oferece um assistente que facilmente podemos manipular a estrutura de nossas tabelas.<br />
         No exemplo abaixo, adicionaremos uma coluna para armazenar a sigla do país da tabela <em>ESTADO</em>:</p>
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel8.png" title="(1982 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel8-300x239.png" alt="" title="refactoring" width="300" height="239" class="aligncenter size-medium wp-image-457" /></a></p>
<p>       Depois é possível ver o comando SQL que o assistente gerou para alterar a tabela:</p>
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel9.png" title="(1810 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel9-300x148.png" alt="" title="refactoring adicionando uma coluna" width="300" height="148" class="aligncenter size-medium wp-image-458" /></a></p>
</li>
<li><strong>Copia tabelas para diferentes bancos</strong> &#8211; com o plugin  <strong>DB Copy </strong> podemos facilmente copiar tabelas (estrutura + registros) , suas chaves primárias e estrangeiras, até se quisermos também gravar um script dessa cópia completa.
<p>        No exemplo vamos copiar duas tabelas da conexão com o <em>MySQL</em> para outra conexão com o <em>Oracle</em>.<br />
        Com as duas sessões abertas, selecionamos as tabelas que desejamos copiar e clicamos com o botão esquerdo do mouse:</p>
<p>        <a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel10.png" title="(1874 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel10-300x286.png" alt="" title="DB Copy " width="300" height="286" class="aligncenter size-medium wp-image-459" /></a></p>
<p>        Depois, na base do Oracle selecionamos a opção <em>Paste Table</em>:</p>
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel11.png" title="(1688 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel11-300x175.png" alt="" title="DB Copy" width="300" height="175" class="aligncenter size-medium wp-image-460" /></a></p>
<p>       Durante a cópia, é exibida uma janela para acompanhar o processo:</p>
<p>       <a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel12.png" title="(1686 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel12-300x201.png" alt="" title="DB Copy" width="300" height="201" class="aligncenter size-medium wp-image-461" /></a></p>
</li>
<li><strong>Gerar diagrama das tabelas </strong> &#8211; exibe facilmente um diagrama de suas tabelas, basta selecionar as tabelas que precisa:
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel13.png" title="(1757 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel13-292x300.png" alt="" title="diagrama" width="292" height="300" class="aligncenter size-medium wp-image-463" /></a></p>
<p>       Depois é só acessar a nova aba criada para visualizar o seu diagrama completo:</p>
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel14.png" title="(1484 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel14-300x103.png" alt="" title="diagrama" width="300" height="103" class="aligncenter size-medium wp-image-464" /></a>
       </li>
<li><strong>Gera facilmente scripts SQL</strong> &#8211; gerar scripts de tabelas é algo que todo desenvolvedor precisa, e fazer isso aqui é muito fácil , conseguimos gerar scripts para a estrutura da tabela, com todos os dados da tabela, ou um simples rascunho de um INSERT.
<p>          No exemplo abaixo, vamos gerar o script da tabela ESTADO, selecionando a opção <em>Generate Table Script</em>: </p>
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel15.png" title="(1687 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel15-300x290.png" alt="" title="scripts" width="300" height="290" class="aligncenter size-medium wp-image-465" /></a></p>
<p>          Com isso o SQL é gerado na aba conforme a imagem abaixo:</p>
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel16.png" title="(1600 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel16-300x254.png" alt="" title="scripts" width="300" height="254" class="aligncenter size-medium wp-image-466" /></a></p>
<p>          Para gerar os dados dessa tabela, basta selecionar a opção <em>Generate Data Script</em>:</p>
<p>          <a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel17.png" title="(1720 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel17-300x288.png" alt="" title="scripts" width="300" height="288" class="aligncenter size-medium wp-image-467" /></a>
       </li>
<li><strong>Roda HQL</strong>! &#8211; o grande diferencial dessa ferramenta é para quem trabalha com <a href="http://www.boaglio.com/go.php?http://www.hibernate.org/" title="(81 hits)">Hibernate</a> poder executar seus HQL direto na ferramenta.
<p>              A configuração é um pouco complicada, vou ilustrar aqui os passos, mas se não conseguirem podem colocar as dúvidas nos comentários .</p>
<p>              Cada projeto Java terá uma configuração gravada na ferramenta, pois tanto um projeto que use JPA quanto outro que use somente Hibernate terão configurações distintas. No exemplo vamos mostrar um projeto com apenas Hibernate. </p>
<p>              Para criar uma configuração, acesse pelo menu <em>File &#8211; Global Preferences</em> as configurações globais, e a aba Hibernate. Depois informe o nome da configuração e clique onde está indicado abaixo para adicionar duas coisas: a primeira é o diretório de onde está o <em>hibernate.cfg.xml</em> ( <em>não</em> adicione o arquivo, adicione o diretório) , a segunda é adicionar todas as bibliotecas usadas no seu projeto (aquelas que estão no <em>\WEB-INF\lib\ </em>por exemplo). </p>
<p>Se você tem um projeto com <em>Hibernate</em> e <em>MySQL</em>, eu separei para<a href="/download/boaglio-dot-com-sqlsquirrel-hibernate-lib-pack.zip"> download um pacote com as bibliotecas necessárias</a>, faltando apenas o JAR com suas classes <a href="http://www.boaglio.com/go.php?http://docs.jboss.org/hibernate/stable/annotations/reference/en/html/entity.html" title="(89 hits)">Entity</a> do Hibernate.</p>
<p>              <a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel18.png" title="(2005 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel18-300x190.png" alt="" title="Hibernate" width="300" height="190" class="aligncenter size-medium wp-image-468" /></a></p>
<p>              Em seguida precisamos informar de que maneira a fábrica de sessões será disponibilizada: chamando o Hibernate direto (nessa opção não funciona <em>Annotations</em>, as classes precisam estar mapeados nos arquivos .hbm), especificando o nome do persistence unit (JPA) ou mostrando a classe de sua aplicação que tem o método <em>public SessionFactoryImpl getSessionFactoryImpl()</em> .</p>
<p>              O projeto do exemplo usa  <a href="http://www.boaglio.com/go.php?http://docs.jboss.org/hibernate/stable/annotations/reference/en/html/ch01.html" title="(100 hits)">Hibernate com Annotations</a> , portanto precisamos especificar qual classe tem o método de fábrica, que no meu caso é <em>br.org.cruzada.core.util.HibernateUtil</em>. </p>
<p>              <a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel19.png" title="(2117 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel19-300x190.png" alt="" title="hibernate" width="300" height="190" class="aligncenter size-medium wp-image-469" /></a></p>
<p>                Depois na aba do <em>Hibernate</em>, selecione a configuração criada e clique no ícone da tomada. Se a conexão der certo, o ícone muda e aparecem os objetos mapeados conforme imagem abaixo:</p>
<p><a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel20.png" title="(1991 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel20-300x191.png" alt="" title="hibernate" width="300" height="191" class="aligncenter size-medium wp-image-470" /></a></p>
<p>                Digite o <em>HQL</em> que quiser (tem auto-complete!) e clique no botão <em>HQL to SQL</em> para gerar o SQL com os resultados:</p>
<p>                <a href="http://www.boaglio.com/go.php?http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel21.png" title="(1546 hits)"><img src="http://www.boaglio.com/wp-content/uploads/2010/04/boaglio-dot-com-sql-squirrel21-300x162.png" alt="" title="hibernate" width="300" height="162" class="aligncenter size-medium wp-image-471" /></a></p>
</li>
</ol>
<p>Existem outras vantagens do <strong>SQL SQuirreL</strong>, mas essas são as minhas preferidas, <a href="http://www.boaglio.com/go.php?http://squirrel-sql.sourceforge.net/index.php?page=plugins" title="(162 hits)">tem outros plugins que não mencionei aqui, além de outros não oficiais</a>.</p>
<p><em>Uma última dica:</em> se você acessa tabelas muito grandes e gera SQLs com milhares de linhas, é interessante saber que o padrão definido nos arquivos (<em>squirrel-sql.bat</em> no Windows e <em>squirrel-sql.sh</em> no Linux) é de 256 megabytes de memória. Se desejar aumentar esse valor, é só alterar o valor padrão e reiniciar a ferramenta.</p>
<p>Boa sorte nos SQLs!</p>
<p>Fernando Boaglio, para a comunidade. =)</p>
<p><map name='google_ad_map_441_74531d4cc4df7f28'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/441?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_441_74531d4cc4df7f28' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=441&amp;url= http%3A%2F%2Fwww.boaglio.com%2Findex.php%2F2010%2F04%2F28%2F10-motivos-para-usar-o-squirrel-sql%2F' /></p><div class="al2fb_like_button"><div id="fb-root"></div><script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/pt_BR/all.js#xfbml=1&appId=357307720952117";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<fb:like href="http://www.boaglio.com/index.php/2010/04/28/10-motivos-para-usar-o-squirrel-sql/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.boaglio.com/index.php/2010/04/28/10-motivos-para-usar-o-squirrel-sql/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Descobrindo o SQL gerado pela sua aplicação</title>
		<link>http://www.boaglio.com/index.php/2009/08/06/descobrindo-o-sql-gerado-pela-sua-aplicacao/</link>
		<comments>http://www.boaglio.com/index.php/2009/08/06/descobrindo-o-sql-gerado-pela-sua-aplicacao/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 04:47:22 +0000</pubDate>
		<dc:creator>Fernando Boaglio</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.boaglio.com/?p=208</guid>
		<description><![CDATA[Quando trabalhamos com frameworks como Hibernate que geram o comando SQL pra gente, temos uma idéia do que ele faz. Entretanto, quando se usa muitas composições com o o FetchType EAGER, a coisa começa a complicar. Durante o desenvolvimento, temos ferramentas como o Hibernate Tools que podemos ver o SQL gerado, mas o verdadeiro problema [...]]]></description>
			<content:encoded><![CDATA[<p>Quando trabalhamos com frameworks como <em>Hibernate</em> que geram o comando SQL pra gente, temos uma idéia do que ele faz. Entretanto, quando se usa muitas composições com o o FetchType EAGER, a coisa começa a complicar. </p>
<p>Durante o desenvolvimento, temos ferramentas como o <a href="http://www.boaglio.com/go.php?https://www.hibernate.org/255.html" title="(201 hits)">Hibernate Tools</a> que podemos ver o SQL gerado, mas o verdadeiro problema é em ambiente de produção.</p>
<p><img src="https://www.hibernate.org/hib_images/tools/screen2.gif" alt="Hibernate Tools" /><br />
<!--adsense#bannertextomeio--></p>
<p>Vamos analisar o seguinte método abaixo e seus SQLs gerados:</p>
<pre class="brush: bash; title: ; notranslate">
	public List&lt;Evento&gt; listaMeusEventos() {
		Criteria crit = this.session.createCriteria(Evento.class);
		crit.add(Restrictions.gt(&quot;data&quot;, new GregorianCalendar()));
		crit.addOrder(Order.asc(&quot;data&quot;));
		return crit.list();
	}
 </pre>
<p>Se você usa Hibernate e <a href="http://www.boaglio.com/go.php?http://logging.apache.org/log4j/" title="(86 hits)">log4j</a>, a solução é muito fácil, basta configurar duas opções:</p>
<pre class="brush: bash; title: ; notranslate">
log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE
 </pre>
<p>E na configuração do hibernate.cfg.xml adicionar essas opções:</p>
<pre class="brush: bash; title: ; notranslate">
	&lt;property name=&quot;show_sql&quot;&gt;true&lt;/property&gt;
	&lt;property name=&quot;format_sql&quot;&gt;true&lt;/property&gt;
 </pre>
<p>Você terá no seu log um resultado parecido com esse:</p>
<pre class="brush: bash; title: ; notranslate">
Hibernate:                                                                                                                                                                                                                             

select                                                                                                                                                                this_.id as id5_0_,
        this_.data as data5_0_,
        this_.lugar_id as lugar6_5_0_,
        this_.nome as nome5_0_,
        this_.obs as obs5_0_,
        this_.pessoa_id as pessoa7_5_0_,
        this_.tipo as tipo5_0_
from                                                                                                                                                                 EVENTOS  this_
where                                                                                                                                                            this_.data&gt;?
order by
        this_.data asc         

2009-08-06 22:56:13,504 DEBUG hibernate.jdbc.AbstractBatcher  -&gt; preparing statement
2009-08-06 22:56:13,504 DEBUG hibernate.type.CalendarDateType  -&gt; binding '06 Agosto 2009' to parameter: 1
 </pre>
<p><img src="http://cache0.techcrunch.com/wp-content/uploads/2009/05/spy-vs-spy_tofu_prv_2.png" alt="Spy" /></p>
<p>Mas se você não usa Hibernate, uma opção bem interessante é o <a href="http://www.boaglio.com/go.php?http://www.p6spy.com" title="(239 hits)">P6Spy</a>. </p>
<p>A idéia é que sua aplicação se conecte com ele, e depois ele se conecta ao seu banco de dados. Com isso, ele tem precisamente todos os SQLs que chegam lá.</p>
<p><strong><br />
[ Sua aplicação manda um SQL ]<br />
       =><br />
[ P6Spy escreve seu SQL em um log ]<br />
       =><br />
 [ manda o SQL para o seu banco de Dados ]<br />
</strong></p>
<p>A instalação dele é bem simples, ele tem uma biblioteca e um arquivo de propriedades.</p>
<p>O seu uso é bem simples, conforme exemplificado <a href="http://www.boaglio.com/go.php?http://www.mkyong.com/hibernate/how-to-display-hibernate-sql-parameter-values-solution/" title="(195 hits)">nesse blog</a>:</p>
<p>1 &#8211; Baixe o arquivo <a href="http://www.boaglio.com/go.php?http://sourceforge.net/projects/p6spy/files/" title="(214 hits)">p6spy-install.jar</a></p>
<p>2 &#8211; Edite o arquivo de propriedades apontando para o seu banco de dados e outras opções, como o caminho do arquivo <em>spy.log</em> </p>
<p>3 &#8211; Copie o arquivo de propriedades e a biblioteca para o CLASSPATH de sua aplicação </p>
<p>Se você usar <em>Maven2</em> nos seus projetos, ao invés de copiar a biblioteca, basta adicionar a dependência:</p>
<pre class="brush: bash; title: ; notranslate">
    &lt;dependency&gt;
    	&lt;groupId&gt;p6spy&lt;/groupId&gt;
    	&lt;artifactId&gt;p6spy&lt;/artifactId&gt;
    	&lt;version&gt;1.3&lt;/version&gt;
    &lt;/dependency&gt;
</pre>
<p>4 &#8211; Faça a sua aplicação apontar para o <strong>Spy</strong>. No caso do Hibernate, mude o driver JDBC para o driver do Spy: </p>
<pre class="brush: bash; title: ; notranslate">
&lt;property name=&quot;connection.driver_class&quot;&gt;com.p6spy.engine.spy.P6SpyDriver&lt;/property&gt;
</pre>
<p>A mesma query que o Hibernate exibiu anteriormente é exibida dessa maneira:</p>
<pre class="brush: bash; title: ; notranslate">
1249687673908|-1||resultset|select this_.id as id5_0_, this_.data as data5_0_, this_.lugar_id as lugar6_5_0_, this_.nome as nome5_0_, this_.obs as obs5_0_, this_.pessoa_id as pessoa7_5_0_, this_.tipo as tipo5_0_ from EVENTOS this_ where this_.data&gt;'2009-08-07' order by this_.data asc limit 10|nome5_0_ = Retorno para consulta, obs5_0_ = 16:30h
1249687673910|0|4|rollback||
</pre>
<p>No caso de você usar o MySQL , existe <a href="http://www.boaglio.com/go.php?http://www.howtogeek.com/howto/database/monitor-all-sql-queries-in-mysql/" title="(329 hits)">uma maneira bem mais fácil e prática de monitorar os seus SQLs</a>, basta apenas acessar o arquivo de configuração do MySQL (<em>my.ini </em>em Windows / <em>my.cnf</em> em Linux) e tirar o comentário da linha:</p>
<pre class="brush: bash; title: ; notranslate">
log = /tmp/mysqld.sql
</pre>
<p>Reinicie o banco de dados e acesse o arquivo <em>mysqld.sql</em> para acompanhar os SQLs gerados.<br />
O mesmo comando anteriormente exibido no log do Spy é exibido aqui dessa maneira:</p>
<pre class="brush: bash; title: ; notranslate">
090807 20:39:20   16839 Query       SET autocommit=0
                  16839 Query       select this_.id as id5_0_, this_.data as data5_0_, this_.lugar_id as lugar6_5_0_, this_.nome as nome5_0_, this_.obs as obs5_0_, this_.pessoa_id as pessoa7_5_0_, this_.tipo as tipo5_0_ from EVENTOS this_ where this_.data&gt;'2009-08-07' order by this_.data asc limit 10
                  16839 Query       rollback
                  16839 Query       SET autocommit=1
</pre>
<p>Pronto, agora ficou mais fácil de identificar os SQLs problemáticos da aplicação.</p>
<p>Boa sorte nos seus logs! </p>
<p>Fernando Boaglio, para a comunidade. =)</p>
<p><map name='google_ad_map_208_74531d4cc4df7f28'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/208?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_208_74531d4cc4df7f28' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=208&amp;url= http%3A%2F%2Fwww.boaglio.com%2Findex.php%2F2009%2F08%2F06%2Fdescobrindo-o-sql-gerado-pela-sua-aplicacao%2F' /></p><div class="al2fb_like_button"><div id="fb-root"></div><script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/pt_BR/all.js#xfbml=1&appId=357307720952117";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<fb:like href="http://www.boaglio.com/index.php/2009/08/06/descobrindo-o-sql-gerado-pela-sua-aplicacao/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.boaglio.com/index.php/2009/08/06/descobrindo-o-sql-gerado-pela-sua-aplicacao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Melhore o desempenho do MySQL sem a ajuda de um DBA</title>
		<link>http://www.boaglio.com/index.php/2009/05/02/melhore-o-desempenho-do-mysql-sem-a-ajuda-de-um-dba/</link>
		<comments>http://www.boaglio.com/index.php/2009/05/02/melhore-o-desempenho-do-mysql-sem-a-ajuda-de-um-dba/#comments</comments>
		<pubDate>Sat, 02 May 2009 05:21:09 +0000</pubDate>
		<dc:creator>Fernando Boaglio</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.boaglio.com/?p=230</guid>
		<description><![CDATA[Depois de ler tanta coisa sobre a mesma notícia, resolvi postar algo bem mais útil sobre o MySQL. Independente do que aconteça com ele, não será tão cedo que você deixará de usá-lo para a sua base local de desenvolvimento. O problema é que quando o banco de dados começa a crescer e aos poucos [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de ler tanta coisa sobre <a href="http://www.boaglio.com/go.php?http://www.oracle.com/us/corporate/press/018363" title="(110 hits)">a mesma notícia</a>, resolvi postar algo bem mais <strong>útil</strong> sobre o MySQL. </p>
<p><img src="http://www.hostingbkk.com/images/mysql_logo.jpg" alt="MySQL" /><br />
<!--adsense#bannertextomeio--></p>
<p>Independente do que aconteça com ele, não será <strong>tão cedo</strong> que você deixará de usá-lo para a sua base local de desenvolvimento.</p>
<p>O problema é que quando o banco de dados começa a crescer e aos poucos ficar lento e mais lento, e como você não é DBA, não perde tempo mexendo nessas coisas e acaba convivendo com isso.</p>
<p>Baseado <a href="http://www.boaglio.com/go.php?http://ebergen.net/wordpress/2006/03/06/3-minute-mysql-tuning/" title="(191 hits)">nesse artigo</a>, vou passar aqui umas dicas rápidas que farão a diferença no uso do MySQL em sua máquina. </p>
<p>Para listar os parâmetros do seu MySQL, veja no <a href="http://www.boaglio.com/go.php?http://dev.mysql.com/doc/refman/5.0/en/server-parameters.html" title="(169 hits)">site oficial</a> ou use alguma ferramenta.  </p>
<ol>
<li>Derrube o serviço do MySQL</li>
<li>Localize o seu arquivo <strong>my.cnf</strong> ou <strong>my.ini</strong> (em <em>/etc</em> ou <em>C:\Program Files\MySQL\MySQL Server 5.1</em> )</li>
<li>Modifique os parâmetros abaixo de [mysqld] :
<ul>
<li><strong>max_connections</strong> = 60</li>
<li><strong>max_user_connections</strong> = 60</li>
<li><strong>key_buffer_size</strong> = mude para um valor entre um terço e metade da memória RAM disponível (exemplo: 128M)</li>
</ul>
</li>
<li>Inicie o serviço do MySQL</li>
</ol>
<p>  Uma maneira mais fácil ainda é com o seu MySQL rodando, executar <a href="http://www.boaglio.com/go.php?http://www.day32.com/MySQL/tuning-primer.sh" title="(584 hits)">esse script</a> que analisará o banco de dados e exibirá os parâmetros que deverão ser alterados para uma melhor performance. </p>
<p>  Veja um exemplo de resultado parcial do script:</p>
<pre class="brush: bash; title: ; notranslate">
mysqld is alive                        

        -- MYSQL PERFORMANCE TUNING PRIMER --
             - By: Matthew Montgomery                                               

MySQL Version 5.0.76-log x86_64

Uptime = 0 days 16 hrs 36 min 48 sec
Avg. qps = 0
Total Questions = 15
Threads Connected = 1               

Warning: Server has not been running for at least 48hrs.
It may not be safe to use these recommendations
TABLE CACHE
Current table_cache value = 64 tables
You have a total of 451 tables
You have 64 open tables.
Current table_cache hit rate is 13%, while 100% of your table cache is in use
You should probably increase your table_cache

TEMP TABLES
Current max_heap_table_size = 16 M
Current tmp_table_size = 32 M
Of 125 temp tables, 11% were created on disk
Effective in-memory tmp_table_size is limited to max_heap_table_size.
Created disk tmp tables ratio seems fine

TABLE SCANS
Current read_buffer_size = 256 K
Current table scan ratio = 11 : 1
read_buffer_size seems to be fine

TABLE LOCKING
Current Lock Wait ratio = 0 : 216
Your table locking seems to be fine
</pre>
<p>Bom proveito!</p>
<p>Fernando Boaglio, para a comunidade. =)  </p>
<p><map name='google_ad_map_230_74531d4cc4df7f28'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/230?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_230_74531d4cc4df7f28' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=230&amp;url= http%3A%2F%2Fwww.boaglio.com%2Findex.php%2F2009%2F05%2F02%2Fmelhore-o-desempenho-do-mysql-sem-a-ajuda-de-um-dba%2F' /></p><div class="al2fb_like_button"><div id="fb-root"></div><script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/pt_BR/all.js#xfbml=1&appId=357307720952117";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<fb:like href="http://www.boaglio.com/index.php/2009/05/02/melhore-o-desempenho-do-mysql-sem-a-ajuda-de-um-dba/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.boaglio.com/index.php/2009/05/02/melhore-o-desempenho-do-mysql-sem-a-ajuda-de-um-dba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mantendo a integridade de dados com Jailer</title>
		<link>http://www.boaglio.com/index.php/2009/02/01/mantendo-a-integridade-de-dados-com-jailer/</link>
		<comments>http://www.boaglio.com/index.php/2009/02/01/mantendo-a-integridade-de-dados-com-jailer/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 02:32:02 +0000</pubDate>
		<dc:creator>Fernando Boaglio</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.boaglio.com/?p=192</guid>
		<description><![CDATA[Imagine a situação: você precisa copiar dados de um registro de cliente de um banco de dados de produção, mas não pode alterá-los. Até aí nenhuma novidade, mas o problema é que o cliente tem muitos outros dados relacionados: endereço, pedido, dependentes, e várias outras coisas. Nesse caso você é obrigado a vasculhar manualmente todas [...]]]></description>
			<content:encoded><![CDATA[<p><em>Imagine a situação:</em> você precisa copiar dados de um registro de cliente de um banco de dados de produção, mas não pode alterá-los. Até aí nenhuma novidade, mas o problema é que o cliente tem muitos outros dados relacionados: endereço, pedido, dependentes, e várias outras coisas. </p>
<p>Nesse caso você é obrigado a vasculhar manualmente todas as tabelas que possuam alguma dependência com o dado desse cliente&#8230; isso pode levar horas, ou até dias. </p>
<p> <img src="http://alexrocha.files.wordpress.com/2006/09/needle-hay.jpg" alt="Agulha num palheiro!" /><br />
<!--adsense#bannertextomeio--></p>
<p>O <a href="http://www.boaglio.com/go.php?http://jailer.sourceforge.net/" title="(65 hits)">Jailer</a> é uma ferramenta feita em Java que vai te ajudar nessas situações. </p>
<p>Não adianta eu traduzir, apenas exibindo algumas imagens é suficiente para uma boa idéia do que essa poderosa ferramenta pode fazer.  </p>
<p><em>Relacionamento de dependências dos dados:</em><br />
<a href="http://www.boaglio.com/go.php?http://jailer.sourceforge.net/exporting-data-Dateien/screen3.png" title="(114 hits)"><img src="http://jailer.sourceforge.net/exporting-data-Dateien/screen3.png" width="100%"  alt="jailer" /></a></p>
<p><em>Definição de relacionamentos customizados:</em><br />
<a href="http://www.boaglio.com/go.php?http://jailer.sourceforge.net/exporting-data-Dateien/screen42.png" title="(77 hits)"><img src="http://jailer.sourceforge.net/exporting-data-Dateien/screen42.png" width="80%"  alt="jailer" /></a></p>
<p><em>Visão geral dos relacionamentos:</em><br />
<a href="http://www.boaglio.com/go.php?http://jailer.sourceforge.net/exporting-data-Dateien/screen8.png" title="(112 hits)"><img src="http://jailer.sourceforge.net/exporting-data-Dateien/screen8.png"  width="85%" alt="jailer" /></a></p>
<p><em>Exportação de dados que geral o arquivo texto final em SQL:</em><br />
<a href="http://www.boaglio.com/go.php?http://jailer.sourceforge.net/exporting-data-Dateien/screen12.png" title="(116 hits)"><img src="http://jailer.sourceforge.net/exporting-data-Dateien/screen12.png"  width="90%" alt="jailer" /></a></p>
<p>Não deixem de conferir o <a href="http://www.boaglio.com/go.php?http://jailer.sourceforge.net/exporting-data.htm" title="(83 hits)">tutorial oficial do Jailer</a>.  </p>
<p>Fernando Boaglio, para a comunidade. =)</p>
<p><map name='google_ad_map_192_74531d4cc4df7f28'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/192?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_192_74531d4cc4df7f28' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=192&amp;url= http%3A%2F%2Fwww.boaglio.com%2Findex.php%2F2009%2F02%2F01%2Fmantendo-a-integridade-de-dados-com-jailer%2F' /></p><div class="al2fb_like_button"><div id="fb-root"></div><script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/pt_BR/all.js#xfbml=1&appId=357307720952117";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<fb:like href="http://www.boaglio.com/index.php/2009/02/01/mantendo-a-integridade-de-dados-com-jailer/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.boaglio.com/index.php/2009/02/01/mantendo-a-integridade-de-dados-com-jailer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

