<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Delfino en la Güeb</title>
	<atom:link href="http://delfinonunez.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://delfinonunez.wordpress.com</link>
	<description></description>
	<lastBuildDate>Thu, 08 Dec 2011 06:21:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='delfinonunez.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Delfino en la Güeb</title>
		<link>http://delfinonunez.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://delfinonunez.wordpress.com/osd.xml" title="Delfino en la Güeb" />
	<atom:link rel='hub' href='http://delfinonunez.wordpress.com/?pushpress=hub'/>
		<item>
		<title>De SQL Developer y otras cosas&#8230;</title>
		<link>http://delfinonunez.wordpress.com/2010/04/06/de-sql-developer-y-otras-cosas/</link>
		<comments>http://delfinonunez.wordpress.com/2010/04/06/de-sql-developer-y-otras-cosas/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 18:39:17 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL Developer]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2010/04/06/de-sql-developer-y-otras-cosas/</guid>
		<description><![CDATA[Wow, hace varios meses que no escribo nada…bastante tiempo, he recibido comentarios de la serie de estadisticas y voy a escribir algunas cosas mas al respecto. No prometo fechas, por que la ultima vez dije que iba a escribir mas seguido y casi pasó un año sin escribir…así que mejor digo que voy a escribir [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=118&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Wow, hace varios meses que no escribo nada…bastante tiempo, he recibido comentarios de la serie de estadisticas y voy a escribir algunas cosas mas al respecto. No prometo fechas, por que la ultima vez dije que iba a escribir mas seguido y casi pasó un año sin escribir…así que mejor digo que voy a escribir pero no prometo fechas.</p>
<p>Pasando a otras cosas… ultimamente he estado usando mas SQL Developer y deje de utilizar TOAD por completo. Aunque hay muchisimas cosas que TOAD hace y que SQLD no las tiene o las hace muy mal, puedo decir que gran parte de las tareas que hago las puedo realizar con SQLD. Estuve moviendole un poco y cree unos reportes y “plugins” que me han sido muy utiles asi que quiero compartirlos por si les sirven a alguien. </p>
<p>Pueden bajarlos y modificarlos a su gusto, no es necesario ningun link ni agradecimiento ni nada, son gratis y cada quien los puede usar como quiera; y por tal razon no me hago resposable si algo pasa con sus bases de datos, no que fallen o hagan algo mal al contrario funcionan muy bien.</p>
<p>Todos los scripts estan probados en la version de SQL Developer 1.5.5, los reportes funcionan en la version 2.1 pero los plugins fallan, al parecer hay un bug en las nuevas versiones que no deja que los plugins funcionen bien, lo reporte en el foro de discusion pero no han arreglado eso asi que para que todo funcione utilicen la version 1.5.5.</p>
<h2>LOG SWITCHES</h2>
<p>Este reporte muestra los log switchs de la base de datos durante el dia por cada dia en la parte superior del reporte, si le dan click a un registro de la parte superior mostrara el detalle en la parte inferior todos los switches de ese dia y mostrara cuanto tiempo transcurrio de un log switch a otro.</p>
<p><a href="http://delfinonunez.files.wordpress.com/2010/04/image.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://delfinonunez.files.wordpress.com/2010/04/image_thumb.png?w=596&#038;h=370" width="596" height="370" /></a> </p>
<p><a href="http://docs.google.com/leaf?id=0B3hM1h7YD5BENmNhNmQyMGEtZWY0YS00YmM2LWE3YTgtYzkyYjc4ZTkzOWE0&amp;hl=en">DOWNLOAD LOG SWITCH</a></p>
<h2>SESSION BROWSER</h2>
<p>Este es un reporte donde se pueden ver las sesiones conectadas a la BD y muchisimos detalles sobre estas. No voy a detallar que es lo que hacen todas las opciones pero se puede ver informacion como: current wait, current sql, long operations,etc…</p>
<p>Es muy util para identificar problemas con una sesion en especifico.</p>
<p><a href="http://delfinonunez.files.wordpress.com/2010/04/image1.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://delfinonunez.files.wordpress.com/2010/04/image_thumb1.png?w=596&#038;h=278" width="596" height="278" /></a> </p>
<p>&#160;</p>
<p><a href="http://docs.google.com/leaf?id=0B3hM1h7YD5BEMjNlMjY5NTQtYjhlNi00OGNjLWE1MjAtNDIxNWM0MjUxNzgx&amp;hl=en" target="_blank">DOWNLOAD SESSION BROWSER</a></p>
</p>
<h2>TABLESPACE INFO</h2>
<p>Permite ver la utilización de espacio de los tablespaces de la base de datos, en la parte inferior se mostrara el detalle de los datafiles del tablespace seleccionado.</p>
<p><a href="http://delfinonunez.files.wordpress.com/2010/04/image2.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="http://delfinonunez.files.wordpress.com/2010/04/image_thumb2.png?w=596&#038;h=308" width="596" height="308" /></a> </p>
<p>&#160;</p>
<p><a href="http://docs.google.com/leaf?id=0B3hM1h7YD5BENDk2MDA2NmMtOGZlNy00YzY5LWFkZDQtZWQ3MjBjNDRjZDdl&amp;hl=en" target="_blank">DOWNLOAD TABLESPACE INFO</a></p>
<p>&#160;</p>
<p>En el siguiente post voy a poner algunos editores y navegadores de SQL Developer…</p>
<p>Hasta las proxima.</p>
<p>&#160;</p>
<p>Saludos y gracias por seguir leyendo.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/118/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=118&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2010/04/06/de-sql-developer-y-otras-cosas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>

		<media:content url="http://delfinonunez.files.wordpress.com/2010/04/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://delfinonunez.files.wordpress.com/2010/04/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://delfinonunez.files.wordpress.com/2010/04/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Como recuperar estadisticas anteriores con Oracle 10G</title>
		<link>http://delfinonunez.wordpress.com/2009/08/29/como-recuperar-estadisticas-anteriores-con-oracle-10g/</link>
		<comments>http://delfinonunez.wordpress.com/2009/08/29/como-recuperar-estadisticas-anteriores-con-oracle-10g/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 22:03:58 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/?p=88</guid>
		<description><![CDATA[A partir de la version 10g de Oracle se incluye una funcionalidad muy util para recuperar estadísticas. Cada vez que se utiliza el paquete DBMS_STATS para modificar las estadísticas la versión anterior de ellas es guardada automáticamente en caso que se desee recuperar. Esta opción es muy util si notamos que despues de calcular estadísticas [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=88&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A partir de la version 10g de Oracle se incluye una funcionalidad muy util para recuperar estadísticas. Cada vez que se utiliza el paquete DBMS_STATS para modificar las estadísticas la versión anterior de ellas es guardada automáticamente en caso que se desee recuperar. Esta opción es muy util si notamos que despues de calcular estadísticas el <em>performance</em> se degradó de manera considerable y necesitamos regresar las anteriores.</p>
<p>Pero no hay nada mejor que un ejemplo para mostrar como funciona&#8230;</p>
<p>Primero creamos una tabla para nuestras pruebas<br />
<pre class="brush: sql;">SQL&gt; create table t as select * from dba_objects;

Table created.
</pre></p>
<p>Contamos los registros y verificamos que no hay estadisticas<br />
<pre class="brush: sql;">SQL&gt; select count(*) from t;

COUNT(*)
----------
49779

SQL&gt; select table_name, num_rows, blocks, avg_space, avg_row_len, last_analyzed
2  from user_tables;

TABLE   NUM_ROWS     BLOCKS  AVG_SPACE AVG_ROW_LEN LAST_ANAL
----- ---------- ---------- ---------- ----------- ---------
T
</pre><br />
Recopilamos las estadisticas de la tabla<br />
<pre class="brush: sql;">SQL&gt;exec dbms_stats.gather_table_stats(user,'T');

PL/SQL procedure successfully completed.</pre><br />
Verificamos que las estadisticas fueran recopiladas<br />
<pre class="brush: sql;">SQL&gt;select table_name,num_rows,blocks,avg_space,avg_row_len,last_analyzed
2  from user_tables;

TABLE   NUM_ROWS     BLOCKS  AVG_SPACE AVG_ROW_LEN LAST_ANAL
----- ---------- ---------- ---------- ----------- ---------
T          49779        704          0          93 26-AUG-09</pre><br />
Aqui podemos constatar que el NUM_ROWS es igual al COUNT(*) que hicimos anteriormente, aunque no siempre es asi.<br />
Ahora vamos a verificar cuanta historia de estadisticas tenemos para esta tabla<br />
<pre class="brush: sql;">SQL&gt;select table_name,stats_update_time
2  from dba_tab_stats_history
3  where owner=user;

TABLE STATS_UPDATE_TIME
----- ---------------------------------------------------------------------------
T     26-AUG-09 06.51.01.496224 AM -04:00</pre><br />
Podemos observar que se han calculado una sola vez las estadisticas para la tabla.<br />
Ahora vamos a insertar mas registros y recalcular estadisticas<br />
<pre class="brush: sql;">SQL&gt;insert into t select * from dba_objects;
49778 rows created.
SQL&gt; /
49778 rows created.
SQL&gt; /
49778 rows created.
SQL&gt; commit;
Commit complete.</pre><br />
Verificamos el numero de registros y las estadisticas actuales. Podemos verificar que las estadisticas no estan actualizadas ya que el numero de registros es por mucho mayor al registrado en las estadisticas.<br />
<pre class="brush: sql;">SQL&gt;select count(*) from t;

COUNT(*)
----------
199113</pre><br />
<pre class="brush: sql;">SQL&gt;select table_name,num_rows,blocks,avg_space,avg_row_len,last_analyzed
2  from user_tables;

TABLE   NUM_ROWS     BLOCKS  AVG_SPACE AVG_ROW_LEN LAST_ANAL
----- ---------- ---------- ---------- ----------- ---------
T          49779        704          0          93 26-AUG-09</pre><br />
Ahora volvemos a recopilar estadisticas y verificamos que sean similares al COUNT<br />
<pre class="brush: sql;">SQL&gt;exec dbms_stats.gather_table_stats(user,'T');

PL/SQL procedure successfully completed.
SQL&gt; select table_name,num_rows,blocks,avg_space,avg_row_len,last_analyzed
2  from user_tables;

TABLE   NUM_ROWS     BLOCKS  AVG_SPACE AVG_ROW_LEN LAST_ANAL
----- ---------- ---------- ---------- ----------- ---------
T         199113       2784          0          93 26-AUG-09</pre><br />
Ahora verificamos cuanto historial tenemos<br />
<pre class="brush: sql;">SQL&gt; select table_name,stats_update_time
2  from dba_tab_stats_history
3  where owner=user;

TABLE STATS_UPDATE_TIME
----- ---------------------------------------------------------------------------
T     26-AUG-09 06.51.01.496224 AM -04:00
T     26-AUG-09 07.01.01.161096 AM -04:00</pre><br />
Podemos observar que ahora tenemos 2 registros de cuando se calcularon estadisticas.<br />
Ahora podemos regresar en el tiempo y dejar estadisticas a la fecha que queramos.<br />
Vamos a crear otro registro historico para juagar un poco las estadisticas.<br />
<pre class="brush: sql;">SQL&gt;insert into t select * from dba_objects;
49778 rows created.
SQL&gt; /
49778 rows created.
SQL&gt; select count(*) from t;

COUNT(*)
----------
298669

SQL&gt;select table_name,num_rows,blocks,avg_space,avg_row_len,last_analyzed
2  from user_tables;

TABLE   NUM_ROWS     BLOCKS  AVG_SPACE AVG_ROW_LEN LAST_ANAL
----- ---------- ---------- ---------- ----------- ---------
T         199113       2784          0          93 26-AUG-09

SQL&gt; exec dbms_stats.gather_table_stats(user,'T');

PL/SQL procedure successfully completed.

SQL&gt; l
1  select table_name,num_rows,blocks,avg_space,avg_row_len,last_analyzed
2* from user_tables
SQL&gt; /

TABLE   NUM_ROWS     BLOCKS  AVG_SPACE AVG_ROW_LEN LAST_ANAL
----- ---------- ---------- ---------- ----------- ---------
T         298002       4170          0          93 26-AUG-09

SQL&gt; select table_name,stats_update_time
2  from dba_tab_stats_history
3  where owner=user;

TABLE  STATS_UPDATE_TIME
-----  ---------------------------------------------------------------------------
T      26-AUG-09 06.51.01.496224 AM -04:00
T      26-AUG-09 07.01.01.161096 AM -04:00
T      26-AUG-09 07.04.17.929191 AM -04:00</pre><br />
Tenemos 3 registros historicos de estadisticas y ahora podemos regresar las estadisticas tal y como estaban al inicio si lo deseamos.<br />
Actualmente tenemos las estadisticas actualizadas, o sea NUM_ROWS=298,002<br />
Vamos a regresar las estadisticas cuando NUM_ROWS era 119,113<br />
<pre class="brush: sql;">SQL&gt; exec dbms_stats.restore_table_stats(user,'T','26-AUG-09 07.01.01.161096 AM -04:00');

PL/SQL procedure successfully completed.
SQL&gt; select table_name,num_rows,blocks,avg_space,avg_row_len,last_analyzed
2  from user_tables;

TABLE   NUM_ROWS     BLOCKS  AVG_SPACE AVG_ROW_LEN LAST_ANAL
----- ---------- ---------- ---------- ----------- ---------
T         199113       2784          0          93 26-AUG-09</pre><br />
Podemos ver que regresamos las estadisticas al valor anterior.<br />
Vamos a verificar cuanta historia tenemos ahora.<br />
<pre class="brush: sql;">SQL&gt; select table_name,stats_update_time
2  from dba_tab_stats_history
3  where owner = user;

TABLE  STATS_UPDATE_TIME
-----  ---------------------------------------------------------------------------
T      26-AUG-09 06.51.01.496224 AM -04:00
T      26-AUG-09 07.01.01.161096 AM -04:00
T      26-AUG-09 07.04.17.929191 AM -04:00

TABLE  STATS_UPDATE_TIME
-----  ---------------------------------------------------------------------------
T      26-AUG-09 07.06.50.924803 AM -04:00</pre><br />
Podemos observas que se creo otro registro historico, esto es normal ya que se crea 1 registro cada vez que se usa el paquete DBMS_STATS.<br />
Vamos a regresar las estadisticas como estaban al inicio<br />
<pre class="brush: sql;">SQL&gt; exec dbms_stats.restore_table_stats(user,'T','26-AUG-09 06.51.01.496224 AM -04:00');

PL/SQL procedure successfully completed.
SQL&gt; select table_name,num_rows,blocks,avg_space,avg_row_len,last_analyzed
2  from user_tables;

TABLE   NUM_ROWS     BLOCKS  AVG_SPACE AVG_ROW_LEN LAST_ANAL
----- ---------- ---------- ---------- ----------- ---------
T          49779        704          0          93 26-AUG-09

SQL&gt; select count(*) from t;

COUNT(*)
----------
298669

SQL&gt; select table_name,stats_update_time
2  from dba_tab_stats_history
3  where owner = user;

TABLE  STATS_UPDATE_TIME
-----  ---------------------------------------------------------------------------
T      26-AUG-09 06.51.01.496224 AM -04:00
T      26-AUG-09 07.01.01.161096 AM -04:00
T      26-AUG-09 07.04.17.929191 AM -04:00
T      26-AUG-09 07.06.50.924803 AM -04:00
T      26-AUG-09 07.10.30.136210 AM -04:00</pre><br />
Con esta opción podemos estar seguros que podremos regresar las estadisticas de las tablas en caso necesario.  Por default Oracle guarda los ultimos 31 dias de estadisticas, y como muchas opciones esto puede ser configurado a nuestras necesidades. Hay que notar que solo las estadisticas calculadas por medio de DBMS_STATS son las que se pueden regresar y registrar en la vista DBA_STATS_HISTORY, si por alguna razon se calculan estadisticas con ANALYZE TABLE estas no se pueden recuperar.</p>
<p>Al borrar el historico de las estadisticas obviamente limpia la vista que contiene los registros historicos y no se pueden recuperar.<br />
<pre class="brush: sql;">SQL&gt; exec dbms_stats.purge_stats(systimestamp);

PL/SQL procedure successfully completed.

SQL&gt; select table_name,stats_update_time
2  from dba_tab_stats_history
3  where owner=user;

no rows selected&amp;lt;

SQL&gt; drop table t;

Table dropped.</pre><br />
Ahora vamos a ver un ejemplo con la opcion de regresar las estadisticas para todo el schema. No voy a describir los pasos ya se explican por si mismos.<br />
<pre class="brush: sql;">SQL&gt; create table t as select * from dba_objects;

Table created.
SQL&gt; create table d as select * from dba_objects;

Table created.
SQL&gt; exec dbms_stats.gather_Schema_stats(user);

PL/SQL procedure successfully completed.

SQL&gt; select table_name,num_rows,blocks,avg_space,avg_row_len,last_analyzed
2  from user_tables;

TABLE   NUM_ROWS     BLOCKS  AVG_SPACE AVG_ROW_LEN LAST_ANAL
----- ---------- ---------- ---------- ----------- ---------
T          49779        704          0          93 26-AUG-09
D          49779        704          0          93 26-AUG-09

SQL&gt; insert into t select * from dba_objects;
49779 rows created.
SQL&gt; /
49779 rows created.
SQL&gt; insert into d select * from dba_objects;
49779 rows created.
SQL&gt; /
49779 rows created.
SQL&gt; /
49779 rows created.
SQL&gt; exec dbms_stats.gather_Schema_stats(user);
PL/SQL procedure successfully completed.

SQL&gt; select table_name,num_rows,blocks,avg_space,avg_row_len,last_analyzed
2  from user_tables;

TABLE   NUM_ROWS     BLOCKS  AVG_SPACE AVG_ROW_LEN LAST_ANAL
----- ---------- ---------- ---------- ----------- ---------
T         149337       2090          0          93 26-AUG-09
D         199116       2784          0          93 26-AUG-09

SQL&gt; select table_name,stats_update_time
2  from dba_tab_stats_history
3  where owner=user;

TABLE  STATS_UPDATE_TIME
-----  ---------------------------------------------------------------------------
D      26-AUG-09 07.18.00.582750 AM -04:00
T      26-AUG-09 07.18.01.161388 AM -04:00
D      26-AUG-09 07.17.06.242711 AM -04:00
T      26-AUG-09 07.17.06.781828 AM -04:00

SQL&gt; exec dbms_stats.restore_schema_stats(user,'26-AUG-09 07.18.00.582750 AM -04:00');

PL/SQL procedure successfully completed.

SQL&gt; select table_name,num_rows,blocks,avg_space,avg_row_len,last_analyzed
2  from user_tables;

TABLE   NUM_ROWS     BLOCKS  AVG_SPACE AVG_ROW_LEN LAST_ANAL
----- ---------- ---------- ---------- ----------- ---------
T          49779        704          0          93 26-AUG-09
D         199116       2784          0          93 26-AUG-09

SQL&gt; exec dbms_stats.restore_schema_stats(user,'26-AUG-09 07.18.01.161388 AM -04:00');

PL/SQL procedure successfully completed.

SQL&gt; select table_name,num_rows,blocks,avg_space,avg_row_len,last_analyzed
2  from user_tables;

TABLE   NUM_ROWS     BLOCKS  AVG_SPACE AVG_ROW_LEN LAST_ANAL
----- ---------- ---------- ---------- ----------- ---------
T         149337       2090          0          93 26-AUG-09
D         199116       2784          0          93 26-AUG-09

SQL&gt; exec dbms_stats.restore_schema_stats(user,'26-AUG-09 07.18.00.000000 AM -04:00');

PL/SQL procedure successfully completed.

SQL&gt; select table_name,num_rows,blocks,avg_space,avg_row_len,last_analyzed
2  from user_tables;

TABLE   NUM_ROWS     BLOCKS  AVG_SPACE AVG_ROW_LEN LAST_ANAL
----- ---------- ---------- ---------- ----------- ---------
T          49779        704          0          93 26-AUG-09
D          49779        704          0          93 26-AUG-09</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/88/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=88&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2009/08/29/como-recuperar-estadisticas-anteriores-con-oracle-10g/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Como migrar/copiar una base de datos a otro servidor.</title>
		<link>http://delfinonunez.wordpress.com/2009/07/13/como-migrarcopiar-una-base-de-datos-a-otro-servidor/</link>
		<comments>http://delfinonunez.wordpress.com/2009/07/13/como-migrarcopiar-una-base-de-datos-a-otro-servidor/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 16:42:26 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/?p=85</guid>
		<description><![CDATA[Un pequeño parentesis antes de comenzar con el post. Después de mucho tiempo (wow! casi un año), aqui vuelvo a las andadas. La verdad no había escrito algo por que no tenia ganas, o me entretenía haciendo otras cosas (WEBeando/surfeando), o no encontraba algún tema que tratar sobre Oracle; pero el día de hoy recibí [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=85&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Un pequeño parentesis antes de comenzar con el post.<br />
Después de mucho tiempo (wow! casi un año), aqui vuelvo a las andadas. La verdad no había escrito algo por que no tenia ganas, o me entretenía haciendo otras cosas (WEBeando/surfeando), o no encontraba algún tema que tratar sobre Oracle; pero el día de hoy recibí una pregunta de Paula sobre la migración de una base de datos a otro servidor y me pareció interesante escribir al respecto de manera rápida y sin mucho rodeo técnico, ademas sirve de pretexto para comenzar de nuevo a escribir&#8230;espero y así sea.</p>
<p>Bueno, ahora a lo que interesa, como le hago para mover/migrar una base de datos de un servidor a otro, la respuesta como todo en Oracle es muy sencilla&#8230;depende.</p>
<p>Bueno, depende de la información que tengamos. Basado en la información de Paula &#8220;Tengo una bd oracle 10g y la quiero &#8220;mover&#8221; a otro servidor&#8221;, pues la siguientes preguntas serian:</p>
<ol>
<li>El nuevo servidor es también 10g y la misma versión que el fuente, esto quiere decir que si es 10.0.2 a 10.0.2 y si ambas son de la misma edición (standard, enterprise, etc) ?</li>
<li> La versión del sistema operativo es la misma?</li>
<li>De que tamaño es la base de datos?</li>
<li> Hay posibilidad de detener la base de datos durante la migración o tienen que ser en tiempo real?</li>
<li> que mas&#8230;? mas detalles. No se me ocurren mas preguntas por el momento&#8230;</li>
</ol>
<h2>Que opciones tengo para la migración?</h2>
<p>Afortunadamente Oracle provee muchos métodos para realizar esta tarea, de nuevo, todo depende como la queramos hacer y depende de los requerimientos que tengamos. Pero existen soluciones sencillas y soluciones complejas, vamos a ver algunas de ellas de manera general y sin entrar en los detalles de cada una.</p>
<h2>Sencillas</h2>
<h3>Copia Directa</h3>
<p>Suponiendo que el nuevo servidor es exactamente igual que el anterior respecto a versiones de software (sistema operativo, base de datos, parches, etc) en teoría si copiamos todos los archivos de datos, control files, redo logs, etc la base de datos debería de funcionar correctamente. Personalmente yo no utilizaría esta opción por que siempre falta algo, un parche, un parámetro,  etc.</p>
<h3>Export/Import (DataPump en 10g)</h3>
<p>Este podría ser también complejo pero normalmente se hace un export del usuario(s) de la aplicación y se importa en la otra base de datos, creo que es de las mas sencillas que puede existir ademas que podemos hacer el export de una versión anterior a la nueva base de datos por ejemplo de 9i a 10g. El único problema de esta opción es que debemos tener mas o menos el mismo espacio en disco que la base de datos actual para poder hacer el export; por ejemplo en una base de datos de 10Gb tal vez si es conveniente hacerlo pero en una de 600Gb o de Tb ya no es tan practico hacerlo, y si ademas se tiene que transferir el archivo(s) del export pues seria muchísimo mas tardado.</p>
<h2>Complejas</h2>
<h3>RMAN Duplicate.</h3>
<p>RMAN es una utilitaria de Oracle para realizar backups/restore. Una opcion que es muy interesante es el &#8220;duplicate&#8221; y como su nombre lo dice duplica una base de datos a otro servidor. Básicamente como funciona es de la siguiente manera: se hace un backup de la base de datos &#8220;fuente/original&#8221;, una vez con el backup guardado en el tape/disco/etc el resto del trabajo se hace en el servidor &#8220;destino/nuevo&#8221;, en el destino se debe tener el software de Oracle instalado, hay que configurar el tnsnames.ora para tener acceso a la base &#8220;fuente&#8221;, se copia el init.ora del fuente al destino (para tener la misma configuración) y se hacen los cambios necesarios al archivo (cambiar el destino de los control files, memoria, etc), se agregan al init.ora 2 parámetros para el duplicate (db_file_name_convert y log_file_name_convert), se crea el spfile y se crea un script de RMAN para duplicar la base de datos.<br />
El script se ejecuta en la base de datos destino y básicamente el script o RMAN buscan el backup que hicimos de la fuente y hace un restore al destino de todos los archivos, hace un recover de la base hasta la hora/scn/etc que le digamos y deja la nueva base de datos lista para trabajar con ella.<br />
Personalmente este es un método preferido para hacer &#8220;refresh&#8221; de ambientes por ejemplo de produccion a QA o desarrollo, es rápido (bueno depende de ciertos factores red/servidor/discos/etc) y sencillo ya que una vez teniendo los scripts es solo cuestión de ejecutarlos y RMAN se encarga de todo.</p>
<p>NOTA.- Muchísimos pasos no son mencionados y cierta configuracion se tiene que hacer para que esto funcione correctamente.</p>
<h3>Backup/Restore</h3>
<p>Es muy similar al Duplicate pero casi todos los pasos los tenemos que hacer manualmente, hacer un backup del fuente, hacer el restore en el destino, recrear control files, hacer recover,etc.</p>
<h3>Copy a nivel SAN.</h3>
<p>Esta opción es ideal cuando se tienen bases de datos grandes (GB a TB+), en esencia la copia de la información se hace a nivel de hardware/discos. Si la base de datos fuente y destino están en una SAN entonces solo hay que copiar los discos que contienen la base de datos fuente a los discos que van a contener la base de datos destino. Todo esto se hace por medio del sistema operativo y regularmente lo hacen los encargados de los servidores. La participación del DBA en esta opción es mínima, solo hay que poner los tablespaces en la base de datos fuente en modo backup, se hace la copia a nivel hardware, una vez terminada la copia se quita el modo backup de la fuente, se envian los archivos del archive de la fuente al destino (de preferencia se hace un log switch) y en el destino se recrean los control files si es necesario y se hace un recover (aquí va a preguntar por los archives que acabamos de copiar) y listo, la BD queda funcional.</p>
<p>Y estas son las opciones que conozco para migrar/mover/copiar una base de datos de un lado a otro. No entre en detalles técnicos ya que cada sitio puede tener una configuración diferente y hardware diferente, por ejemplo donde trabajo actualmente tenemos un servidor de backups y eso facilita mucho hacer el duplicate de una base de datos en USA a Canadá por medio de la red (algo tardado). También faltan muchos detalles sobre que comandos usar para RMAN y para hacer la copia a nivel SAN, pero todos esos los pueden encontrar en la red en Google.</p>
<p>Si alguien conoce algún método diferente puede agregarlo a los comentarios&#8230;</p>
<p>Saludos.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/85/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=85&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2009/07/13/como-migrarcopiar-una-base-de-datos-a-otro-servidor/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>DBMS_STATS Parte 4, Exportar estadísticas</title>
		<link>http://delfinonunez.wordpress.com/2008/07/16/dbms_stats-parte-4-exportar-estadisticas/</link>
		<comments>http://delfinonunez.wordpress.com/2008/07/16/dbms_stats-parte-4-exportar-estadisticas/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 21:03:13 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2008/07/16/dbms_stats-parte-4-exportar-estadisticas/</guid>
		<description><![CDATA[Esta semana recibimos una llamada de un usuario diciendo que un reporte estaba muy lento (« típico caso») que antes se ejecutaba rápidamente pero ahora estaba tomando mucho tiempo. Y en efecto, el reporte estaba tomando como 1 hora para terminar. Ok, manos a la obra ; lo primero que hicimos fue pedirles a los [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=75&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:verdana;">Esta semana recibimos una llamada de un usuario diciendo que un reporte estaba muy lento (« típico caso») que antes se ejecutaba rápidamente pero ahora estaba tomando mucho tiempo.  Y en efecto, el reporte estaba tomando como 1 hora para terminar.<br />
Ok, manos a la obra ; lo primero que hicimos fue pedirles a los developers el query del reporte, no lo envían y hasta me asuste con el monstruo de query… en total 1969 líneas de código que incluían alrededor de 5 tablas con subqueries, group by, case when, sum over partition,etc,etc… digno de regresárselo al developer inmediatamente y decirle que no mam… que lo reescriba. Pero obviamente no hicimos eso, lo primero fue sacar un explain plan del query y al parecer estaba usando índices correctamente con excepción de 2 tablas donde estaba haciendo full scan. Primer síntoma que encontramos fue esos full scans pero “típico” los Developers nos dijeron que no habían cambiado nada en el reporte que ese era el Query que siempre había funcionado bien (y al final supimos que era cierto?) . Bueno entonces algo tuvo que cambiar para que el reporte estuviera lento, entonces lo segundo que revisamos fueron las estadísticas de las tablas y ahí fue donde encontramos el error, no se habían calculado desde la creación del sistema en Marzo.<br />
Bueno lo que haríamos seria calcular estadísticas y ver que pasaba con el reporte, pero me acorde que en varios lados recomiendan antes de cambiar las estadísticas guardar un respaldo en caso que deseemos regresar a las anteriores, mmmm, como hacer eso. Investigue un poco y de eso voy a hablar en este post, como exportar estadísticas y que se puede hacer con ellas.</span></p>
<h3><span style="font-family:verdana;">Para que exportar estadísticas?</span></h3>
<p><span style="font-family:verdana;"> El “problema” al calcular estadísticas es que los planes de ejecución pueden cambiar en algún punto en la vida de la base de datos;  un grupo de tablas al inicio puede tener cientos de registros pero después de 2 años tienen millones, esto hace que al calcular las estadísticas en esas tablas los planes de ejecución cambien. Pero no se supone que ese es el punto de calcular estadísticas, darle a Oracle la información mas actualizada sobre las tablas para que pueda tomar mejores decisiones en cuanto al plan de ejecución? totalmente cierto, eso es lo que queremos, pero hay ciertas situaciones en las que necesitamos saber que es lo que ha cambiado y nadie nos puede dar la respuesta (ni los developers, ni los managers, menos los usuarios). Por lo tanto lo ideal seria poder ver el plan de ejecución anterior (el bueno) con el plan de ejecución actual (el malo, lento); pero esto es complicado ya que tendríamos que estar guardando planes de ejecución por cada Query,etc. Pero que tal si tenemos las estadísticas de la semana pasada o el mes pasado, podríamos importarlas en el ambiente de pruebas y ver que es lo que ha cambiado, probar, probar y probar.<br />
Bueno, pues Oracle ya pensó al respecto y provee un conjunto de procedimientos para facilitar la tarea. A continuación voy a mostrar con un ejemplo como guardar y comparar estadísticas para una tabla.</span></p>
<p><span style="font-family:verdana;">Vamos a crear una tabla y calcularle estadísticas.</span><br />
SQL&gt; create table emp2 as select * from emp;<br />
Table created.</p>
<pre><span style="font-family:Courier New;">SQL&gt; set null &lt;&lt;null&gt;&gt;
 SQL&gt; select to_char(last_analyzed,'dd/mm/yyyy hh24:mi:ss') last_analyzed,
 2         num_rows,
 3         blocks,
 4         avg_space
 5   from user_tables where table_name='EMP2'
 6  ;</span></pre>
<pre><span style="font-family:Courier New;">LAST_ANALYZED         NUM_ROWS     BLOCKS  AVG_SPACE
 ------------------- ---------- ---------- ----------
 &lt;&lt;null&gt;&gt;            &lt;&lt;null&gt;&gt;   &lt;&lt;null&gt;&gt;   &lt;&lt;null&gt;&gt;</span></pre>
<pre><span style="font-family:Courier New;">SQL&gt; exec dbms_stats.gather_Table_stats(user,'EMP2');</span></pre>
<pre><span style="font-family:Courier New;">PL/SQL procedure successfully completed.</span></pre>
<pre><span style="font-family:Courier New;">SQL&gt; select to_char(last_analyzed,'dd/mm/yyyy hh24:mi:ss') last_analyzed,
 2         num_rows,
 3         blocks,
 4         avg_space
 5   from user_tables where table_name='EMP2';</span></pre>
<pre><span style="font-family:Courier New;">LAST_ANALYZED         NUM_ROWS     BLOCKS  AVG_SPACE
 ------------------- ---------- ---------- ----------
 16/07/2008 15:57:41         14          4          0
</span></pre>
<p><span style="font-family:verdana;">Bueno ahora hay que hacer que las estadísticas cambien y para hacerlo hay que cambiar la tabla EMP2. Vamos insertar 1 millón de registros.</span></p>
<p><span style="font-family:Courier New;">SQL&gt; insert into emp2 select * from emp connect by rownum &lt;= 1000000;</span></p>
<p><span style="font-family:Courier New;">1000013 rows created.</span></p>
<p>Ahora si calculamos estadísticas obviamente todo va a cambiar, pero lo que queremos hacer es guardar las anteriores y hacer una comparación.</p>
<p>Entonces para hacer un respaldo de las estadísticas anteriores primero debemos crear una tabla donde guardemos las estadísticas pasadas. Esto se realiza fácilmente con el procedimiento CREATE_STAT_TABLE.</p>
<p><span style="font-family:Courier New;">DBMS_STATS.CREATE_STAT_TABLE (<br />
ownname  VARCHAR2,<br />
stattab  VARCHAR2,<br />
tblspace VARCHAR2 DEFAULT NULL);</span></p>
<pre><!--[if gte mso 9]&gt;-->

 <!--[if gte mso 9]&gt;-->

<!--[if gte mso 10]&gt;-->
<!--[endif]-->
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="103" valign="top">

Parámetro</td>
<td width="487" valign="top">

Descripción</td>
</tr>
<tr>
<td width="103" valign="top">

Owname</td>
<td width="487" valign="top">

Nombre
  del schema/usuario que va a tener la tabla de estadisticas.</td>
</tr>
<tr>
<td width="103" valign="top">

Stattab</td>
<td width="487" valign="top">

Nombre de
  la nueva tabla a crear.</td>
</tr>
<tr>
<td width="103" valign="top">

Tblspace</td>
<td width="487" valign="top">

Nombre
  del tablespace donde queremos guardarla, si no se especifica se crea en el
  tablespace default de owname.</td>
</tr>
</tbody>
</table>

En nuestro caso owname es el mismo usuario de la tabla “problema”.</pre>
<p><span style="font-family:Courier New;">SQL&gt; exec dbms_stats.create_stat_table(USER,&#8217;HISTORIAL&#8217;);</span></p>
<p><span style="font-family:Courier New;">PL/SQL procedure successfully completed.</span></p>
<p>Según la documentación de Oracle la información de estadísticas se debe acceder solamente con los procedimientos de DBMS_STATS, pero la tabla no es cosa del otro mundo y si alguien esta interesado puede jugar con ella.</p>
<pre><span style="font-family:Courier New;">SQL&gt; desc historial;
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
STATID                                             VARCHAR2(30)
TYPE                                               CHAR(1)
VERSION                                            NUMBER
FLAGS                                              NUMBER
C1                                                 VARCHAR2(30)
C2                                                 VARCHAR2(30)
C3                                                 VARCHAR2(30)
C4                                                 VARCHAR2(30)
C5                                                 VARCHAR2(30)
N1                                                 NUMBER
N2                                                 NUMBER
N3                                                 NUMBER
N4                                                 NUMBER
N5                                                 NUMBER
N6                                                 NUMBER
N7                                                 NUMBER
N8                                                 NUMBER
N9                                                 NUMBER
N10                                                NUMBER
N11                                                NUMBER
N12                                                NUMBER
D1                                                 DATE
R1                                                 RAW(32)
R2                                                 RAW(32)
CH1                                                VARCHAR2(1000)
</span></pre>
<p>Ok, ahora que ya tenemos nuestra tabla como copiamos nuestras estadísticas a ella. Para eso utilizamos el procedimiento dbms_stats.EXPORT_TABLE_STATS, aunque para este ejemplo solo estamos utilizando la parte de una sola tabla hay otros procedimientos que permiten hacerlo a nivel schema, base de datos, etc:<br />
EXPORT_COLUMN_STATS Procedure<br />
EXPORT_DATABASE_STATS Procedure<br />
EXPORT_DICTIONARY_STATS Procedure<br />
EXPORT_FIXED_OBJECTS_STATS Procedure<br />
EXPORT_INDEX_STATS Procedure<br />
EXPORT_SCHEMA_STATS Procedure<br />
EXPORT_SYSTEM_STATS Procedure<br />
EXPORT_TABLE_STATS Procedure</p>
<p>En lo personal yo recomendaría hacerlo hasta nivel schema para así no perder las estadísticas de una tabla.</p>
<p>EXPORT_TABLE_STATS<br />
Permite sacar las estadisticas de una tabla y guardarlas en otra.</p>
<pre><span style="font-family:Courier New;">DBMS_STATS.EXPORT_TABLE_STATS (
 ownname  VARCHAR2,
 tabname  VARCHAR2,
 partname VARCHAR2 DEFAULT NULL,
 stattab  VARCHAR2,
 statid   VARCHAR2 DEFAULT NULL,
 cascade  BOOLEAN  DEFAULT TRUE,
 statown  VARCHAR2 DEFAULT NULL);</span></pre>
<pre><!--[if gte mso 9]&gt;-->

<!--[if gte mso 9]&gt;-->

<!--[if gte mso 10]&gt;-->
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="127" valign="top">

Parametro</td>
<td width="463" valign="top">

Descripción</td>
</tr>
<tr>
<td width="127" valign="top">

Owname</td>
<td width="463" valign="top">

Nombre
  del schema/usuario dueño de la tabla de la cual queremos respaldar.</td>
</tr>
<tr>
<td width="127" valign="top">

Tabname</td>
<td width="463" valign="top">

Nombre de
  la tabla que queremos respaldar.</td>
</tr>
<tr>
<td width="127" valign="top">

Partname</td>
<td width="463" valign="top">

Nombre de
  la partición.</td>
</tr>
<tr>
<td width="127" valign="top">

Stattab</td>
<td width="463" valign="top">

Nombre de
  la tabla donde vamos a guardar las estadísticas.</td>
</tr>
<tr>
<td width="127" valign="top">

Statid</td>
<td width="463" valign="top">

Identificador
  para las estadísticas. Es opcional pero es recomendable identificarlas.</td>
</tr>
<tr>
<td width="127" valign="top">

Cascade</td>
<td width="463" valign="top">

TRUE
  default, si deseamos exportar estadísticas de índices y columnas.</td>
</tr>
<tr>
<td width="127" valign="top">

Statown</td>
<td width="463" valign="top">

Quien es
  el dueño de la tabla de estadísticas, diferente a owname.</td>
</tr>
</tbody>
</table>

<span style="font-family:Courier New;">
</span></pre>
<p><span style="font-family:Courier New;">SQL&gt; exec dbms_stats.export_table_stats(USER,&#8217;EMP2&#8242;,null, &#8216;HISTORIAL&#8217;,'Primera&#8217;,TRUE,&#8217;SCOTT&#8217;);</span></p>
<p><span style="font-family:Courier New;">PL/SQL procedure successfully completed.</span></p>
<p><span style="font-family:Courier New;">SQL&gt; SELECT COUNT(*) FROM HISTORIAL;</span></p>
<p><span style="font-family:Courier New;"> COUNT(*)<br />
&#8212;&#8212;&#8212;-<br />
9</span></p>
<p>Ahora ya tenemos un respaldo de estadísticas (si alguien esta interesado puede hacer un select a la tabla y ver que contiene), en este momento podemos calcular las nuevas y comenzar a comparar.</p>
<pre><span style="font-family:Courier New;">SQL&gt; exec dbms_stats.gather_Table_stats(user,'EMP2');</span></pre>
<pre><span style="font-family:Courier New;">PL/SQL procedure successfully completed.</span></pre>
<pre><span style="font-family:Courier New;">SQL&gt; select to_char(last_analyzed,'dd/mm/yyyy hh24:mi:ss') last_analyzed,
 2         num_rows,
 3         blocks,
 4         avg_row_len
 5   from user_tables where table_name='EMP2';</span></pre>
<pre><span style="font-family:Courier New;">LAST_ANALYZED         NUM_ROWS     BLOCKS AVG_ROW_LEN
 ------------------- ---------- ---------- -----------
 16/07/2008 16:29:16    1007517       5539          34</span></pre>
<p>Perfecto, ahora tenemos estadísticas nuevas. Obviamente en nuestro ejemplo ya sabemos que fue lo que cambio, pero en un ambiente real regularmente no lo sabemos.</p>
<p>Bueno ahora como le hacemos para comparar las estadísticas actuales con las estadísticas anteriores. Para esto nos vamos a servir de un poco de PL/SQL, la verdad no se si Oracle provee alguna herramienta mas amigable para comparar por que hacer un programa para comparar si es un poco fastidioso, sobre todo cuando se desea comparar varias tablas a la vez.<br />
El procedimiento que nos da información (muy poca a mi parecer y un poco limitado) de las estadísticas es dbms_stats.GET_TABLE_STATS.</p>
<pre><span style="font-family:Courier New;">DBMS_STATS.GET_TABLE_STATS (
 ownname         VARCHAR2,
 tabname         VARCHAR2,
 partname        VARCHAR2 DEFAULT NULL,
 stattab         VARCHAR2 DEFAULT NULL,
 statid          VARCHAR2 DEFAULT NULL,
 numrows     OUT NUMBER,
 numblks     OUT NUMBER,
 avgrlen     OUT NUMBER,
 statown         VARCHAR2 DEFAULT NULL,
 cachedblk   OUT NUMBER,
 cachehit    OUT NUMBER);</span>
<span style="font-family:Courier New;"> SQL&gt; set serveroutput on
 SQL&gt;
 SQL&gt; DECLARE
 2   numr NUMBER;
 3   numb NUMBER;
 4   avgr NUMBER;
 5   vtabname varchar2(100);
 6   vstattab varchar2(100);
 7   vstatid  varchar2(100);
 8  BEGIN
 9
 10    vtabname := 'EMP2';
 11    vstatid  := 'PRIMERA';
 12    vstattab := 'HISTORIAL';
 13
 14    dbms_stats.get_table_stats(
 15    ownname=&gt; USER,
 16    tabname=&gt; vtabname,
 17    partname=&gt;null,
 18    stattab=&gt;vstattab,
 19    statid=&gt; vstatid,
 20    numrows=&gt;numr,
 21    numblks=&gt;numb,
 22    avgrlen=&gt;avgr,
 23    statown=&gt;USER);
 24
 25    dbms_output.put_line ('Table: '||vtabname);
 26    dbms_output.put_line('# of rows: ' || TO_CHAR(numr));
 27    dbms_output.put_line('# of blocks: ' || TO_CHAR(numb));
 28    dbms_output.put_line('Avg row len: ' || TO_CHAR(avgr) || ' bytes');
 29
 30  end;
 31  /
 Table: EMP2
 # of rows: 14
 # of blocks: 4
 Avg row len: 37 bytes</span></pre>
<p><span style="font-family:Courier New;">PL/SQL procedure successfully completed.</span></p>
<p>Con esto podemos comparar el antes y despues</p>
<pre><!--[if gte mso 9]&gt;-->
<!--[if gte mso 9]&gt;-->

<!--[if gte mso 10]&gt;-->
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="197" valign="top"></td>
<td width="197" valign="top">

<strong>Antes</strong></td>
<td width="197" valign="top">

<strong>Despues</strong></td>
</tr>
<tr>
<td width="197" valign="top">

Rows</td>
<td width="197" valign="top">

14</td>
<td width="197" valign="top">

1007517</td>
</tr>
<tr>
<td width="197" valign="top">

Blocks</td>
<td width="197" valign="top">

4</td>
<td width="197" valign="top">

5539</td>
</tr>
<tr>
<td width="197" valign="top">

Avg Row
  Len</td>
<td width="197" valign="top">

37</td>
<td width="197" valign="top">

34</td>
</tr>
</tbody>
</table>
</pre>
<p>Así que esta es una manera “rápida” y sucia de respaldar las estadísticas de una tabla (aunque es posible hacerlo para el schema, BD,etc) y después comparar para saber que fue lo que paso.<br />
En el siguiente post voy a mostrar que más se puede hacer con las estadísticas que tenemos guardadas.</p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:1040px;width:1px;height:1px;">
<pre>&lt;/<span class="end-tag">pre</span>&gt;</pre>
</div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/75/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/75/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/75/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=75&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2008/07/16/dbms_stats-parte-4-exportar-estadisticas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Tablespace Size en SQL Developer</title>
		<link>http://delfinonunez.wordpress.com/2008/07/16/tablespace-size-en-sql-developer-2/</link>
		<comments>http://delfinonunez.wordpress.com/2008/07/16/tablespace-size-en-sql-developer-2/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 16:01:52 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2008/07/16/tablespace-size-en-sql-developer-2/</guid>
		<description><![CDATA[Para los que utilizan SQL Developer, este es un reporte que muestra la información sobre el tamaño de los tablespaces en una base de datos. Regularmente nos piden el tamaño de la base de datos o simplemente tenemos que ajustar el tamaño de los tablespaces como parte del mantenimiento. El siguiente reporte nos permite ver [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=63&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Para los que utilizan SQL Developer, este es un reporte que muestra la información sobre el tamaño de los tablespaces en una base de datos.<br />
Regularmente nos piden el tamaño de la base de datos o simplemente tenemos que ajustar el tamaño de los tablespaces como parte del mantenimiento.<br />
El siguiente reporte nos permite ver de manera rápida toda esta información.</p>
<ul>
<li>Dar click en el reporte dentro la sección de User Defined Reports.
</li>
</ul>
<p><a href="http://www.scrnshots.com/users/denunez/screenshots/30996"><img src="http://s3.amazonaws.com/scrnshots.com/screenshots/30996/img1.jpg" /></a></p>
<ul>
<li>Seleccionar la conexión sobre la cual deseamos obtener la información.</li>
</ul>
<p><a href="http://www.scrnshots.com/users/denunez/screenshots/31000"><img src="http://s3.amazonaws.com/scrnshots.com/screenshots/31000/img2.jpg" /></a></p>
<ul>
<li>Seleccionar a que porcentaje deseamos dejar los tablespaces. Por ejemplo si actualmente sabemos que unos estan a 98% y queremos dejarlos al 50% entonces ponemos 50. El reporte obtendrá cuanto espacio (MB) se necesita agregar a los tablespaces para bajarlos a 50%
</li>
</ul>
<p><a href="http://www.scrnshots.com/users/denunez/screenshots/31004"><img src="http://s3.amazonaws.com/scrnshots.com/screenshots/31004/img3.jpg" /></a></p>
<ul>
<li>El reporte se muestra en la pantalla con toda la información que necesitamos.<a href="http://www.scrnshots.com/users/denunez/screenshots/31008"><img src="http://s3.amazonaws.com/scrnshots.com/screenshots/31008/img4.jpg" /></a></li>
</ul>
<p>El query que da la información anterior es el siguiente:</p>
<pre>
 SELECT nvl(name,'=== TOTAL for DB ===') "Tablespace"                          ,
  TO_CHAR(SUM(mbytes),'999,999,999.99') "Total MB" ,
  TO_CHAR(SUM(used),'999,999,999.99') "Used MB"    ,
  TO_CHAR(SUM(free),'999,999,999.99') "Free MB"    ,
  ROUND(AVG(pct_used),2) "%Used"                   ,
  ROUND(AVG(pct_free),2) "%Free"                   ,
  'SQLDEV:GAUGE:0:100:0:0:'
  || AVG(pct_used) AS "Tablespace Utilization"          ,
  TO_CHAR(SUM(new_sz),'999,999,999.99') "Expected Size" ,
  TO_CHAR(SUM(add_sz),'999,999,999.99') "Add MB for desired %"
   FROM
  (SELECT name                ,
    ROUND(mbytes,2) mbytes    ,
    ROUND(used,2) used        ,
    ROUND(free,2) free        ,
    ROUND(pct_used,2) pct_used,
    ROUND(pct_free,2) pct_free,
    ROUND(
    CASE
      WHEN ( ((100 *used)/ trim(:desired_pct))-mbytes &lt; 0)
      THEN mbytes
      ELSE ((100*used)/ trim(:desired_pct))
    END,2) new_sz,
    ROUND(
    CASE
      WHEN ( (((100 *used)/ trim(:desired_pct))-mbytes) &lt; 0 )
      THEN 0
      ELSE (((100 *used)/ trim(:desired_pct))-mbytes)
    END,2) add_sz
     FROM
    (SELECT NVL(b.tablespace_name, NVL(a.tablespace_name,'UNKOWN')) name,
      mbytes_alloc Mbytes                                               ,
      mbytes_alloc-NVL(mbytes_free,0) used                              ,
      NVL(mbytes_free,0) free                                           ,
      ((mbytes_alloc-NVL(mbytes_free,0))/ mbytes_alloc)*100 pct_used    ,
      100           -(((mbytes_alloc-NVL(mbytes_free,0))/ mbytes_alloc)*100) pct_free
       FROM
      (SELECT SUM(bytes)/1024/1024 Mbytes_free,
        MAX(bytes)      /1024/1024 largest    ,
        tablespace_name
         FROM dba_free_space
     GROUP BY tablespace_name
      ) a                                      ,
      (SELECT SUM(bytes)/1024/1024 Mbytes_alloc,
        SUM(maxbytes)   /1024/1024 Mbytes_max  ,
        tablespace_name
         FROM sys.dba_data_files
     GROUP BY tablespace_name

    UNION ALL

       SELECT SUM(bytes)/1024/1024 Mbytes_alloc,
        SUM(maxbytes)   /1024/1024 Mbytes_max  ,
        tablespace_name
         FROM dba_temp_files
     GROUP BY tablespace_name
      ) b
      WHERE a.tablespace_name (+) = b.tablespace_name
    )
  )
GROUP BY rollup (name)
ORDER BY
  CASE
    WHEN name IS NULL
    THEN 200
    ELSE ROUND(AVG(pct_free),2)
  END ASC
</pre>
<p>Para crear el reporte solo hay que dar click derecho sobre User Defined Reports y seleccionar Add Report</p>
<p><a href="http://www.scrnshots.com/users/denunez/screenshots/31012"><img src="http://s3.amazonaws.com/scrnshots.com/screenshots/31012/img5.jpg" /></a></p>
<p>Luego llenar los detalles del reporte:</p>
<p><a href="http://www.scrnshots.com/users/denunez/screenshots/31016"><img src="http://s3.amazonaws.com/scrnshots.com/screenshots/31016/img6.jpg" /></a></p>
<p><a href="http://www.scrnshots.com/users/denunez/screenshots/31020"><img src="http://s3.amazonaws.com/scrnshots.com/screenshots/31020/img7.jpg" /></a></p>
<p>Después Apply&#8230;y listo, a disfrutar del reporte.</p>
<blockquote><p>Aquí esta el codigo XML para importar el reporte</p></blockquote>
<p>.<br />
<a href="http://docs.google.com/Doc?id=df34gnrg_11fbrggncd">Reporte en XML</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/63/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/63/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/63/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=63&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2008/07/16/tablespace-size-en-sql-developer-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>

		<media:content url="http://s3.amazonaws.com/scrnshots.com/screenshots/30996/img1.jpg" medium="image" />

		<media:content url="http://s3.amazonaws.com/scrnshots.com/screenshots/31000/img2.jpg" medium="image" />

		<media:content url="http://s3.amazonaws.com/scrnshots.com/screenshots/31004/img3.jpg" medium="image" />

		<media:content url="http://s3.amazonaws.com/scrnshots.com/screenshots/31008/img4.jpg" medium="image" />

		<media:content url="http://s3.amazonaws.com/scrnshots.com/screenshots/31012/img5.jpg" medium="image" />

		<media:content url="http://s3.amazonaws.com/scrnshots.com/screenshots/31016/img6.jpg" medium="image" />

		<media:content url="http://s3.amazonaws.com/scrnshots.com/screenshots/31020/img7.jpg" medium="image" />
	</item>
		<item>
		<title>DBA_FREE_SPACE</title>
		<link>http://delfinonunez.wordpress.com/2008/04/17/dba_free_space/</link>
		<comments>http://delfinonunez.wordpress.com/2008/04/17/dba_free_space/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 15:20:25 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[dba_free_space performance recycle bin]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2008/04/17/dba_free_space/</guid>
		<description><![CDATA[Esta semana me encontré con un problema muy raro, cuando hacia un query sobre la vista dba_free_space éste se tardaba mucho para regresar la respuesta cuando en otras bases de datos el resultados lo regresaba en cuestión de milisegundos. Después de obtener el explain plan me di cuenta que a partir de la versión 10g [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=59&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Esta semana me encontré con un problema muy raro, cuando hacia un query sobre la vista dba_free_space éste se tardaba mucho para regresar la respuesta cuando en otras bases de datos el resultados lo regresaba en cuestión de milisegundos.</p>
<p>Después de obtener el explain plan me di cuenta que a partir de la versión 10g esta vista incluye también el recycle_bin. A continuación voy a explicar el problema y como resolverlo (después de calcular estadísticas de sistema, modificar parámetros del init,etc).</p>
<h2>Recycle Bin</h2>
<p>Básicamente el recycle bin es similar al de windows, es un lugar dentro de la base de datos que sirve para guardar todos los objectos borrados. El recycle bin esta habilitado por default; así que si nosotros hacemos algo como:</p>
<pre>drop table emp;</pre>
<p>la tabla es &#8220;borrada&#8221; y nosotros podemos volver a crear otra tabla emp (igualita) y trabajar con ella,etc. Pero en realidad la tabla no fue borrada, lo que sucedió fue que oracle nada mas renombro la tabla con el prefijo BIN$$ y una secuencia de caracteres, la tabla (la estructura, indices, constraints, registros) siguen dentro del mismo tablespace ocupando espacio y no son borrados hasta que se utiliza el comando PURGE. </p>
<p>La razón de esta funcionalidad es variada pero principalmente es para poder recuperar información borrada de manera accidental.</p>
<p>Mas información sobre el recycle bin: <a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/tables.htm#sthref2383">What is the recycle bin?</a></p>
<h2>Y que tiene que ver el recycle bin con dba_free_space?</h2>
<p>Pues a partir de la versión 10g la vista accesa tambien la tabla sys.recyclebin$ para saber cuanto espacio queda libre en un tablespace, como habia mecionado anteriormente los objetos borrados no son eliminados completamente y en esta tabla se guarda la información(nombre, tamaño,etc) respecto a estos objetos.<br />
Tiene sentido que la vista ahora incluya el recycle_bin (RBin) ya que hay que tomar en cuenta ahora cuanto espacio ocupan los objetos &#8220;borrados&#8221;.</p>
<p>Bueno, ahora mejor muestro un ejemplo sobre lo que puede suceder y como resolverlo.</p>
<p>Primero hay que ejecutar un query que contenga la vista:</p>
<pre>
SQL&gt; select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bi
PL/SQL Release 10.2.0.2.0 - Production
CORE    10.2.0.2.0      Production
TNS for HPUX: Version 10.2.0.2.0 - Production
NLSRTL Version 10.2.0.2.0 - Production

SQL&gt; set lines 130
SQL&gt; set pages 10000
SQL&gt; alter system flush shared_pool;

System altered.

Elapsed: 00:00:00.05
SQL&gt; alter system flush buffer_cache;

System altered.

Elapsed: 00:00:00.29
SQL&gt; l
  1  select tablespace_name TS2,
  2         sum(bytes) SUM_B2,
  3         max(bytes) MAX_B2,
  4         count(bytes) CNT_B2
  5    from dba_free_space
  6*  group by tablespace_name

SQL&gt; /

TS2                                SUM_B2     MAX_B2     CNT_B2
------------------------------ ---------- ---------- ----------
PSAPPW1                        3.7242E+10 2990538752      21213
PSAPPW1640                     1.6777E+10 4160749568          8
PSAPPW1700                     3194159104 1581252608          7
PSAPPW1DB                       671744000  670957568          2
PSAPPW1DIM                     6167658496 3471835136        305
PSAPPW1FACT                    2222653440  900661248         64
PSAPPW1ODS                     6.9220E+11 3220176896      17456
PSAPPW1USR                     1730150400  455475200       3486
PSAPUNDO                       5.5332E+10 1736441856       1242
PSAPZFCT0                      2.6376E+10 1534066688      10457
PSAPZFCT1                      9236316160  443547648        523
PSAPZODS0                      7.2968E+10 2434793472        452
PSAPZODS1                      2.5842E+10 3226468352       1011
SYSAUX                          892534784  834600960         96
SYSTEM                         2040774656 2040479744          7

15 rows selected.

Elapsed: 00:02:50.81

Execution Plan
----------------------------------------------------------
Plan hash value: 2686115433

-----------------------------------------------------------------------------------------
| Id  | Operation                    | Name             | Rows  | Bytes |TempSpc| Cost  |
-----------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT             |                  |   649 | 19470 |       |   126K|
|   1 |  SORT GROUP BY               |                  |   649 | 19470 |       |   126K|
|   2 |   VIEW                       | DBA_FREE_SPACE   |   649 | 19470 |       |   126K|
|   3 |    UNION-ALL                 |                  |       |       |       |       |
|   4 |     NESTED LOOPS             |                  |     7 |   259 |       |     5 |
|   5 |      NESTED LOOPS            |                  |     7 |   210 |       |     5 |
|*  6 |       TABLE ACCESS FULL      | TS$              |     2 |    40 |       |     3 |
|*  7 |       TABLE ACCESS CLUSTER   | FET$             |     4 |    40 |       |     1 |
|*  8 |      INDEX UNIQUE SCAN       | I_FILE2          |     1 |     7 |       |       |
|   9 |     NESTED LOOPS             |                  |    74 |  5328 |       |    90 |
|  10 |      NESTED LOOPS            |                  |    74 |  4810 |       |    90 |
|* 11 |       TABLE ACCESS FULL      | TS$              |    14 |   364 |       |     3 |
|* 12 |       FIXED TABLE FIXED INDEX| X$KTFBFE (ind:1) |     5 |   195 |       |     7 |
|* 13 |      INDEX UNIQUE SCAN       | I_FILE2          |     1 |     7 |       |       |
|  14 |     NESTED LOOPS             |                  |     1 |    97 |       |   125K|
|  15 |      NESTED LOOPS            |                  |     1 |    90 |       |   125K|
|* 16 |       HASH JOIN              |                  | 20579 |   763K|   488K|    42 |
|  17 |        TABLE ACCESS FULL     | RECYCLEBIN$      | 20791 |   243K|       |    18 |
|* 18 |        TABLE ACCESS FULL     | TS$              |    14 |   364 |       |     3 |
|* 19 |       FIXED TABLE FIXED INDEX| X$KTFBUE (ind:1) |     1 |    52 |       |     7 |
|* 20 |      INDEX UNIQUE SCAN       | I_FILE2          |     1 |     7 |       |       |
|  21 |     NESTED LOOPS             |                  |   567 | 29484 |       |   462 |
|* 22 |      HASH JOIN               |                  |   567 | 25515 |       |   462 |
|* 23 |       HASH JOIN              |                  |  7475 |   240K|       |   430 |
|* 24 |        TABLE ACCESS FULL     | TS$              |     2 |    40 |       |     3 |
|  25 |        TABLE ACCESS FULL     | UET$             |  7475 | 97175 |       |   426 |
|  26 |       TABLE ACCESS FULL      | RECYCLEBIN$      | 20791 |   243K|       |    18 |
|* 27 |      INDEX UNIQUE SCAN       | I_FILE2          |     1 |     7 |       |       |
-----------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   6 - filter("TS"."BITMAPPED"=0)
   7 - filter("TS"."TS#"="F"."TS#")
   8 - access("F"."TS#"="FI"."TS#" AND "F"."FILE#"="FI"."RELFILE#")
  11 - filter("TS"."BITMAPPED"0 AND ("TS"."ONLINE$"=1 OR "TS"."ONLINE$"=4) AND
              "TS"."CONTENTS$"=0)
  12 - filter("TS"."TS#"="F"."KTFBFETSN")
  13 - access("F"."KTFBFETSN"="FI"."TS#" AND "F"."KTFBFEFNO"="FI"."RELFILE#")
  16 - access("TS"."TS#"="RB"."TS#")
  18 - filter("TS"."BITMAPPED"0 AND ("TS"."ONLINE$"=1 OR "TS"."ONLINE$"=4) AND
              "TS"."CONTENTS$"=0)
  19 - filter("U"."KTFBUESEGTSN"="RB"."TS#" AND "U"."KTFBUESEGFNO"="RB"."FILE#"
              AND "U"."KTFBUESEGBNO"="RB"."BLOCK#")
  20 - access("RB"."TS#"="FI"."TS#" AND "RB"."FILE#"="FI"."RELFILE#")
  22 - access("U"."TS#"="RB"."TS#" AND "U"."SEGFILE#"="RB"."FILE#" AND
              "U"."SEGBLOCK#"="RB"."BLOCK#")
  23 - access("TS"."TS#"="U"."TS#")
  24 - filter("TS"."BITMAPPED"=0)
  27 - access("U"."TS#"="FI"."TS#" AND "U"."SEGFILE#"="FI"."RELFILE#")

Note
-----
   - cpu costing is off (consider enabling it)

Statistics
----------------------------------------------------------
     520872  recursive calls
       1992  db block gets
     123081  consistent gets
      31977  physical reads
          0  redo size
       1235  bytes sent via SQL*Net to client
        465  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
         21  sorts (memory)
          0  sorts (disk)
         15  rows processed
</pre>
<p>Del query podemos observar lo siguiente:<br />
Tiempo de ejecución:</p>
<pre>Elapsed: 00:02:50.81</pre>
<p>Del explain plan podemos ver que accesa el recycle bin:</p>
<pre>TABLE ACCESS FULL      | RECYCLEBIN$      | 20791 |   243K|
</pre>
<p>Y también podemos ver que las estadísticas son algo altas para esta simple vista.</p>
<p>Ok, ahora hacemos un Purge y volvemos a ejecutar el query y revisamos el resultado.</p>
<pre>
SQL&gt; PURGE DBA_RECYCLEBIN;

DBA Recyclebin purged.

Elapsed: 00:28:58.65

SQL&gt; alter system flush shared_pool;

System altered.

Elapsed: 00:00:00.10
SQL&gt; alter system flush buffer_cache;

System altered.

Elapsed: 00:00:01.51
SQL&gt; set timing on;
SQL&gt; set autotrace on;
SQL&gt; select tablespace_name TS2,
  2  sum(bytes) SUM_B2,
  3  max(bytes) MAX_B2,
  4  count(bytes) CNT_B2
  5  from dba_free_space
  6  group by tablespace_name;

TS2                                SUM_B2     MAX_B2     CNT_B2
------------------------------ ---------- ---------- ----------
PSAPPW1                        3.7242E+10 2990538752       3370
PSAPPW1640                     1.6777E+10 4160749568          8
PSAPPW1700                     3194159104 1581252608          7
PSAPPW1DB                       671744000  670957568          2
PSAPPW1DIM                     6167658496 3471835136        288
PSAPPW1FACT                    2222653440  900661248         64
PSAPPW1ODS                     6.9220E+11 3220176896      17456
PSAPPW1USR                     1730150400 1233649664         12
PSAPUNDO                       5.4988E+10 1736441856       1234
PSAPZFCT0                      2.6376E+10 1534066688       3412
PSAPZFCT1                      9236316160  443547648        523
PSAPZODS0                      7.2968E+10 2434793472        452
PSAPZODS1                      2.5842E+10 3226468352       1011
SYSAUX                          892534784  834600960         96
SYSTEM                         2040774656 2040479744          7

15 rows selected.

Elapsed: 00:00:06.21

Execution Plan
----------------------------------------------------------
Plan hash value: 2686115433

-----------------------------------------------------------------------------------------
| Id  | Operation                    | Name             | Rows  | Bytes |TempSpc| Cost  |
-----------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT             |                  |   649 | 19470 |       |   126K|
|   1 |  SORT GROUP BY               |                  |   649 | 19470 |       |   126K|
|   2 |   VIEW                       | DBA_FREE_SPACE   |   649 | 19470 |       |   126K|
|   3 |    UNION-ALL                 |                  |       |       |       |       |
|   4 |     NESTED LOOPS             |                  |     7 |   259 |       |     5 |
|   5 |      NESTED LOOPS            |                  |     7 |   210 |       |     5 |
|*  6 |       TABLE ACCESS FULL      | TS$              |     2 |    40 |       |     3 |
|*  7 |       TABLE ACCESS CLUSTER   | FET$             |     4 |    40 |       |     1 |
|*  8 |      INDEX UNIQUE SCAN       | I_FILE2          |     1 |     7 |       |       |
|   9 |     NESTED LOOPS             |                  |    74 |  5328 |       |    90 |
|  10 |      NESTED LOOPS            |                  |    74 |  4810 |       |    90 |
|* 11 |       TABLE ACCESS FULL      | TS$              |    14 |   364 |       |     3 |
|* 12 |       FIXED TABLE FIXED INDEX| X$KTFBFE (ind:1) |     5 |   195 |       |     7 |
|* 13 |      INDEX UNIQUE SCAN       | I_FILE2          |     1 |     7 |       |       |
|  14 |     NESTED LOOPS             |                  |     1 |    97 |       |   125K|
|  15 |      NESTED LOOPS            |                  |     1 |    90 |       |   125K|
|* 16 |       HASH JOIN              |                  | 20579 |   763K|   488K|    42 |
|  17 |        TABLE ACCESS FULL     | RECYCLEBIN$      | 20791 |   243K|       |    18 |
|* 18 |        TABLE ACCESS FULL     | TS$              |    14 |   364 |       |     3 |
|* 19 |       FIXED TABLE FIXED INDEX| X$KTFBUE (ind:1) |     1 |    52 |       |     7 |
|* 20 |      INDEX UNIQUE SCAN       | I_FILE2          |     1 |     7 |       |       |
|  21 |     NESTED LOOPS             |                  |   567 | 29484 |       |   462 |
|* 22 |      HASH JOIN               |                  |   567 | 25515 |       |   462 |
|* 23 |       HASH JOIN              |                  |  7475 |   240K|       |   430 |
|* 24 |        TABLE ACCESS FULL     | TS$              |     2 |    40 |       |     3 |
|  25 |        TABLE ACCESS FULL     | UET$             |  7475 | 97175 |       |   426 |
|  26 |       TABLE ACCESS FULL      | RECYCLEBIN$      | 20791 |   243K|       |    18 |
|* 27 |      INDEX UNIQUE SCAN       | I_FILE2          |     1 |     7 |       |       |
-----------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   6 - filter("TS"."BITMAPPED"=0)
   7 - filter("TS"."TS#"="F"."TS#")
   8 - access("F"."TS#"="FI"."TS#" AND "F"."FILE#"="FI"."RELFILE#")
  11 - filter("TS"."BITMAPPED"0 AND ("TS"."ONLINE$"=1 OR "TS"."ONLINE$"=4) AND
              "TS"."CONTENTS$"=0)
  12 - filter("TS"."TS#"="F"."KTFBFETSN")
  13 - access("F"."KTFBFETSN"="FI"."TS#" AND "F"."KTFBFEFNO"="FI"."RELFILE#")
  16 - access("TS"."TS#"="RB"."TS#")
  18 - filter("TS"."BITMAPPED"0 AND ("TS"."ONLINE$"=1 OR "TS"."ONLINE$"=4) AND
              "TS"."CONTENTS$"=0)
  19 - filter("U"."KTFBUESEGTSN"="RB"."TS#" AND "U"."KTFBUESEGFNO"="RB"."FILE#"
              AND "U"."KTFBUESEGBNO"="RB"."BLOCK#")
  20 - access("RB"."TS#"="FI"."TS#" AND "RB"."FILE#"="FI"."RELFILE#")
  22 - access("U"."TS#"="RB"."TS#" AND "U"."SEGFILE#"="RB"."FILE#" AND
              "U"."SEGBLOCK#"="RB"."BLOCK#")
  23 - access("TS"."TS#"="U"."TS#")
  24 - filter("TS"."BITMAPPED"=0)
  27 - access("U"."TS#"="FI"."TS#" AND "U"."SEGFILE#"="FI"."RELFILE#")

Note
-----
   - cpu costing is off (consider enabling it)

Statistics
----------------------------------------------------------
       1411  recursive calls
       1992  db block gets
       8777  consistent gets
       8820  physical reads
          0  redo size
       1233  bytes sent via SQL*Net to client
        465  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
         20  sorts (memory)
          0  sorts (disk)
         15  rows processed
</pre>
<p>Inmediatamente podemos ver varias cosas:</p>
<ol>
<li>El tiempo se redujo considerablemente: de 00:02:50.81 a 00:00:06.21.</li>
<li>La estadísticas cambiaron muchísimo.</li>
</ol>
<p>Con este ejemplo quería mostrar que el recycle bin puede afectar el performance de algunos queries.<br />
Después de buscar un poco en metalink encontre las siguientes notas en las cuales mencionan el problema, en algunas dice que es un bug y en otras dice que es un comportamiento &#8220;normal&#8221; y que podemos recrear la vista agregandole un hint para mejorar el performance.</p>
<p>Cuando se haga el purge se debe realizar a dba_recyclebin con un usuario que tenga el rol sysdba ya que si solo hacemos purge recyclebin solo se eliminaran los objetos del usuario actual y no de toda la base de datos.</p>
<p>Si se cree que no es necesario estar utilizando el recycle bin entonces podemos deshabilitarlo usando: alter system set recyclebin = off scope=both; cuidado ya que aunque deshabilitemos el recycle bin los objetos que se encontraban antes de esta acción continuaran ocupando espacio (por lo cual debemos hacer primero un purge).</p>
<p>Metalink: Note:302333.1,  Note:271169.1,Note:3492682.8</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/59/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/59/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/59/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=59&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2008/04/17/dba_free_space/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle technet en Spanish!!!</title>
		<link>http://delfinonunez.wordpress.com/2008/04/06/oracle-technet-en-spanish/</link>
		<comments>http://delfinonunez.wordpress.com/2008/04/06/oracle-technet-en-spanish/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 13:37:40 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/?p=57</guid>
		<description><![CDATA[No se cuantos de ustedes utilicen OTN para ver noticias, artículos, etc sobre Oracle; al menos yo utilizo de manera regular la versión en ingles. Pues ya sacaron la versión en español y lo interesante es que hay links hacia unos blogs de latinoamericanos que están interesantes, así que échenle un vistazo a la versión [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=57&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>No se cuantos de ustedes utilicen <a href="http://technet.oracle.com" target="_blank">OTN</a> para ver noticias, artículos, etc sobre Oracle; al menos yo utilizo de manera regular la versión en ingles. Pues ya sacaron la versión en español y lo interesante es que hay links hacia unos blogs de latinoamericanos que están interesantes, así que échenle un vistazo a la versión latina a ver si les gusta.</p>
<p><a href="http://www.oracle.com/technology/global/lad-es/index.html" target="_blank">Oracle Technology Network</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/57/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/57/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=57&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2008/04/06/oracle-technet-en-spanish/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Migración de Oracle 10g Standard Edition a Enterprise Edition</title>
		<link>http://delfinonunez.wordpress.com/2008/04/02/migracion-de-oracle-10g-standard-edition-a-enterprise-edition-2/</link>
		<comments>http://delfinonunez.wordpress.com/2008/04/02/migracion-de-oracle-10g-standard-edition-a-enterprise-edition-2/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 20:16:43 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2008/04/02/migracion-de-oracle-10g-standard-edition-a-enterprise-edition-2/</guid>
		<description><![CDATA[Hace unas semanas en mi nuevo empleo hice unas instalaciones de Oracle de las cuales me pidieron que instalara la versión Standard, pero por razones de licenciamiento (compraron otro tipo de licencias!) decidieron que era mejor tener instalada la versión Enterprise. Yo nunca había hecho una migración de standard a enterprise, así que inmediatamente me [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=56&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hace unas semanas en mi nuevo empleo hice unas instalaciones de Oracle de las cuales me pidieron que instalara la versión Standard, pero por razones de licenciamiento (compraron otro tipo de licencias!) decidieron que era mejor tener instalada la versión Enterprise.</p>
<p>Yo nunca había hecho una migración de standard a enterprise, así que inmediatamente me fui a Googlear la documentación de Oracle y me encontré el siguiente documento :</p>
<p><a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14238/intro.htm#BABFBJCC" target="_blank">http://download.oracle.com/docs/cd/B19306_01/server.102/b14238/intro.htm#BABFBJCC</a></p>
<p>Que básicamente dice :</p>
<blockquote><p>Moving From the Standard Edition to the Enterprise Edition</p>
<p>If you are using the Standard Edition of the Oracle Database and want to move to the Enterprise Edition, then complete the following steps:</p>
<p>1.      Ensure that the release number of your Standard Edition server software is the same release as the Enterprise Edition server software.</p>
<p>For example, if your Standard Edition server software is release 10.2.0, then you should upgrade to release 10.2.0 of the Enterprise Edition.</p>
<p>2.      Shut down your database.</p>
<p>3.      If your operating system is Windows, then stop all Oracle services, including the OracleServiceSID Oracle service, where SID is the instance name.</p>
<p>4.      Deinstall the Standard Edition server software.</p>
<p>5.      Install the Enterprise Edition server software using the Oracle Universal Installer.</p>
<p>Select the same Oracle home that was used for the de-installed Standard Edition. During the installation, be sure to select the Enterprise Edition. When prompted, choose Software Only from the Database Configuration screen.</p>
<p>6.      Start up your database.</p>
<p>Your database is now upgraded to the Enterprise Edition.</p></blockquote>
<p><span style="font-size:small;"><span style="font-family:Times New Roman;"><br />
</span></span>Simple verdad? Pues no, no era tan simple hay algunos detalles que no<br />
se muestran en este documento. A continuación voy a poner los pasos que realicé en mi actualización.</p>
<ol>
<li>Primero hay que obtener un respaldo de la base y de los archivos init.ora, listener.ora, sqlnet.ora.</li>
<li>« Bajar » la base de datos (shutdown immediate).</li>
<li>Si se tiene instalado DBConsole (Enterprise Manager) hay que apagar los servicios : emctl stop dbconsole.</li>
<li>Detener los listeners : lsnrctl stop listener.</li>
<li>Verificar que el directorio oraInventory para nuestra base exista en el folder correcto. Ej : /oracle/oraInventory</li>
<li>Pasos 7 y 8 son para Unix. Si es windows entonces nada mas ejecutar el installer desde Programs.</li>
<li>Abrir una sesion de XTerm (Unix) para hacer la desinstalación. No olvidar la variable DISPLAY (en Unix), todo este proceso es similar a la instalación.</li>
<li>Desde la sesión XTerm entrar al directorio ($ORACLE_HOME/oui/bin) y ejecutar el instalador (./runInstaller)</li>
<li>Click en Deinstall Products</li>
<li>Como deseamos desinstalar el SOFTWARE solamente hay que seleccionar el Oracle home que deseamos desinstalar. Antes de desinstalar asegúrese de tener backup de init (spfile), listener, tnsnames ya que este proceso « borra » el Oracle Base (donde esta instalado el software de oracle).</li>
<li>Después de seleccionar el Oracle Home entonces dar click en REMOVE y luego YES.</li>
<li>La pantalla de REMOVE va aparecer con el progreso de la operación.</li>
<li>Cuando termine la desinstalación cerrar el Oracle Universal Installer.</li>
<li>En mi caso tuve que borrar el restante del Oracle Base</li>
<p><code>cd $ORACLE_BASE<br />
rm –Rf product</code></p>
<li>El siguiente paso es instalar el software únicamente pero en la versión Enterprise Edition.</li>
<li>Una vez instalada la nueva versión entonces instalar los PatchSets y los Patches.</li>
<li>Regresar los respaldos de init.ora, listener.ora, tnsnames.ora a su lugar original.</li>
<li>Recrear el password file en caso que se haya tenido activada esta opción.</li>
<li>Abrir la base de datos de nuevo. Como es la misma versión (10g) no hay que hacer migración y los mismos archivos (datafiles, controlfiles, redo logs,etc) deben funcionar correctamente.</li>
<li>En algunos documentos que lei solo recomiendan re-ejecutar el catalog.sql y catproc.sql, pero en mi caso yo ejecute casi todos los scripts de nuevo.</li>
<li>Connect as sys and execute</li>
</ol>
<p><code>@$ORACLE_HOME/rdbms/admin/catalog.sql;<br />
@$ORACLE_HOME/rdbms/admin/catblock.sql;<br />
@$ORACLE_HOME/rdbms/admin/catproc.sql;<br />
@$ORACLE_HOME/rdbms/admin/catoctk.sql;<br />
@$ORACLE_HOME/rdbms/admin/owminst.plb;<br />
Conectarse como system y ejecutar:<br />
@$ORACLE_HOME/sqlplus/admin/pupbld.sql;<br />
@$ORACLE_HOME/sqlplus/admin/help/hlpbld.sql helpus.sql;</code></p>
<ol>
<li>Verificar que sus backups funcionen.</li>
<li>Probar el listener y tnsnames.</li>
<li>Si se tenia DBConsole instalada hay que reinstalar de nuevo.</li>
<li>En mi caso, y creo que fue por que re-ejecute todos los scripts tuve que hacer grants a algunos usuarios como el usuario de backups. Asi que esten atentos por que puede ser que deban reasignar los privilegios a ciertos usuarios. Básicamente por que los scripts recrean de nuevo el diccionario de datos</li>
</ol>
<p>Y pues simplemente este es el pequeño proceso para hacer una migración de Standard Edition a Enterprise Edition. En general todo debe ser muy sencillo a exepción de la ejecución de los scripts que hicieron que varios usuarios perdieran privilegios.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/56/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/56/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/56/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=56&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2008/04/02/migracion-de-oracle-10g-standard-edition-a-enterprise-edition-2/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Back to the basics!</title>
		<link>http://delfinonunez.wordpress.com/2008/01/24/back-to-the-basics/</link>
		<comments>http://delfinonunez.wordpress.com/2008/01/24/back-to-the-basics/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 22:14:09 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2008/01/24/back-to-the-basics/</guid>
		<description><![CDATA[Últimamente he andado ocupado con entrevistas, buscando nuevo departamento, etc. Y no he tenido tiempo para escribir algo; pues acabo de firmar contrato para trabajar como DBA de Oracle+SQL Server+Informix+SAP, me llama mucho la atención poder aprender otras bases de datos (Informix) y también SAP, al parecer en esta compañía utilizan mucho estos programas así [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=53&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Últimamente he andado ocupado con entrevistas, buscando nuevo departamento, etc. Y no he tenido tiempo para escribir algo; pues acabo de firmar contrato para trabajar como DBA de Oracle+SQL Server+Informix+SAP, me llama mucho la atención poder aprender otras bases de datos (Informix) y también SAP, al parecer en esta compañía utilizan mucho estos programas así que vamos a ver que sucede. También es una oportunidad para desempolvarme como DBA, hace casi 1 año que no hago ninguna tarea de DBA y ya tengo ganas de regresar a esa área. Por eso volví a leer manuales y documentos de conceptos básicos para que no me agarren de bajada mis nuevos compañeros, sobre todo estoy leyendo sobre backup y recovery y tuning.</p>
<p>Así que ahora que voy a continuar trabajando voy a tener mas ejemplos y casos raros que podré analizar aquí.</p>
<p>Se me acabaron las vacaciones, que bueno ya me estaba aburriendo mucho en la casa, hay que distraerse en el trabajo un rato.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/53/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/53/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/53/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=53&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2008/01/24/back-to-the-basics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Feliz año, feliz navidad, feliz dia de reyes, etc y etc&#8230;</title>
		<link>http://delfinonunez.wordpress.com/2008/01/11/feliz-ano-feliz-navida-feliz-dia-de-reyes-etc-y-etc/</link>
		<comments>http://delfinonunez.wordpress.com/2008/01/11/feliz-ano-feliz-navida-feliz-dia-de-reyes-etc-y-etc/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 06:30:01 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2008/01/11/feliz-ano-feliz-navida-feliz-dia-de-reyes-etc-y-etc/</guid>
		<description><![CDATA[Pues no había escrito nada por que últimamente me han pasado varias cosas. Primero mi primer empleo canadiense se acabo, bueno no se acabo, mas bien me lo acabaron; pues resulta que la compañía hizo una reorganización interna y recortaron personal y pues ya saben, me toco que me despidieran. Ni modo c&#8217;est la vie [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=52&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Pues no había escrito nada por que últimamente me han pasado varias cosas. Primero mi primer empleo canadiense se acabo, bueno no se acabo, mas bien me lo acabaron; pues resulta que la compañía hizo una reorganización interna y recortaron personal y pues ya saben, me toco que me despidieran. Ni modo <i>c&#8217;est la vie</i> y hay que seguir adelante, la verdad me gustaba mucho donde estaba por que conocí muy buenos amigos y en general el ambiente era muy bueno, mi jefe era bien buena &#8220;onda&#8221;, el trabajo estaba muy relajado y lo único que no me gustaba era que no estaba avanzando profesionalmente y por eso me hicieron un favor por que ya estaba yo dándole vueltas a la idea de cambiar de empleo y pues así me ahorrar la pena de renunciar.  Y hasta eso, me fue muy bien por que me pagaron el despido, vacaciones y yo no esperaba nada de eso.</p>
<p>También ya tenia planeadas unas vacaciones a México para navidad y año nuevo así que todo se acomodo &#8220;mágicamente&#8221;, mi ultimo día de trabajo fue el 21 de Diciembre y yo volé a México el 20 (pedí un día), pasé las vacaciones con mi familia y acabamos de regresar el 5 de Enero, directito a clases de francés. Lo bueno de todo es que todavía no tengo una semana de regresar y ya me salieron 3 ofertas de empleo, una ya la rechace por que no me sentía agusto con el contrato y por que estaba muy lejos de donde vivo y las otras 2 hay van en las negociaciones, una de ellas es de DBA y es la que mas me interesa ya que quiero regresar a ese camino y la otra es de developer ETL.</p>
<p>Y pues esas han sido las razones por que no he escrito nada, no he tenido mucho tiempo y también me he vuelto muy flojo; espero este nuevo año sea mas constante.</p>
<p>Y pues fue gracias a <a href="http://www.tsoracle.com/">Sir  Ragnar</a> que me &#8220;taggeo&#8221; que vuelvo a las andadas con el blog.</p>
<p>Así que agárrense que hay les voy de nuevo con éste blog y con el de <a href="http://plsqlenespanol.wordpress.com/">plsqlenespanol</a> a ver que sale.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/52/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/52/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=52&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2008/01/11/feliz-ano-feliz-navida-feliz-dia-de-reyes-etc-y-etc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Mis 8 cositas!!!&#8230;</title>
		<link>http://delfinonunez.wordpress.com/2008/01/11/mis-8-cositas/</link>
		<comments>http://delfinonunez.wordpress.com/2008/01/11/mis-8-cositas/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 05:51:21 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2008/01/11/mis-8-cositas/</guid>
		<description><![CDATA[Aunque nunca imagine que me iban a &#8220;taggear&#8221;, pues mi amigo Sir Ragnar lo hizo y aunque no me gustan las cadenas pues vamos a seguir ésta que esta interesante. Cuando era niño por poco incendio la casa de mi casa por andar jugando con cerillos (fósforos) cerca de unos botes con gasolina, afortunadamente no [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=51&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Aunque nunca imagine que me iban a &#8220;taggear&#8221;, pues mi amigo <a href="http://www.tsoracle.com/" title="http://www.tsoracle.com/" target="_blank">Sir Ragnar</a> lo hizo y aunque no me gustan las cadenas pues vamos a seguir ésta que esta interesante. <b>  </b></p>
<ol>
<li> Cuando era niño por poco incendio la casa de mi casa por andar jugando con cerillos (fósforos) cerca de unos botes con gasolina, afortunadamente no paso a mayores ya que mi mamá y unas señoras que estaban con ella apagaron el fuego rápidamente. Pero nunca se me va a olvidar esa travesura.</li>
<li>Soy mexicano, del norte si señor del meritito Chihuahua, viví alrededor de 21 años en ciudad Juárez y actualmente vivo en Montreal Canadá con mi esposa.</li>
<li>La primer vez que aprendi Oracle fue cuando trabajaba para la universidad y nos dieron cursos para migrar las aplicaciones, cosa que desde entonces(1999) no se ha hecho.</li>
<li>Me gusta mucho viajar y he estado en varias partes de USA, varios lugares de México (obviamente) y algunos lugares de Europa. Me gustaría mucho conocer Sudamérica, ahora que conozco más gente de por allá se me hace mas interesante.</li>
<li>Siempre he querido aprender a tocar un instrumento, en especial la guitarra, pero por una u otra razón no se ha dado&#8230;bueno más bien por flojonazo!.</li>
<li>No me gusta ver los deportes en la TV, aunque mi esposa me esta instruyendo en el soccer y el fútbol americano. Y no practico ningún deporte, soy un flojonazo!.</li>
<li>Me gusta mucho la <a href="http://www.zooomr.com/photos/denunez/" title="Fotos">fotografía</a> y pues trato de mejorar cada vez más, hay voy, hay voy..</li>
<li>Casi toda la comida me gusta, pero la comida muy condimentada me cae mal al estomago (en especial la árabe).</li>
</ol>
<p>Y pues eso es todo amigos!!! no pienso continuar la cadena por que no me gustan las cadenas y por que no tengo a quien pasársela :), si encuentro alguna victima entonces se la haré llegar.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/51/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/51/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/51/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=51&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2008/01/11/mis-8-cositas/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>DBMS_STATS Parte 3, continuación…</title>
		<link>http://delfinonunez.wordpress.com/2007/10/15/dbms_stats-parte-3-continuacion%e2%80%a6/</link>
		<comments>http://delfinonunez.wordpress.com/2007/10/15/dbms_stats-parte-3-continuacion%e2%80%a6/#comments</comments>
		<pubDate>Mon, 15 Oct 2007 02:08:59 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2007/10/15/dbms_stats-parte-3-continuacion%e2%80%a6/</guid>
		<description><![CDATA[GATHER_TABLE_STATS Continuando con gather_table_stats, ahora quiero ver la opción METHOD_OPT. Vamos a recordar que opciones podemos tener para este parámetro: FOR ALL [INDEXED &#124; HIDDEN] COLUMNS [size_clause] FOR COLUMNS [size clause] column&#124;attribute [size_clause] [,column&#124;attribute [size_clause]...] size_clause is defined as size_clause := SIZE {integer &#124; REPEAT &#124; AUTO &#124; SKEWONLY} -Integer : numéro de buckets de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=48&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>GATHER_TABLE_STATS</h2>
<p>Continuando con gather_table_stats, ahora quiero ver la opción METHOD_OPT.  Vamos a recordar que opciones podemos tener para este parámetro:</p>
<pre>
FOR ALL [INDEXED | HIDDEN] COLUMNS
[size_clause]

FOR COLUMNS [size clause] column|attribute [size_clause] [,column|attribute [size_clause]...]
</pre>
<p>size_clause is defined as size_clause := SIZE {integer | REPEAT | AUTO | SKEWONLY}</p>
<p style="margin-left:36pt;">-Integer : numéro de buckets de histogramas dentro del rango de 1 .. 254.</p>
<p style="margin-left:36pt;">-Repeat: Calcula histogramas solamente en las columnas que ya tienen histogramas.</p>
<p style="margin-left:36pt;">-Auto: Oracle determina a cuales columnas les debe de calcular histogramas basándose en la carga y distribución de datos.</p>
<p style="margin-left:36pt;">-Skewonly: Oracle determina a cuales columnas debe calcular histogramas basándose en la distribución de datos.</p>
<p>El valor de DEFAULT es FOR ALL COLUMNS SIZE AUTO</p>
<h2>Histogramas</h2>
<p>Antes de pasar a escribir instrucciones vamos a ver que son los histogramas para comprender por que es útil la opción mencionada.</p>
<p>Cuando se calculan estadísticas en una tabla, DBMS_STATS obtiene información sobre la distribución de los datos en las columnas de la tabla. La información básica sobre la distribución puede ser el valor máximo y mínimo de una columna, pero esta información o este nivel de estadísticas pueden ser insuficientes si los datos dentro de la columna no están distribuidos uniformemente (skewed, no se como traducir esa palabra). Para distribuciones &#8220;no uniformes&#8221; se utilizan los histogramas y le dicen a Oracle como están distribuidos los datos en la columna.</p>
<p>Básicamente los histogramas son útiles cuando tenemos datos distribuidos de manera no uniforme, por ejemplo si tenemos una tabla con 1,000,000 de registros donde 950,000 tienen el valor &#8216;X&#8217; y otros 50,000 tienen otros valores diferentes(Y, Z, A, B, C, etc). Cuando queremos obtener los datos que tienen X (where columna=&#8217;X') obviamente no queremos que utilice un índice ya que va a tener un costo muy alto debido a que tiene que accesar casi TODA (FULL) la tabla + todo el índice, pero cuando queremos un valor especifico (una minoría) como Y (where columna=&#8217;Y') entonces ahí si queremos que use un índice ya que no va a accesar toda la tabla si no una porción.</p>
<p>Oracle utiliza dos tipos de histogramas: Heigh-balanced y frecuencia.</p>
<h3>Heigh-Balanced</h3>
<p>En este tipo los valores de las columnas son divididos en bandas o grupos y cada grupo contiene aproximadamente el mismo número de registros. Tomemos por ejemplo una columna que tiene valores del 1 al 100 y un histograma con 10 grupos (buckets), entonces el histograma seria como sigue:</p>
<p><img src="http://delfinonunez.files.wordpress.com/2007/10/101207-2257-dbmsstatspa12.png?w=620" alt="" /></p>
<p>En este ejemplo el número de registros por grupo es 1/10 de todos los registros de la tabla, esto quiere decir 10 registros por cada grupo.</p>
<p>Si los datos no estuvieran uniformemente podría ser algo así:</p>
<p><img src="http://delfinonunez.files.wordpress.com/2007/10/101207-2257-dbmsstatspa22.png?w=620" alt="" /></p>
<p>Aquí la mayoría de los registros tienen un valor de 5 y por ejemplo los registros con un valor entre 60 y 100 son 1/10 de todos los registros de la tabla, esto quiere decir que pueden ser como máximo 10 registros en comparación con el ejemplo anterior que son 4/10 y que podrían llegar a ser 40 registros.</p>
<h3>Frecuencia</h3>
<p>En este tipo cada valor de la columna corresponde a un grupo (bucket) del histograma. Cada grupo contiene el número de ocurrencias/repeticiones de un valor.</p>
<div>
<table style="border-collapse:collapse;" border="0">
<col></col>
<col></col>
<col></col>
<col></col>
<col></col>
<col></col>
<col></col>
<col></col>
<col></col>
<col></col>
<tbody>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:solid black 0.5pt;border-left:solid black 0.5pt;border-bottom:solid 0.5pt;border-right:solid black 0.5pt;">5</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid black 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid black 0.5pt;">20</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid black 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid black 0.5pt;">5</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid black 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid black 0.5pt;">6</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid black 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid black 0.5pt;">10</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid black 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid black 0.5pt;">5</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid black 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid black 0.5pt;">3</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid black 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid black 0.5pt;">23</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid black 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid black 0.5pt;">234</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid black 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid black 0.5pt;">12</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:none;border-right:none;" valign="middle">
<p style="text-align:center;">a</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:none;border-right:none;" valign="middle">
<p style="text-align:center;">b</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:none;border-right:none;" valign="middle">
<p style="text-align:center;">c</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:none;border-right:none;" valign="middle">
<p style="text-align:center;">d</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:none;border-right:none;" valign="middle">
<p style="text-align:center;">e</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:none;border-right:none;" valign="middle">
<p style="text-align:center;">f</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:none;border-right:none;" valign="middle">
<p style="text-align:center;">g</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:none;border-right:none;" valign="middle">
<p style="text-align:center;">h</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:none;border-right:none;" valign="middle">
<p style="text-align:center;">i</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:none;border-right:none;" valign="middle">
<p style="text-align:center;">x</p>
</td>
</tr>
</tbody>
</table>
</div>
<p>Y pues de esta manera tenemos 10 grupos donde el grupo de &#8220;a&#8221; tiene 5 registros, el grupo de &#8220;e&#8221; tiene 10 repeticiones, etc.</p>
<h3>Manos a la obra…</h3>
<p>Para terminar con la teoría vamos a ver un ejemplo como funciona este rollo&#8230;</p>
<pre>
SQL&gt; CREATE TABLE DEMO AS SELECT * FROM ALL_OBJECTS;
Table created.
SQL&gt; CREATE INDEX STAT_IDX ON DEMO(STATUS);
Index created.
SQL&gt; SET AUTOTRACE TRACEONLY EXPLAIN;
SQL&gt; SELECT COUNT(*)
  2  FROM DEMO
  3  WHERE STATUS='INVALID';
Execution Plan
----------------------------------------------------------
Plan hash value: 3974250510
------------------------------------------------------------------------------
| Id  | Operation         | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |          |     1 |     5 |     1   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE   |          |     1 |     5 |            |          |
|*  2 |   INDEX RANGE SCAN| STAT_IDX |    94 |   470 |     1   (0)| 00:00:01 |
------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   2 - access("STATUS"='INVALID')
Note
-----
   - dynamic sampling used for this statement
SQL&gt; SELECT COUNT(*)
  2  FROM DEMO
  3  WHERE STATUS='VALID';
Execution Plan
----------------------------------------------------------
Plan hash value: 2265447936
----------------------------------------------------------------------------------
| Id  | Operation             | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------
|   0 | SELECT STATEMENT      |          |     1 |     5 |    32   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE       |          |     1 |     5 |            |          |
|*  2 |   INDEX FAST FULL SCAN| STAT_IDX | 50562 |   246K|    32   (0)| 00:00:01 |
----------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   2 - filter("STATUS"='VALID')
Note
-----
   - dynamic sampling used for this statement
</pre>
<p>Ahora vamos a calcular estadisticas con histogramas.</p>
<pre>
SQL&gt; exec dbms_stats.gather_table_stats('SCOTT','DEMO',METHOD_OPT=&gt;'FOR COLUMNS SIZE AUTO STATUS');
PL/SQL procedure successfully completed.
SQL&gt; SELECT COUNT(*)
  2  FROM DEMO
  3  WHERE STATUS='INVALID';
Execution Plan
----------------------------------------------------------
Plan hash value: 3974250510
------------------------------------------------------------------------------
| Id  | Operation         | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |          |     1 |     7 |     1   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE   |          |     1 |     7 |            |          |
|*  2 |   INDEX RANGE SCAN| STAT_IDX |   146 |  1022 |     1   (0)| 00:00:01 |
------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   2 - access("STATUS"='INVALID')
SQL&gt; SELECT COUNT(*)
  2  FROM DEMO
  3  WHERE STATUS='VALID';
Execution Plan
----------------------------------------------------------
Plan hash value: 2265447936
----------------------------------------------------------------------------------
| Id  | Operation             | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------
|   0 | SELECT STATEMENT      |          |     1 |     7 |    31   (7)| 00:00:01 |
|   1 |  SORT AGGREGATE       |          |     1 |     7 |            |          |
|*  2 |   INDEX FAST FULL SCAN| STAT_IDX | 52655 |   359K|    31   (7)| 00:00:01 |
----------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   2 - filter("STATUS"='VALID')
SQL&gt; SET AUTOT OFF;
SQL&gt; SELECT COUNT(*)
  2  FROM DEMO
  3  WHERE STATUS='INVALID';
  COUNT(*)
----------
        94
SQL&gt; SELECT COUNT(*)
  2  FROM DEMO
  3  WHERE STATUS='VALID';
  COUNT(*)
----------
     52711
</pre>
<p>Aquí podemos que el explain plan no cambio mucho, &#8220;al parecer&#8221; salió peor que sin histogramas, por ejemplo con el valor INVALID tenemos rows 94 vs 146 al final, con la otra opción tenemos 50562 vs 52655 lo cual esta un poco alejado al numero de registros que existen. Esto se debe a que le dijimos a Oracle que hiciera el cálculo de manera AUTOmatica.</p>
<p>Vamos ahora a decirle un número de buckets.</p>
<pre>
SQL&gt; EXEC DBMS_STATS.GATHER_TABLE_STATS('SCOTT','DEMO',METHOD_OPT=&gt;'FOR COLUMNS SIZE 100 STATUS');
PL/SQL procedure successfully completed.
SQL&gt; CONNECT SCOTT/ORACLE;
Connected.
SQL&gt; SET AUTOT TRACEONLY EXPLAIN
SQL&gt; SELECT COUNT(*)
  2  FROM DEMO
  3  WHERE STATUS='INVALID';
Execution Plan
----------------------------------------------------------
Plan hash value: 3974250510
------------------------------------------------------------------------------
| Id  | Operation         | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |          |     1 |     7 |     1   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE   |          |     1 |     7 |            |          |
|*  2 |   INDEX RANGE SCAN| STAT_IDX |    99 |   693 |     1   (0)| 00:00:01 |
------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   2 - access("STATUS"='INVALID')
SQL&gt; SELECT COUNT(*)
  2  FROM DEMO
  3  WHERE STATUS='VALID';
Execution Plan
----------------------------------------------------------
Plan hash value: 2265447936
----------------------------------------------------------------------------------
| Id  | Operation             | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------
|   0 | SELECT STATEMENT      |          |     1 |     7 |    31   (7)| 00:00:01 |
|   1 |  SORT AGGREGATE       |          |     1 |     7 |            |          |
|*  2 |   INDEX FAST FULL SCAN| STAT_IDX | 52702 |   360K|    31   (7)| 00:00:01 |
----------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   2 - filter("STATUS"='VALID')
</pre>
<p>Orale, ahora vemos que la información que tiene Oracle es mas exacta respecto al numero de registros, por ejemplo INVALID 94 vs 99  y VALID 50562 vs 52702, cuando los valores reales son 94 y 52711. Así que el numero de bandas (buckets) que le especifiquemos a Oracle que tiene que crear influyen bastante en como Oracle va a identificar los diferentes rangos.</p>
<h3>Cuando debo calcular histogramas.</h3>
<p>Bueno igual que en todo los casos de performance tunning no existe una regla que aplique a todos los casos, según lo que he leído por ejemplo muchas personas recomiendan calcular histogramas en sistemas de datawarehouse y no &#8220;siempre&#8221; en OLTP (aunque hay excepciones), si se conoce muy bien la aplicación y se sabe que alguna(s) columna(s) tiene una distribución de datos no uniforme por ejemplo de 1 millón de registros solo 1000 tienen valores diferentes y el resto tiene el valor X, tal vez esa columna sea una candidata para histogramas. Una vez observe que un query tenia un explain plan &#8220;perfecto&#8221; accesaba índices, el costo era bajo, etc. Sin embargo para algunos casos se tardaba &#8220;mas&#8221; tiempo que en otros casos y querían saber cual era la razón, estuvimos probando con varias opciones y nos dimos cuenta que una de las columnas usadas en el query caia en el esquema mencionado anteriormente, calculamos histogramas (200 buckets) en esa columna y el query mejoro bastante su ejecución.</p>
<p>Aunque esto se aplica a las columnas yo no recomendaría calcular histogramas a TODAS las columnas debido a que no siempre será benéfico o no tendrá un gran impacto en la ejecución y pues además el calculo implica mas tiempo al obtener estadísticas con gather_table_stats.</p>
<h3>Conclusión</h3>
<p>Quería mencionar esta opción de gather_table_stats debido a que puede ayudar muchísimo a la ejecución de un query, le da mas información a Oracle sobre la distribución de la información y eso ayuda a obtener un mejor explain plan. Aunque recomiendo hacer pruebas antes de implementarlo en un ambiente de producción.</p>
<p>Hasta la próxima…a lo mejor continuo con gather_schema_Stats</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/48/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/48/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=48&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2007/10/15/dbms_stats-parte-3-continuacion%e2%80%a6/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>

		<media:content url="http://delfinonunez.files.wordpress.com/2007/10/101207-2257-dbmsstatspa12.png" medium="image" />

		<media:content url="http://delfinonunez.files.wordpress.com/2007/10/101207-2257-dbmsstatspa22.png" medium="image" />
	</item>
		<item>
		<title>DBMS_STATS Parte 2</title>
		<link>http://delfinonunez.wordpress.com/2007/10/06/dbms_stats-parte-2/</link>
		<comments>http://delfinonunez.wordpress.com/2007/10/06/dbms_stats-parte-2/#comments</comments>
		<pubDate>Sat, 06 Oct 2007 03:21:41 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2007/10/06/dbms_stats-parte-2/</guid>
		<description><![CDATA[GATHER_TABLE_STATS. Bueno continuamos con la onda de DBMS_STATS, ahora con el procedimiento GATHER_TABLE_STATS. Este procedimiento permite calcular las estadísticas de una tabla, columnas e índices (como ya lo había mencionado anteriormente). Sintaxis DBMS_STATS.GATHER_TABLE_STATS ( ownname VARCHAR2, tabname VARCHAR2, partname VARCHAR2 DEFAULT NULL, estimate_percent NUMBER DEFAULT to_estimate_percent_type (get_param('ESTIMATE_PERCENT')), block_sample BOOLEAN DEFAULT FALSE, method_opt VARCHAR2 DEFAULT get_param('METHOD_OPT'), [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=42&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>GATHER_TABLE_STATS.</h2>
<p>Bueno continuamos con la onda de DBMS_STATS, ahora con el procedimiento GATHER_TABLE_STATS. Este procedimiento permite calcular las estadísticas de una tabla, columnas e índices (como ya lo había mencionado anteriormente).</p>
<p>Sintaxis</p>
<pre>
DBMS_STATS.GATHER_TABLE_STATS (
   ownname          VARCHAR2,
   tabname          VARCHAR2,
   partname         VARCHAR2 DEFAULT NULL,
   estimate_percent NUMBER   DEFAULT to_estimate_percent_type
                                    (get_param('ESTIMATE_PERCENT')),
   block_sample     BOOLEAN  DEFAULT FALSE,
   method_opt       VARCHAR2 DEFAULT get_param('METHOD_OPT'),
   degree           NUMBER   DEFAULT to_degree_type(get_param('DEGREE')),
   granularity      VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'),
   cascade          BOOLEAN  DEFAULT to_cascade_type(get_param('CASCADE')),
   stattab          VARCHAR2 DEFAULT NULL,
   statid           VARCHAR2 DEFAULT NULL,
   statown          VARCHAR2 DEFAULT NULL,
   no_invalidate    BOOLEAN  DEFAULT  to_no_invalidate_type (
                                     get_param('NO_INVALIDATE')),
   force            BOOLEAN DEFAULT FALSE);
</pre>
<div>
<table style="border-collapse:collapse;" border="0">
<col></col>
<col></col>
<tbody>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:solid black 0.5pt;border-left:solid black 0.5pt;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Parámetro</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid black 0.5pt;border-left:none;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Descripción</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black 0.5pt;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Owname</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Usuario/schema/dueño de la tabla(s).</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black 0.5pt;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Tabname</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Nombre de la tabla.</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black 0.5pt;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Partname</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Nombre de la partición.</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black 0.5pt;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Estímate_percent</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Porcentaje de registros para calcular las estadísticas. NULL significa compute y el rango puede ir de [0.000001,100], igual que en los índices, también se puede utilizar DBMS_STATS.AUTO_SAMPLE_SIZE.</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black 0.5pt;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Block_sample</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Si queremos utilizar el cálculo basado en bloques de datos (mínima estructura de almacenamiento de Oracle) en lugar de utilizar registros (rows). Lo hace de manera aleatoria (random).</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black 0.5pt;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Method_opt</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Si deseamos calcular histogramas.</p>
<p>Los valores pueden ser:</p>
<ul>
<li>FOR ALL [INDEXED | HIDDEN] COLUMNS [size clause]</li>
<li>FOR COLUMNS [size clause] column|attribute [size_clause]..]</li>
</ul>
<p>size_clause es definida como size_clause := SIZE {integer | REPEAT | AUTO | SKEWONLY}</p>
<ul>
<li>Integer: Numero de histogramas (buckets), el valor es de 1 a 254.</li>
<li>REPEAT: calcula histogramas solo en las columnas que ya tienen.</li>
<li>AUTO: Oracle determina a que columnas les va a calcular histograma basado en la carga y distribución de los datos de la columna (s).</li>
<li>SKEWONLY: Oracle determina a cuales columnas les va a calcular histograma basado en la distribución de los datos.</li>
</ul>
<p>El default es FOR ALL COLUMNS SIZE AUTO.</p>
<p>Este esta interesante, a ver si puedo hacer un caso de prueba.</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black 0.5pt;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Degree</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Grado de paralelismo para calcular las estadísticas. Es muy similar al del índice así que si desean mas detalle por favor vean el manual en línea.</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black 0.5pt;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Granularity</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Nivel de detalle a calcular estadísticas, solo se utiliza cuando la tabla esta particionada.</p>
<p>Opciones:</p>
<p>ALL- Todas las particiones, subparticiones.</p>
<p>AUTO- Oracle determina a cuales. Es el default.</p>
<p>GLOBAL- Calcula estadísticas globales.</p>
<p>GLOBAL AND PARTITION- Calcula igual que global y a nivel partición.</p>
<p>PARTITION- A nivel partición.</p>
<p>SUBPARTITION- A nivel subparticion.</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black 0.5pt;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Cascade</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Calcula estadísticas en todos los índices de la tabla. Si se utiliza DBMS_STATS.AUTO_CASCADE Oracle determina a que índices calcular y a cuales no.</p>
<p>Esta opción es lo mismo que gather_index_stats a cada uno de los índices de manera manual.</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black 0.5pt;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Stattab</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Donde se van a guardar las estadísticas actuales (o viejitas).</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black 0.5pt;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Statid</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Como se van a identificar las estadísticas actuales cuando se guarden.</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black 0.5pt;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Statown</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Dueño de la tabla donde se guardan las estadísticas.</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black 0.5pt;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">No_invalidate</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">TRUE/FALSE si se desea invalidar los cursores (queries &#8220;parseados&#8221;). Por default Oracle determina si lo hace o no.</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black 0.5pt;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Force</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;">Calcular estadísticas sin importar si la tabla esta bloqueada.</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black 0.5pt;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;"></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black 0.5pt;border-right:solid black 0.5pt;"></td>
</tr>
</tbody>
</table>
</div>
<h2>A la practica…</h2>
<p>Vamos a crear una tabla con la cual podamos jugar y ver si nos da los resultados que deseamos.</p>
<pre>
SQL&gt; set timing on;
SQL&gt; create table emps as
  2  select level empid,
  3         sysdate - (((18 * 365)/level) + dbms_random.value()*(47*365)) hired,
  4         trunc((50000 + dbms_random.value()*90000)) salary,
  5         dbms_random.string('A',10) name
  6  from dual
  7  connect by level &lt;=1000000
  8  ;
Table created.
Elapsed: 00:00:53.67
</pre>
<p>Hay que crear el PK y un índice para la fecha de contratación basado en el año solamente.</p>
<pre>
SQL&gt; alter table emps add constraint pk_emps primary key (empid);
Table altered.
SQL&gt; create index emps_hired on emps (extract(year from hired));
Index created.
Elapsed: 00:00:02.86
SQL&gt; set lines 130
SQL&gt; alter session set nls_date_format='dd.mon.yyyy hh24:mi:ss';
Session altered.
Elapsed: 00:00:00.00
SQL&gt; set null {null}
</pre>
<p>Ahora vamos a revisar que la tabla no tiene estadísticas y el índice si.</p>
<pre>
SQL&gt; select table_name,
  2      num_rows,
  3      blocks,
  4      empty_blocks,
  5      avg_space,
  6      chain_cnt,
  7      avg_row_len,
  8      sample_size,
  9      last_analyzed
 10    from dba_tables
 11   where owner = 'SCOTT' and table_name = 'EMPS';
TABLE_NAME        NUM_ROWS     BLOCKS EMPTY_BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN SAMPLE_SIZE LAST_ANA
--------------- ---------- ---------- ------------ ---------- ---------- ----------- ----------- ---
EMPS            {null}     {null}     {null}       {null}     {null}     {null}      {null}      {null}
Elapsed: 00:00:00.00
SQL&gt; select index_name, last_analyzed, num_rows, distinct_keys, leaf_blocks
  2    from dba_indexes
  3   where owner = 'SCOTT' and index_name = 'PK_EMPS';
INDEX_NAME                     LAST_ANALYZED        NUM_ROWS DISTINCT_KEYS LEAF_BLOCKS
------------------------------ ------------------ ---------- ------------- -----------
PK_EMPS                        05.oct.07 10:13:11    1000000       1000000        2087
Elapsed: 00:00:00.03
</pre>
<p>Borramos las estadísticas del índice para ver como se comporta.</p>
<pre>
SQL&gt; exec dbms_stats.delete_INDEX_sTATS('SCOTT','PK_EMPS');
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.18
SQL&gt; exec dbms_stats.delete_index_stats('SCOTT','EMPS_HIRED');
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.01
SQL&gt; select index_name, last_analyzed, num_rows, distinct_keys, leaf_blocks
  2    from dba_indexes
  3   where owner = 'SCOTT' and index_name like '%EMPS%';
INDEX_NAME                     LAST_ANALYZED        NUM_ROWS DISTINCT_KEYS LEAF_BLOCKS
------------------------------ ------------------ ---------- ------------- -----------
PK_EMPS                        {null}             {null}     {null}        {null}
EMPS_HIRED                     {null}             {null}     {null}        {null}
Elapsed: 00:00:00.01
</pre>
<p>Vamos a ver como se comporta Oracle con índices y tablas sin estadísticas.</p>
<pre>
SQL&gt; select *
  2  from emps
  3  where extract(year from hired) = '1959';
Elapsed: 00:00:01.11
Execution Plan
----------------------------------------------------------
Plan hash value: 2150600608
------------------------------------------------------------------------------------------
| Id  | Operation                   | Name       | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |            |    53 |   105K|     5   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| EMPS       |    53 |   105K|     5   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN          | EMPS_HIRED |  4524 |       |     1   (0)| 00:00:01 |
------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   2 - access(EXTRACT(YEAR FROM INTERNAL_FUNCTION("HIRED"))=1959)
Note
-----
   - dynamic sampling used for this statement
Statistics
----------------------------------------------------------
        738  recursive calls
          0  db block gets
        197  consistent gets
        583  physical reads
          0  redo size
        597  bytes sent via SQL*Net to client
        381  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          9  sorts (memory)
          0  sorts (disk)
          1  rows processed
SQL&gt; select *
  2  from emps
  3  where extract(year from hired) = '2000';
21438 rows selected.
Elapsed: 00:00:02.37
Execution Plan
----------------------------------------------------------
Plan hash value: 2150600608
------------------------------------------------------------------------------------------
| Id  | Operation                   | Name       | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |            | 23305 |    45M|     5   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| EMPS       | 23305 |    45M|     5   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN          | EMPS_HIRED |  4524 |       |     1   (0)| 00:00:01 |
------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   2 - access(EXTRACT(YEAR FROM INTERNAL_FUNCTION("HIRED"))=2000)
Note
-----
   - dynamic sampling used for this statement
Statistics
----------------------------------------------------------
          4  recursive calls
          0  db block gets
       7324  consistent gets
       4171  physical reads
          0  redo size
     828924  bytes sent via SQL*Net to client
      16100  bytes received via SQL*Net from client
       1431  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
      21438  rows processed
SQL&gt; select *
  2  from emps
  3  where to_char(hired,'YYYY') = '2000';
21438 rows selected.
Elapsed: 00:00:01.45
Execution Plan
----------------------------------------------------------
Plan hash value: 2715242515
--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      | 23305 |    45M|  1197  (13)| 00:00:15 |
|*  1 |  TABLE ACCESS FULL| EMPS | 23305 |    45M|  1197  (13)| 00:00:15 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   1 - filter(TO_CHAR(INTERNAL_FUNCTION("HIRED"),'YYYY')='2000')
Note
-----
   - dynamic sampling used for this statement
Statistics
----------------------------------------------------------
          5  recursive calls
          0  db block gets
       6224  consistent gets
         46  physical reads
          0  redo size
     828924  bytes sent via SQL*Net to client
      16100  bytes received via SQL*Net from client
       1431  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
      21438  rows processed
</pre>
<p>Podemos ver que no esta mal, utiliza el índice que creamos y agregue un full scan para ver el comportamiento.</p>
<p>Ahora vamos a calcular las estadísticas con gather_table_stats para ver que es lo que cambia.</p>
<pre>
SQL&gt; select table_name,
  2         num_rows,
  3      blocks,
  4      empty_blocks,
  5      avg_space,
  6      chain_cnt,
  7      avg_row_len,
  8      sample_size,
  9      last_analyzed
 10    from dba_tables
 11   where owner = 'SCOTT' and table_name = 'EMPS';
TABLE_NAME        NUM_ROWS     BLOCKS EMPTY_BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN SAMPLE_SIZE LAST_ANA
--------------- ---------- ---------- ------------ ---------- ---------- ----------- ----------- ---
EMPS                995047       4798            0          0          0          32       49610 05.oct.07 10:45:13
Elapsed: 00:00:00.09
SQL&gt; select index_name, last_analyzed, num_rows, distinct_keys, leaf_blocks
  2    from dba_indexes
  3   where owner = 'SCOTT' and index_name like '%EMPS%';
INDEX_NAME                     LAST_ANALYZED        NUM_ROWS DISTINCT_KEYS LEAF_BLOCKS
------------------------------ ------------------ ---------- ------------- -----------
PK_EMPS                        05.oct.07 10:45:22    1000000       1000000        2087
EMPS_HIRED                     05.oct.07 10:45:27    1000000            49        2089
Elapsed: 00:00:00.42
</pre>
<p>Empezamos viendo el full scan para comparar. Podemos ver que después de calcular estadísticas el COST BASED OPTIMIZER mejoro el plan de ejecución, por ejemplo el número de bytes anterior era de 45M y después es de 281K una gran mejora.</p>
<pre>
SQL&gt; select *
  2  from emps
  3  where to_char(hired,'YYYY') = '2000';
21438 rows selected.
Elapsed: 00:00:02.06
Execution Plan
----------------------------------------------------------
Plan hash value: 2715242515
--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |  9950 |   281K|  1180  (11)| 00:00:15 |
|*  1 |  TABLE ACCESS FULL| EMPS |  9950 |   281K|  1180  (11)| 00:00:15 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   1 - filter(TO_CHAR(INTERNAL_FUNCTION("HIRED"),'YYYY')='2000')
Statistics
----------------------------------------------------------
        664  recursive calls
          0  db block gets
       6255  consistent gets
       4731  physical reads
          0  redo size
     828924  bytes sent via SQL*Net to client
      16100  bytes received via SQL*Net from client
       1431  SQL*Net roundtrips to/from client
          9  sorts (memory)
          0  sorts (disk)
      21438  rows processed
</pre>
<p>Ahhh, ahora podemos ver como después de calcular estadísticas Oracle toma otro camino diferente. Antes de calcular estadísticas Oracle decidió de usar el índice.</p>
<pre>
------------------------------------------------------------------------------------------
| Id  | Operation                   | Name       | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |            | 23305 |    45M|     5   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| EMPS       | 23305 |    45M|     5   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN          | EMPS_HIRED |  4524 |       |     1   (0)| 00:00:01 |
------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   2 - access(EXTRACT(YEAR FROM INTERNAL_FUNCTION("HIRED"))=2000)
</pre>
<p>Pero ahora vemos que Oracle esta decidiendo hacer un full scan&#8230;mmmm.</p>
<pre>
SQL&gt; select *
  2  from emps
  3  where extract(year from hired) = '2000';
21438 rows selected.
Elapsed: 00:00:02.67
Execution Plan
----------------------------------------------------------
Plan hash value: 2715242515
--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      | 24125 |   683K|  1181  (12)| 00:00:15 |
|*  1 |  TABLE ACCESS FULL| EMPS | 24125 |   683K|  1181  (12)| 00:00:15 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   1 - filter(EXTRACT(YEAR FROM INTERNAL_FUNCTION("HIRED"))=2000)
Statistics
----------------------------------------------------------
        689  recursive calls
          0  db block gets
       6265  consistent gets
       4740  physical reads
          0  redo size
     828924  bytes sent via SQL*Net to client
      16100  bytes received via SQL*Net from client
       1431  SQL*Net roundtrips to/from client
         12  sorts (memory)
          0  sorts (disk)
      21438  rows processed
</pre>
<p>Podemos ver como el calculo de estadísticas afecto el explain plan para un mismo query, básicamente Oracle nos esta diciendo que es mas &#8220;barato&#8221; hacer un full scan que usar un índice. Vamos a analizar los explain plans; el costo (CPU) es mas alto 5 vs 1181 pero los bytes son mejores en el full scan (683K vs 45M) así que Oracle ha decidido que es mejor hacer un full scan (no quiero entrar en detalles de la razón ya que me llevaría mucho tiempo explicarlo, por el momento vamos a dejarlo así pero existe una razón por que es mas costoso usar el índice vs un full scan EN ESTE CASO).</p>
<p>Lo que quería mostrar es que el plan de ejecución puede (va a cambiar) con el calculo de estadísticas y esto es debido a que Oracle tiene mas información para decidir cual es el &#8220;mejor&#8221; camino.</p>
<p>Pero podemos ver que para el siguiente caso continua utilizando el índice y de hecho mejora mucho el plan de ejecución.</p>
<p>Antes de calcular estadísticas el plan era el siguiente:</p>
<pre>
------------------------------------------------------------------------------------------
| Id  | Operation                   | Name       | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |            |    53 |   105K|     5   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| EMPS       |    53 |   105K|     5   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN          | EMPS_HIRED |  4524 |       |     1   (0)| 00:00:01 |
------------------------------------------------------------------------------------------
</pre>
<p>Después de calcular estadísticas:</p>
<pre>
SQL&gt; select *
  2  from emps
  3  where extract(year from hired) = '1959';
Elapsed: 00:00:00.26
Execution Plan
----------------------------------------------------------
Plan hash value: 2150600608
------------------------------------------------------------------------------------------
| Id  | Operation                   | Name       | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |            |     1 |    29 |     4   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| EMPS       |     1 |    29 |     4   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN          | EMPS_HIRED |     1 |       |     3   (0)| 00:00:01 |
------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   2 - access(EXTRACT(YEAR FROM INTERNAL_FUNCTION("HIRED"))=1959)
Statistics
----------------------------------------------------------
        689  recursive calls
          0  db block gets
        125  consistent gets
         21  physical reads
          0  redo size
        597  bytes sent via SQL*Net to client
        381  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
         12  sorts (memory)
          0  sorts (disk)
          1  rows processed
</pre>
<p>Podemos observar varias cosas aquí, el numero de bytes accesadsos son menos (29 vs 105K) lo mismo para el numero de rows (1 vs 53), inclusive si vemos las estadísticas, el numero de lecturas físicas es menor (21 vs 583) hay grandes diferencias.</p>
<p>Vamos a analizar poquito por que ahora con estadísticas Oracle los planes cambiaron.</p>
<pre>
SQL&gt; select extract(year from hired), count(*),(count(*)/1000000)*100 PCT
  2  from scott.emps
  3  group by extract(year from hired)
  4  having extract(year from hired) in ('2000','1959');
EXTRACT(YEARFROMHIRED)   COUNT(*)        PCT
---------------------- ---------- ----------
                  2000      21438     2.1438
                  1959          1      .0001
Elapsed: 00:00:01.79
</pre>
<p>En los ejemplos que estamos utilizando buscamos por dos años,2000 y 1959, podemos ver que del total de millón de registros el año 2000 contiene 21,438(2%) y el año 1959 1(casi nada %), y es por eso que Oracle en el primero considera mejor hacer un full scan ya que va accesar una cantidad considerable de registros y en el otro caso es preferible usar un índice ya que es solo 1 registro el que se va accesar; obviamente Oracle no tenia esa información antes de calcular estadísticas, no sabia cuantos valores diferentes tenia ni que porcentaje del total de la tabla había respecto a un dato.</p>
<h2>Conclusión</h2>
<p>Podemos ver que al plan de ejecución mejoro muchísimo después de calcular estadísticas y eso que solo utilizamos los valores por default. También observamos que el explain plan va a cambiar una vez que calculemos estadísticas, el cambio puede ser benéfico o puede afectar así que es mejor probar antes de aplicarlo a una base de producción, tal vez en el caso del full scan nosotros deseamos que utilicé el índice, en este caso tendríamos que hacer algunos cambios pero por ahora así lo vamos a dejar para no ahondar en otras cosas y perdernos mas. Otra cosa que se vio fue que al momento de calcular estadísticas a la tabla también se le calcularon estadísticas a los índices de manera automática y realmente no necesitamos calcular individualmente cada índice.</p>
<p>En el próximo capitulo de esta telenovela voy a continuar con GATHER_TABLE_STATS y voy a utilizar otros parámetros para calcular las estadísticas y observar que hay de diferente.</p>
<p>Hasta la próxima&#8230;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/42/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/42/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=42&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2007/10/06/dbms_stats-parte-2/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>DBMS_STATS. Parte 1</title>
		<link>http://delfinonunez.wordpress.com/2007/10/02/dbms_stats-parte-1/</link>
		<comments>http://delfinonunez.wordpress.com/2007/10/02/dbms_stats-parte-1/#comments</comments>
		<pubDate>Tue, 02 Oct 2007 18:15:04 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2007/10/02/dbms_stats-parte-1/</guid>
		<description><![CDATA[DBMS_STATS Otra manera de calcular estadisticas además del comando ANALYZE es el paquete DBMS_STATS. Este paquete se utiliza para modificar, ver, exportar, importar y borrar estadisticas de la base de datos. Como ya habia mencionado Oracle recomienda la utilización de este paquete a partir de la versión 9i para el calculo de estadisticas en lugar [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=41&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h1>DBMS_STATS</h1>
<p>Otra manera de calcular estadisticas además del comando ANALYZE es el paquete DBMS_STATS. Este paquete se utiliza para modificar, ver, exportar, importar y borrar estadisticas de la base de datos.</p>
<p>Como ya habia mencionado Oracle recomienda la utilización de este paquete a partir de la versión 9i para el calculo de estadisticas en lugar de usar ANALYZE debido a que es mas exacto y mas eficiente. Aunque ANALYZE ya no sea la opción adecuada para calcular estadisticas eso no quiere decir que ya no sirva para nada, todavia se puede utilizar para validar la estructura de una tabla o buscar por CHAINED ROWS y algunas otras cosas.</p>
<p>Cuando se generan nuevas estadisticas para una tabla, columna o indice las estadisticas existentes son actualizadas por Oracle, cuando se actualizan las estadisticas Oracle invalida cualquier SQL que se encuentra en memoria (parsed) que accesa el objeto al cual se les estan calculando estadisticas. Esto quiere decir que si alguien ejecuto un query sobre la tabla empleados y se empiezan a calcular estadisticas sobre esa table Oracle invalida el query SQL que esta compartido en la memoria en lugar de re-utilizarlo (espero no haber confundido aqui esto tiene que ver con la manera en que Oracle reutiliza SQL previamente ejecutados, cualquier duda pregunten). Oracle utiliza las nuevas estadisticas cuando el query SQL es ejecutado de nuevo y por lo cual puede utilizar un plan de ejecucion diferente.</p>
<p>Procedimientos para el calculo de estadisticas dentro del paquete DBMS_STATS</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="307" valign="top">Procedimiento</td>
<td width="307" valign="top">Que calcula?</td>
</tr>
<tr>
<td width="307" valign="top">GATHER_INDEX_STATS</td>
<td width="307" valign="top">Indices</td>
</tr>
<tr>
<td width="307" valign="top">GATHER_TABLE_STATS</td>
<td width="307" valign="top">Tablas, columnas e indices</td>
</tr>
<tr>
<td width="307" valign="top">GATHER_SCHEMA_STATS</td>
<td width="307" valign="top">Para todos los objetos del schema</td>
</tr>
<tr>
<td width="307" valign="top">GATHER_DICTIONARY_STATS</td>
<td width="307" valign="top">Para todos los objetos del diccionario de datos</td>
</tr>
<tr>
<td width="307" valign="top">GATHER_DATABASE_STATS</td>
<td width="307" valign="top">Para todos los objetos en la base de datos</td>
</tr>
</tbody>
</table>
<p>Bueno vamos a empezar con el primero antes de que se haga mas aburrido y luego vamos explicando el por que de algunas cosas.</p>
<h2>GATHER_INDEX_STATS</h2>
<p>Bueno ya habiamos mencionado que este procedimiento calcula estadisticas a los indices.</p>
<p>Sintaxis</p>
<pre>DBMS_STATS.GATHER_INDEX_STATS (
ownname          VARCHAR2,
indname          VARCHAR2,
partname         VARCHAR2 DEFAULT NULL,
estimate_percent NUMBER   DEFAULT to_estimate_percent_type
(GET_PARAM('ESTIMATE_PERCENT')),
stattab          VARCHAR2 DEFAULT NULL,
statid           VARCHAR2 DEFAULT NULL,
statown          VARCHAR2 DEFAULT NULL,
degree           NUMBER   DEFAULT to_degree_type(get_param('DEGREE')),
granularity      VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'),
no_invalidate    BOOLEAN  DEFAULT to_no_invalidate_type
(GET_PARAM('NO_INVALIDATE')),
force            BOOLEAN DEFAULT FALSE);</pre>
<p>Parametro     Descripcion</p>
<p>ownname Schema/usuario/dueño del indice al cual se le van a calcular</p>
<p>indname Nombre del indice</p>
<p>partname Nombre de la particion</p>
<p>estimate_percent Porcentaje de registros a estimar (NULL significa compute[todos]). Rango valido [0.000001,100]. Se recomienda usar la constante DBMS_STATS.AUTO_SAMPLE_SIZE para dejar que Oracle obtenga el valor adecuado para calcular las estadisticas.</p>
<p>stattab Tabla de estadisticas donde se guardan las actuales (mas adelante mencionamos eso)</p>
<p>statid Identificador para asociar las estadisticas actuales</p>
<p>statown Schema que contiene la tabla de estadisticas (si es diferente al usuario)</p>
<p>degree Grado de paralelismo, el default es NULL, lo cual significa que usa el que tenga la tabla cuando se creo.</p>
<p>granularity Detalle del calculo, solo se utiliza cuando la tabla esta particionada.</p>
<p>ALL,AUTO,DEFAULT,GLOBAL,GLOBAL AND PARTITION, PARTITION, SUBPARTITION.</p>
<p>no_invalidate No invalida los cursores (SQL query) que dependen del objeto si se pone TRUE. Por default los invalida inmediatamente.</p>
<p>force Calcula estadisticas inclusive si el objeto esta bloqueado.</p>
<p>Verficar el manual para obtener mas detalles de los parametros.(http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_stats.htm#sthref8108)\</p>
<p>Bueno, primero vamos a usar un procedimiento que ayuda a borrar las estadisticas actuales.</p>
<pre>SQL&gt; EXEC DBMS_STATS.DELETE_INDEX_STATS('SCOTT','PK_EMP');</pre>
<p>PL/SQL procedure successfully completed.</p>
<p>Ahora vamos a ver que es lo que esta almacenado como estadisticas:</p>
<pre>SQL&gt; select OWNER,INDEX_NAME,NUM_ROWS,
2         SAMPLE_SIZE,LAST_ANALYZED,
3         BLEVEL,LEAF_BLOCKS,DISTINCT_KEYS
4  from dba_indexes
5  where owner = 'SCOTT'
6  and index_name ='PK_EMP';
OWNER      INDEX_NAME   NUM_ROWS SAMPLE_SIZE LAST_ANAL     BLEVEL LEAF_BLOCKS DISTINCT_KEYS
---------- ---------- ---------- ----------- --------- ---------- ----------- -------------
SCOTT      PK_EMP</pre>
<p>Aqui podemos ver que el indice no ha sido analizado y por lo tanto no tiene estadisticas aunque la tabla puede tenerlas como se muestra en el siguiente ejemplo:</p>
<pre>SQL&gt; select OWNER,table_NAME,LAST_ANALYZED
2  from dba_tables
3  where owner = 'SCOTT'
4  and table_name = 'EMP';
OWNER      TABLE_NAME                     LAST_ANAL
---------- ------------------------------ ---------
SCOTT      EMP                            22-AUG-07</pre>
<p>Asi que podemos tener tablas con estadisticas e indices sin estadisticas y viceversa. Aunque no es remendable tener este tipo de estadisticas es posible.</p>
<p>Ahora vamos a calcular las estadisticas del indice:</p>
<pre>SQL&gt; EXEC DBMS_STATS.GATHER_INDEX_STATS('SCOTT','PK_EMP');
PL/SQL procedure successfully completed.
SQL&gt; select OWNER,INDEX_NAME,NUM_ROWS,
2         SAMPLE_SIZE,LAST_ANALYZED,
3         BLEVEL,LEAF_BLOCKS,DISTINCT_KEYS
4  from dba_indexes
5  where owner = 'SCOTT'
6  and index_name ='PK_EMP';
OWNER      INDEX_NAME   NUM_ROWS SAMPLE_SIZE LAST_ANAL     BLEVEL LEAF_BLOCKS DISTINCT_KEYS
---------- ---------- ---------- ----------- --------- ---------- ----------- -------------
SCOTT      PK_EMP             14          14 02-OCT-07          0           1            14</pre>
<p>Y asi de sencillo se pueden calcular estadisticas para un indice. En este caso utilizamos unicamente las opciones por default.</p>
<p>Vamos a analizar que se hizo, le dijimos que indice queremos calcular, pero podemos ver que el sample_size utilizado fue el mismo numero de registros de la tabla esto quiere decir que Oracle uso NULL que significa COMPUTE que significa 100% o todos los registros. Para este caso en que la tabla es muy pequeña es muy rapido pero hay casos donde las tablas son de millones de registros estoy puede tardar varios minutos asi que se recomienda dejar que oracle lo determine utilizando DBMS_STATS.AUTO_SAMPLE_SIZE.</p>
<p>Vamos a cambiar este parametro para compara resultados con una tabla con algunos registros demas:</p>
<pre>SQL&gt; INSERT INTO SCOTT.EMP2(EMPNO,ENAME)
2  SELECT LEVEL,'TEST'
3  FROM DUAL
4  CONNECT BY LEVEL &lt;=1000000;
1000000 rows created.
SQL&gt; EXEC DBMS_STATS.DELETE_INDEX_STATS('SCOTT','PK_EMP2');
PL/SQL procedure successfully completed.
SQL&gt; select OWNER,INDEX_NAME,NUM_ROWS,
2         SAMPLE_SIZE,LAST_ANALYZED,
3         BLEVEL,LEAF_BLOCKS,DISTINCT_KEYS
4  from dba_indexes
5  where owner = 'SCOTT'and index_name ='PK_EMP2';
OWNER      INDEX_NAME   NUM_ROWS SAMPLE_SIZE LAST_ANAL     BLEVEL LEAF_BLOCKS DISTINCT_KEYS
---------- ---------- ---------- ----------- --------- ---------- ----------- -------------
SCOTT      PK_EMP2
SQL&gt; EXEC DBMS_STATS.GATHER_INDEX_STATS('SCOTT','PK_EMP2');
PL/SQL procedure successfully completed.
SQL&gt; select OWNER,INDEX_NAME,NUM_ROWS,
2         SAMPLE_SIZE,LAST_ANALYZED,
3         BLEVEL,LEAF_BLOCKS,DISTINCT_KEYS
4  from dba_indexes
5  where owner = 'SCOTT'and index_name ='PK_EMP2';
OWNER      INDEX_NAME   NUM_ROWS SAMPLE_SIZE LAST_ANAL     BLEVEL LEAF_BLOCKS DISTINCT_KEYS
---------- ---------- ---------- ----------- --------- ---------- ----------- -------------
SCOTT      PK_EMP2       1000000     1000000 02-OCT-07          2        1875       1000000
SQL&gt; EXEC DBMS_STATS.GATHER_INDEX_STATS('SCOTT','PK_EMP2',null,10);
PL/SQL procedure successfully completed.
SQL&gt; select OWNER,INDEX_NAME,NUM_ROWS,
2         SAMPLE_SIZE,LAST_ANALYZED,
3         BLEVEL,LEAF_BLOCKS,DISTINCT_KEYS
4  from dba_indexes
5  where owner = 'SCOTT'and index_name ='PK_EMP2';
OWNER      INDEX_NAME   NUM_ROWS SAMPLE_SIZE LAST_ANAL     BLEVEL LEAF_BLOCKS DISTINCT_KEYS
---------- ---------- ---------- ----------- --------- ---------- ----------- -------------
SCOTT      PK_EMP2        971743      593140 02-OCT-07          2        1822        971743
SQL&gt; EXEC DBMS_STATS.GATHER_INDEX_STATS('SCOTT','PK_EMP2',null,50);
PL/SQL procedure successfully completed.
SQL&gt; select OWNER,INDEX_NAME,NUM_ROWS,
2         SAMPLE_SIZE,LAST_ANALYZED,
3         BLEVEL,LEAF_BLOCKS,DISTINCT_KEYS
4  from dba_indexes
5  where owner = 'SCOTT'and index_name ='PK_EMP2';
OWNER      INDEX_NAME   NUM_ROWS SAMPLE_SIZE LAST_ANALYZED            BLEVEL LEAF_BLOCKS DISTINCT_KEYS
---------- ---------- ---------- ----------- -------------------- ---------- ----------- -----------
SCOTT      PK_EMP2       1008372      615498 02/OCT/2007 11:53:18          2        1891       1008372
SQL&gt; EXEC DBMS_STATS.GATHER_INDEX_STATS('SCOTT','PK_EMP2',null,DBMS_STATS.AUTO_SAMPLE_SIZE);
PL/SQL procedure successfully completed.
SQL&gt; select OWNER,INDEX_NAME,NUM_ROWS,
2         SAMPLE_SIZE,LAST_ANALYZED,
3         BLEVEL,LEAF_BLOCKS,DISTINCT_KEYS
4  from dba_indexes
5  where owner = 'SCOTT'and index_name ='PK_EMP2';
OWNER      INDEX_NAME   NUM_ROWS SAMPLE_SIZE LAST_ANALYZED            BLEVEL LEAF_BLOCKS DISTINCT_KEYS
---------- ---------- ---------- ----------- -------------------- ---------- ----------- -----------
SCOTT      PK_EMP2       1000000     1000000 02/OCT/2007 11:55:34          2        1875       1000000</pre>
<p>Aqui podemos ver que al igual que el comando ANALYZE si le damos un valor mas alto a estimate_percent entones obtendremos estadisticas mas exactas, pero  de igual manera va a tardar mas tiempo en calcularlas. Puede observarse que en el ultimo ejemplo se calcularon usando AUTO_SAMPLE_SIZE y Oracle decidio que lo ideal era calcular para todos los registros.</p>
<p>Y asi se calculan estadisticas para indices, en lo personal yo casi nunca he utilizado este metodo debido a que siempre las calculo automaticamente con el procedimiento GATHER_TABLES_STATS o GATHER_SCHEMA_STATS, esto lo voy a mostrar en los proximos dias.</p>
<p>Los procedimientos tienen mas parametros sobre los cuales no mostre como funcionaban, la verdad no lo hice por que los parametros explican claramente que hacen cada uno y debido a que se utilizan para casos mas &#8220;avanzados&#8221; como particiones, paralelismo, etc. Y la verdad me dio flojera hacer una caso de prueba para ese tipo, creo que los mas importantes y que se aplican mas seguido son los mostrados, a menos que yo personalmente considere mencionar otro lo voy a hacer y si alguien desea saber como funciona entonces haganmelo saber.</p>
<p>Cuando calcular estadisticas?</p>
<p>De nuevo, no existe una regla sobre cada cuando se deben de calcular; pero algunos consejos son por ejemplo si se insertan/borran/actualizan un gran numero de registros a una tabla, tal vez millones, entonces inmediatamente despues hay que calcular debido a que si puede afectar los planes de ejecucion ya que se hizo un gran cambio. Si se desea hacer de manera automatica entonces depende de la carga de la base de datos, de la aplicacion, puede haber casos que semanalmente esta bien o hay veces que 1 vez al mes.</p>
<p>Bueno hasta la siguiente&#8230;con GATHER_TABLE_STATS.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/41/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/41/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=41&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2007/10/02/dbms_stats-parte-1/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Linux en windows</title>
		<link>http://delfinonunez.wordpress.com/2007/01/31/linux-en-windows/</link>
		<comments>http://delfinonunez.wordpress.com/2007/01/31/linux-en-windows/#comments</comments>
		<pubDate>Wed, 31 Jan 2007 18:47:58 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2007/01/31/linux-en-windows/</guid>
		<description><![CDATA[Siempre he querido usar Linux pero por alguna razon no he podido, esta es una buena opcion para hacerlo. Yo creo que lo voy a intentar despues. http://www.lifehack.org/articles/technology/beginners-guide-run-linux-like-any-other-program-in-windows.html powered by performancing firefox<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=38&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Siempre he querido usar Linux pero por alguna razon no he podido, esta es una buena opcion para hacerlo. Yo creo que lo voy a intentar despues.</p>
<p><a href="http://www.lifehack.org/articles/technology/beginners-guide-run-linux-like-any-other-program-in-windows.html">http://www.lifehack.org/articles/technology/beginners-guide-run-linux-like-any-other-program-in-windows.html</a></p>
<p>
<p class="poweredbyperformancing">powered by <a href="http://performancing.com/firefox">performancing firefox</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/38/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/38/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=38&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2007/01/31/linux-en-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Generador de numeros</title>
		<link>http://delfinonunez.wordpress.com/2007/01/27/generador-de-numeros/</link>
		<comments>http://delfinonunez.wordpress.com/2007/01/27/generador-de-numeros/#comments</comments>
		<pubDate>Sat, 27 Jan 2007 01:20:53 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2007/01/27/generador-de-numeros/</guid>
		<description><![CDATA[Antes habia visto como generar datos dummy. Esta opción de generar numeros esta interesante. http://oracledba.co.uk/ sys@DBA&#62; select rownum from dual connect by rownum &#60;=10; ROWNUM ---------- 1 2 3 4 5 6 7 8 9 10 10 rows selected. sys@DBA&#62; select dbms_random.value from dual connect by rownum &#60;=10; VALUE ---------- .876879822 .04653477 .592060427 .273758898 .488285804 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=37&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>Antes habia visto como generar datos <a href="http://delfinonunez.wordpress.com/2006/11/28/como-seleccionar-datos-dummy-sin-tablas/">dummy.</a><br />
Esta opción de generar numeros esta interesante.<br />
<a href="http://oracledba.co.uk/">http://oracledba.co.uk/</a></p>
<pre>sys@DBA&gt; select rownum from dual connect by rownum &lt;=10;

ROWNUM
----------
1
2
3
4
5
6
7
8
9
10

10 rows selected.

sys@DBA&gt; select dbms_random.value from dual connect by rownum &lt;=10;

VALUE
----------
.876879822
.04653477
.592060427
.273758898
.488285804
.523971849
.717315039
.092101034
.598717486
.99935022

10 rows selected.

10 rows selected.</pre>
</div>
<p class="poweredbyperformancing"><a href="http://performancing.com/firefox"><br />
</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/37/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/37/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=37&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2007/01/27/generador-de-numeros/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Estadísticas, estadísticas y más estadísticas Parte 1.</title>
		<link>http://delfinonunez.wordpress.com/2007/01/11/estadisticas-estadisticas-y-mas-estadisticas-parte-1/</link>
		<comments>http://delfinonunez.wordpress.com/2007/01/11/estadisticas-estadisticas-y-mas-estadisticas-parte-1/#comments</comments>
		<pubDate>Thu, 11 Jan 2007 00:30:28 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2007/01/11/estadisticas-estadisticas-y-mas-estadisticas-parte-1/</guid>
		<description><![CDATA[Últimamente hemos tenido algunos problemas de performance algunos de ellos han estado relacionados con la generación de estadísticas en las tablas, así que decidí escribir algo para recordarme que son, para que sirven y como funcionan. Que son y para que sirven? Primero lo primero, que son las famosas estadísticas. Bueno básicamente datos/información que describe [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=36&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Últimamente hemos tenido algunos problemas de performance algunos de ellos han estado relacionados con la generación de estadísticas en las tablas, así que decidí escribir algo para recordarme que son, para que sirven y como funcionan.</p>
<ul>
<li>Que son y para que sirven?</li>
</ul>
<p>Primero lo primero, que son las famosas estadísticas. Bueno básicamente datos/información que describe en detalle los objetos dentro de la base de datos, regularmente las tablas y los indices. Estas estadísticas son utilizadas por el query optimizer que se encarga de seleccionar el plan de ejecución más optimo para un query.<br />
Ejemplos de estadísticas son:</p>
<ul>
<li>Tablas (numero de registros, numero de bloques de datos, tamaño promedio del registro).</li>
<li>Columnas (Numero de valores distintos, numero de valores NULOS, como esta distribuida la información en las columnas.</li>
<li>Indices (Numero de hojas, niveles, clustering factor.</li>
<li>Sistema (Utilización y desempeño de I/O y del CPU )</li>
</ul>
<p>Toda esta información se guarda dentro del diccionario de datos de Oracle. Debido a la naturaleza cambiante(delete,update,insert) de los objetos (tablas, indices) se deben calcular las estadísticas de manera regular dependiendo de la carga de cambios que se tenga en la base de datos.</p>
<ul>
<li>Como calculo las estadísticas?</li>
</ul>
<p>Existen dos formas(instrucciones) para calcular estadísticas: ANALYZE TABLE y DBMS_STATS.<br />
Hoy nada mas voy a ver ANALYZE TABLE, después entraré en detalle con DBMS_STATS ya que requiere más tiempo.</p>
<ul>
<li>ANALYZE TABLE</li>
</ul>
<p>Esta instrucción permite calcular estadísticas, validar la estructura de un indice o tabla, identificar en una tabla registros migrados o encadenados (migrated, chained).</p>
<blockquote><p>Nota: Aunque esta instrucción todavía existe en la versión 10g no se recomienda usarla para calcular estadísticas desde la versión 9i. Así que solo es ilustrativa para saber que existe.</p></blockquote>
<p>Requisitos<br />
Se debe tener el privilegio ANALYZE ANY para poder analizar la tabla de otro usuario, pero si se desea analizar las tablas de su propio usuario entonces solo debe existir el objeto dentro de mi schema.</p>
<p>Sintaxis rápida</p>
<pre>
ANALYZETABLE   xxx COMPUTE STATISTICSINDEX       ESTIMATE STATISTICS  {SAMPLE nn [ROWS|PERCENT]}

CLUSTER     DELETE STATISTICS
</pre>
<p>Donde xxx es el nombre de la tabla o el indice.</p>
<p>Opciones<br />
COMPUTE STATISTICS. Calcula las estadísticas de manera exacta, básicamente lee todos y cada unos de los registros con sus columnas para generar estadísticas, esto quiere decir que si tengo una tabla con 100 millones de registros esta opción leerá todos los registros, esta opción pude ser la más tardada debido a eso pero es la más exacta.</p>
<p>ESTIMATE STATISTICS. Como su nombre lo indica esta opción estima las estadísticas, regularmente esta opción es la más utilizada debido a que es acertada(no en todos los casos) y además toma mucho menos tiempo que la otra. Se puede especificar SAMPLE nn donde nn puede ser el numero de registros(ROWS) o el porcentaje de la tabla (PERCENT).</p>
<p>Ejemplos,ejemplos y más ejemplos&#8230;</p>
<p>Primero vamos a crear una tabla e insertarle datos.</p>
<pre>
scott@DBA&gt; create table test as
select * from all_objects;
scott@DBA&gt;
insert into test select * from all_objects;

48073 rows created.

scott@DBA&gt; insert into test select * from all_objects;

48073 rows created.

scott@DBA&gt; insert into test select * from all_objects;

48073 rows created.

scott@DBA&gt; insert into test select * from all_objects;

48073 rows created.

scott@DBA&gt; commit;

Commit complete.

scott@DBA&gt; select count(*) from test;

COUNT(*)

----------

240365
</pre>
<p>Después revisamos si la tabla tiene estadísticas.</p>
<pre>
scott@DBA&gt; select table_name,
num_rows,
blocks,
avg_space,
chain_cnt,
avg_row_len,
sample_Size
from user_tables
where table_name ='TEST';
TABLE_NAME                       NUM_ROWS     BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN SAMPLE_SIZE
------------------------------ ---------- ---------- ---------- ---------- ----------- -----------

TEST
</pre>
<p>Aqui podemos confirmar que la tabla no tiene información estadística. Ahora vamos a calcular estadísticas y luego verificamos que es lo que sucede.</p>
<pre>
scott@DBA&gt; analyze table test compute statistics;
Table analyzed.Elapsed: 00:00:08.34
</pre>
<p>Aqui podemos ver que tarda 8 segundos y medio en terminar de calcular todas las estadísticas, ahora vamos a revisar que información guardo.</p>
<pre>
scott@DBA&gt; select table_name,
num_rows,
blocks,
avg_space,
chain_cnt,
avg_row_len,
sample_Size
from user_tables
where table_name ='TEST';TABLE_NAME
NUM_ROWS     BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN SAMPLE_SIZE
------------------------------ ---------- ---------- ---------- ---------- ----------- -----------
TEST                               240365       3350        904          0          97      240365

Elapsed: 00:00:00.01
</pre>
<p>Aquí se muestra que ahora Oracle tiene información respecto a la tabla.<br />
Ahora vamos a calcular las estadísticas con sample.</p>
<p>Primero hay que borrar las estadísticas de la tabla, esto se realiza con la opción DELETE STATISTICS.</p>
<pre>
scott@DBA&gt; analyze table test delete statistics;
Table analyzed.Elapsed: 00:00:00.18

scott@DBA&gt; select table_name,num_rows,blocks,avg_space,chain_cnt,avg_row_len,sample_Size from user_tables where table_name ='TEST';

TABLE_NAME                       NUM_ROWS     BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN SAMPLE_SIZE
------------------------------ ---------- ---------- ---------- ---------- ----------- -----------
TEST

Elapsed: 00:00:00.01

scott@DBA&gt; analyze table test estimate statistics;

Table analyzed.

Elapsed: 00:00:00.06

scott@DBA&gt; select table_name,num_rows,blocks,avg_space,chain_cnt,avg_row_len,sample_Size from user_tables where table_name ='TEST';

TABLE_NAME                       NUM_ROWS     BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN SAMPLE_SIZE
------------------------------ ---------- ---------- ---------- ---------- ----------- -----------
TEST                               242821       3350        873          0          97         993

Elapsed: 00:00:00.01
</pre>
<p>Como podemos observar el calculo tardo muchísimo menos tiempo que el calculo completo (6 centésimas de seg VS 8.5 segs), ademas que la información estimada es diferente al calculo completo.</p>
<p>Vamos a probar con 10%, 20% y 80% de SAMPLE.</p>
<pre>
scott@DBA&gt; analyze table test delete statistics;
Table analyzed.Elapsed: 00:00:00.20

scott@DBA&gt; analyze table test estimate statistics sample 10 percent;

Table analyzed.

Elapsed: 00:00:00.71

scott@DBA&gt; select table_name,num_rows,blocks,avg_space,chain_cnt,avg_row_len,sample_Size from user_tables where table_name ='TEST';

TABLE_NAME                       NUM_ROWS     BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN SAMPLE_SIZE
------------------------------ ---------- ---------- ---------- ---------- ----------- -----------
TEST                               241809       3350        904          0          97       22770

Elapsed: 00:00:00.06

scott@DBA&gt; analyze table test estimate statistics sample 20 percent;

Table analyzed.

Elapsed: 00:00:01.04

scott@DBA&gt; select table_name,num_rows,blocks,avg_space,chain_cnt,avg_row_len,sample_Size from user_tables where table_name ='TEST';

TABLE_NAME                       NUM_ROWS     BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN SAMPLE_SIZE
------------------------------ ---------- ---------- ---------- ---------- ----------- -----------
TEST                               241809       3350        904          0          97       43310

Elapsed: 00:00:00.03

scott@DBA.REGRESS.RDBMS.DEV.US.ORACLE.COM&gt; analyze table test estimate statistics sample 80 percent;

Table analyzed.

Elapsed: 00:00:04.34

scott@DBA&gt; select table_name,num_rows,blocks,avg_space,chain_cnt,avg_row_len,sample_Size from user_tables where table_name ='TEST';

TABLE_NAME                       NUM_ROWS     BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN SAMPLE_SIZE
------------------------------ ---------- ---------- ---------- ---------- ----------- -----------
TEST                               240365       3350        904          0          97      240365

Elapsed: 00:00:00.01

scott@DBA.REGRESS.RDBMS.DEV.US.ORACLE.COM&gt; analyze table test compute statistics;

Table analyzed.

Elapsed: 00:00:04.36

scott@DBA.REGRESS.RDBMS.DEV.US.ORACLE.COM&gt; select table_name,num_rows,blocks,avg_space,chain_cnt,avg_row_len,sample_Size
from user_tables where table_name ='TEST';

TABLE_NAME                       NUM_ROWS     BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN SAMPLE_SIZE
------------------------------ ---------- ---------- ---------- ---------- ----------- -----------
TEST                               240365       3350        904          0          97      240365

Elapsed: 00:00:00.01
</pre>
<p>Como podemos observar entre más elevado es el porcentaje más cercanas son las estadísticas de la tabla a la opción COMPUTE y obviamente tarda mucho más tiempo en calcular las estadísticas.</p>
<ul>
<li>Y los indices???</li>
</ul>
<p>Bueno los indices son analizados al mismo tiempo que se analiza la tabla, veamos un ejemplo.<br />
Primero creamos el indice en la tabla, verificamos que no hay estadísticas creadas para el indice y comenzamos a calcular para distintos porcentajes.</p>
<pre>
scott@DBA&gt; create index testidx on test(object_name);
Index created.
scott@DBA&gt; SELECT num_rows, sample_size, leaf_blocks, distinct_keys, avg_leaf_blocks_per_key, avg_data_blocks_per_key
2    FROM user_indexes
3   WHERE index_name = 'TESTIDX';

NUM_ROWS SAMPLE_SIZE LEAF_BLOCKS DISTINCT_KEYS AVG_LEAF_BLOCKS_PER_KEY AVG_DATA_BLOCKS_PER_KEY
---------- ----------- ----------- ------------- ----------------------- -----------------------

Elapsed: 00:00:00.04

scott@DBA&gt; analyze table test estimate statistics sample 10 percent;

Table analyzed.

Elapsed: 00:00:00.48

scott@DBA&gt; SELECT num_rows, sample_size, leaf_blocks, distinct_keys, avg_leaf_blocks_per_key, avg_data_blocks_per_key
2    FROM user_indexes
3   WHERE index_name = 'TESTIDX';

NUM_ROWS SAMPLE_SIZE LEAF_BLOCKS DISTINCT_KEYS AVG_LEAF_BLOCKS_PER_KEY AVG_DATA_BLOCKS_PER_KEY
---------- ----------- ----------- ------------- ----------------------- -----------------------
243057       25522        1219         29417                       1                       5

Elapsed: 00:00:00.01

scott@DBA&gt; analyze table test estimate statistics sample 20 percent;

Table analyzed.

Elapsed: 00:00:00.87

scott@DBA&gt; SELECT num_rows, sample_size, leaf_blocks, distinct_keys, avg_leaf_blocks_per_key, avg_data_blocks_per_key
2    FROM user_indexes
3   WHERE index_name = 'TESTIDX';

NUM_ROWS SAMPLE_SIZE LEAF_BLOCKS DISTINCT_KEYS AVG_LEAF_BLOCKS_PER_KEY AVG_DATA_BLOCKS_PER_KEY
---------- ----------- ----------- ------------- ----------------------- -----------------------
242871       49411        1219         29310                       1                       5

Elapsed: 00:00:00.00

scott@DBA&gt; analyze table test estimate statistics sample 80 percent;

Table analyzed.

Elapsed: 00:00:04.40

scott@DBA&gt; SELECT num_rows, sample_size, leaf_blocks, distinct_keys, avg_leaf_blocks_per_key, avg_data_blocks_per_key
2    FROM user_indexes
3   WHERE index_name = 'TESTIDX';

NUM_ROWS SAMPLE_SIZE LEAF_BLOCKS DISTINCT_KEYS AVG_LEAF_BLOCKS_PER_KEY AVG_DATA_BLOCKS_PER_KEY
---------- ----------- ----------- ------------- ----------------------- -----------------------
240365      240365        1189         28595                       1                       5

Elapsed: 00:00:00.01

scott@DBA&gt; analyze table test compute statistics;

Table analyzed.

Elapsed: 00:00:04.39
</pre>
<p>Como podemos observar en el caso de los indices sucede lo mismo que con las tablas, entre el porcentaje es menor también lo es la exactitud de las estadísticas.</p>
<ul>
<li>Desempeño(Performance)</li>
</ul>
<p>Bueno y como afectan las estadísticas al performance. Vamos viendo un ejemplo donde veamos el explain plan sin estadísticas y con estadísticas.</p>
<pre>
scott@DBA&gt; analyze table test delete statistics;Table analyzed.scott@DBA&gt; select * from test where object_name='TEST';

Execution Plan
----------------------------------------------------------

Plan hash value: 464205115
---------------------------------------------------------------------------------------
| Id  | Operation                   | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |         |     5 |   640 |     2   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| TEST    |     5 |   640 |     2   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN          | TESTIDX |     5 |       |     1   (0)| 00:00:01 |
---------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("OBJECT_NAME"='TEST')

Note
----

- dynamic sampling used for this statement

Statistics
----------------------------------------------------------
1743  recursive calls
0  db block gets
420  consistent gets
0  physical reads
0  redo size
1564  bytes sent via SQL*Net to client
381  bytes received via SQL*Net from client
2  SQL*Net roundtrips to/from client
50  sorts (memory)
0  sorts (disk)
5  rows processed

scott@DBA&gt; analyze table test compute statistics;

Table analyzed.

scott@DBA&gt; select * from test where object_name='TEST';

Execution Plan
----------------------------------------------------------
Plan hash value: 464205115
---------------------------------------------------------------------------------------
| Id  | Operation                   | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |         |     8 |   696 |     9   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| TEST    |     8 |   696 |     9   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN          | TESTIDX |     8 |       |     3   (0)| 00:00:01 |
---------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("OBJECT_NAME"='TEST')
Statistics
----------------------------------------------------------
1685  recursive calls
0  db block gets
352  consistent gets
0  physical reads
0  redo size
1564  bytes sent via SQL*Net to client
381  bytes received via SQL*Net from client
2  SQL*Net roundtrips to/from client
50  sorts (memory)
0  sorts (disk)
5  rows processed
</pre>
<p>Como se puede observar en la sección de statistics vemos que los recursive calls y consisten gets son menores cuando se calculan las estadísticas.</p>
<ul>
<li>Cada cuando se deben calcular estadísticas</li>
</ul>
<p>Esta es una pregunta difícil de contestar ya que esto depende de la actividad(delete,insert,update) que tiene la base de datos en un determinado tiempo, por ejemplo si se borran/actualizan/insertan muchos datos probablemente es bueno calcular las estadísticas cada semana, de nuevo esto depende de la carga que se tenga en un tiempo determinado y la mejora manera es hacer pruebas y verificar los resultados.</p>
<ul>
<li>Conclusiones</li>
</ul>
<p>Esta fue una &#8220;embarrada rapida&#8221; sobre lo que son las estadísticas y como se calculan con analyze table. Como se pudo observar en los ejemplos si se calculan estadísticas ayuda al desempeño de los queries. En mi experiencia he visto que el no calcular estadísticas puede causar grandes problemas en el desempeño de la base de datos así que como regla general se deben de calcular. A partir de la versión 10g de Oracle se incluye un JOB que calcula las estadísticas de manera automática y a partir de la versión 9i se recomienda utilizar el paquete DBMS_STATS en lugar de ANALYZE TABLE (aunque aquí lo vimos como ejemplo ilustrativo).</p>
<p>En el siguiente capitulo voy a ver como se calculan con el paquete DBMS_STATS.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/36/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/36/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=36&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2007/01/11/estadisticas-estadisticas-y-mas-estadisticas-parte-1/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Generación Automatica de Estadisticas</title>
		<link>http://delfinonunez.wordpress.com/2006/12/12/generacion-automatica-de-estadisticas/</link>
		<comments>http://delfinonunez.wordpress.com/2006/12/12/generacion-automatica-de-estadisticas/#comments</comments>
		<pubDate>Tue, 12 Dec 2006 20:06:37 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/12/12/generacion-automatica-de-estadisticas/</guid>
		<description><![CDATA[Existen dos maneras maneras de generar estadísticas en Oracle: ANALYZE TABLE y DBMS_STATS. El siguiente script permite calcular estadísticas en las tablas nuevas y en las que no las tengan actualizadas, además de calcular histogramas en las tablas que nosotros le proporcionemos. Primero hay que saber a que usuario le vamos a calcular estadísticas. vowner [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=34&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Existen dos maneras maneras de generar estadísticas en Oracle: ANALYZE TABLE y DBMS_STATS.<br />
El siguiente script permite calcular estadísticas en las tablas nuevas y en las que no las tengan actualizadas, además de calcular histogramas en las tablas que nosotros le proporcionemos.</p>
<p>Primero hay que saber a que usuario le vamos a calcular estadísticas.<br />
<font color="#3366ff">vowner           VARCHAR2 (100) := &#8216;APPLOWNER</font>&#8216;;</p>
<p>Para poder calcularle a las tablas que tienen las estadísticas des actualizadas primero las tablas se deben monitorear para que Oracle pueda identificar cuales tablas han tenido cambios significativos y por lo tanto sea necesario re calcular estadísticas. Para monitorear las tablas se utiliza el comando ALTER TABLE tblname MONITORING.<br />
Se utiliza un cursor el cual genera los comandos para alterar las tablas que no son monitoreadas, regularmente las tablas nuevas.<br />
Note que aqui se utiliza la variable anteriormente declarada.</p>
<pre><font color="#3366ff">CURSOR nomonitoringtables
IS
SELECT 'ALTER TABLE ' || vowner || '.' || table_name || ' MONITORING ' AS command
FROM dba_tables
WHERE MONITORING = 'NO' AND TEMPORARY = 'N' AND owner = <font color="#ff0000">vowner</font>;</font></pre>
<p>Como también deseamos calcular histogramas a ciertas tablas entonces declaramos una colección la cual contiene la lista de tablas a las cuales se les calcularan histogramas. también se tiene que saber de que tamaño va a ser el histograma, para esto utilizamos una variable.<br />
En caso que no se desee calcular histogramas a ninguna de las tablas entonces dejar la inicialización de la colección vacía. Algo asi: 
<pre><font color="#3366ff">histtbl_t (</font><font color="#3366ff">);</font>
<font color="#3366ff">TYPE histtbl_t IS TABLE OF VARCHAR2 (500);</font>

<font color="#3366ff">   --calculate histograms to the next tables
vhisttables      histtbl_t      := histtbl_t ('tbl1',</font><font color="#3366ff">'tbl4',</font><font color="#3366ff">'tbl3'</font><font color="#3366ff">);
vhistogramsize   NUMBER         := 200;</font></pre>
<p>Como primer paso en la ejecución calculamos las estadísticas a las tablas que no tienen y a las que no están actualizadas.</p>
<pre><font color="#3366ff">--CALCULATE STALE STATISTICS
DBMS_STATS.gather_schema_stats (ownname =&gt; vowner,
options =&gt; 'GATHER AUTO',
estimate_percent =&gt; DBMS_STATS.auto_sample_size,
method_opt =&gt; 'for all columns size auto',
DEGREE =&gt; 2,
gather_temp =&gt; FALSE,
block_sample =&gt; TRUE,
CASCADE =&gt; TRUE,
no_invalidate =&gt; FALSE
);</font></pre>
<p>Después si hay tablas a las cuales se desea calcular histogramas entonces se calcula a ese grupo de tablas.</p>
<pre><font color="#3366ff">--calculate histograms
IF vhisttables.COUNT () &lt;&gt; 0
THEN
FOR indx IN vhisttables.FIRST .. vhisttables.LAST
LOOP
DBMS_STATS.gather_table_stats (ownname =&gt; vowner,
tabname =&gt; vhisttables (indx),
estimate_percent =&gt; DBMS_STATS.auto_sample_size,
block_sample =&gt; TRUE,
method_opt =&gt; 'FOR ALL INDEXED COLUMNS SIZE '||</font><font color="#3366ff"><font color="#000000"><font color="#3366ff">vhistogramsize </font>  </font></font><font color="#3366ff">,
DEGREE =&gt; 2,
CASCADE =&gt; TRUE,
no_invalidate =&gt; FALSE
);
END LOOP;
END IF;</font></pre>
<p>Por ultimo, utilizando el cursor para alterar las tablas, se alteran las tablas nuevas que no han sido monitoreadas para que a la siguiente ejecución se calculen las estadísticas.</p>
<pre><font color="#3366ff">--ALTER NEW TABLES TO MONITORING
FOR vtables IN nomonitoringtables
LOOP
EXECUTE IMMEDIATE vtables.command;
END LOOP;</font>

<font color="#3366ff"><font color="#000000">
Script completo:
<font color="#3366ff">/*
Calculate Weekly Statistics for APPLOWNER
*/</font></font></font>

<font color="#3366ff"><font color="#000000"><font color="#3366ff">DECLARE
vowner           VARCHAR2 (100) := 'APPLOWNER';</font></font></font>

<font color="#3366ff"><font color="#000000"><font color="#3366ff">   CURSOR nomonitoringtables
IS
SELECT 'ALTER TABLE ' || vowner || '.' || table_name || ' MONITORING ' AS command
FROM dba_tables
WHERE MONITORING = 'NO' AND TEMPORARY = 'N' AND owner = vowner;</font></font></font>

<font color="#3366ff"><font color="#000000"><font color="#3366ff">   TYPE histtbl_t IS TABLE OF VARCHAR2 (500);</font></font></font>

<font color="#3366ff"><font color="#000000"><font color="#3366ff">   --calculate histograms to the next tables
vhisttables      histtbl_t      := histtbl_t ('SALDOS_IMP');
vhistogramsize   NUMBER         := 200;
BEGIN
--CALCULATE STALE STATISTICS
DBMS_STATS.gather_schema_stats (ownname =&gt; vowner,
options =&gt; 'GATHER AUTO',
estimate_percent =&gt; DBMS_STATS.auto_sample_size,
method_opt =&gt; 'for all columns size auto',
DEGREE =&gt; 2,
gather_temp =&gt; FALSE,
block_sample =&gt; TRUE,
CASCADE =&gt; TRUE,
no_invalidate =&gt; FALSE
);</font></font></font>

<font color="#3366ff"><font color="#000000"><font color="#3366ff">   --calculate histograms
IF vhisttables.COUNT () &lt;&gt; 0
THEN
FOR indx IN vhisttables.FIRST .. vhisttables.LAST
LOOP
DBMS_STATS.gather_table_stats (ownname =&gt; vowner,
tabname =&gt; vhisttables (indx),
estimate_percent =&gt; DBMS_STATS.auto_sample_size,
block_sample =&gt; TRUE,
method_opt =&gt; 'FOR ALL INDEXED COLUMNS SIZE '||</font></font></font><font color="#3366ff"><font color="#000000">vhistogramsize</font></font><font color="#3366ff"><font color="#000000"><font color="#3366ff">,
DEGREE =&gt; 2,
CASCADE =&gt; TRUE,
no_invalidate =&gt; FALSE
);
END LOOP;
END IF;</font></font></font>

<font color="#3366ff"><font color="#000000"><font color="#3366ff">   --ALTER NEW TABLES TO MONITORING
FOR vtables IN nomonitoringtables
LOOP
EXECUTE IMMEDIATE vtables.command;
END LOOP;
END;</font>
</font></font></pre>
<p>Si se desea que este <em>script </em>se ejecute de manera automática entonces hay que calendarizarlo en un <em>job </em>como se muestra a continuación.</p>
<pre><font color="#3366ff">DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job       =&gt; X
,what      =&gt; '/*
Calculate Weekly Statistics for APPLOWNER
*/</font>

<font color="#3366ff">DECLARE
vowner           VARCHAR2 (100) := ''APPLOWNER'';</font>

<font color="#3366ff">   CURSOR nomonitoringtables
IS
SELECT ''ALTER TABLE '' || vowner || ''.'' || table_name || '' MONITORING '' AS command
FROM dba_tables
WHERE MONITORING = ''NO'' AND TEMPORARY = ''N'' AND owner = vowner;</font>

<font color="#3366ff">   TYPE histtbl_t IS TABLE OF VARCHAR2 (500);</font>

<font color="#3366ff">   --calculate histograms to the next tables
vhisttables      histtbl_t      := histtbl_t (''tbl1'',''tbl2'',''tbl3'');
vhistogramsize   NUMBER         := 200;
BEGIN
--CALCULATE STALE STATISTICS
DBMS_STATS.gather_schema_stats (ownname =&gt; vowner,
options =&gt; ''GATHER AUTO'',
estimate_percent =&gt; DBMS_STATS.auto_sample_size,
method_opt =&gt; ''for all columns size auto'',
DEGREE =&gt; 2,
gather_temp =&gt; FALSE,
block_sample =&gt; TRUE,
CASCADE =&gt; TRUE,
no_invalidate =&gt; FALSE
);</font>

<font color="#3366ff">   --calculate histograms
IF vhisttables.COUNT () &lt;&gt; 0
THEN
FOR indx IN vhisttables.FIRST .. vhisttables.LAST
LOOP
DBMS_STATS.gather_table_stats (ownname =&gt; vowner,
tabname =&gt; vhisttables (indx),
estimate_percent =&gt; DBMS_STATS.auto_sample_size,
block_sample =&gt; TRUE,
method_opt =&gt; ''FOR ALL INDEXED COLUMNS SIZE ''||vhistogramsize,
DEGREE =&gt; 2,
CASCADE =&gt; TRUE,
no_invalidate =&gt; FALSE
);
END LOOP;
END IF;</font>

<font color="#3366ff">   --ALTER NEW TABLES TO MONITORING
FOR vtables IN nomonitoringtables
LOOP
EXECUTE IMMEDIATE vtables.command;
END LOOP;
END;'
,next_date =&gt; to_date('17/12/2006 00:00:00','dd/mm/yyyy hh24:mi:ss')
,interval  =&gt; 'TRUNC(SYSDATE+7)'
,no_parse  =&gt; TRUE
);
SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
END;
/</font>

<font color="#3366ff">commit;</font></pre>
<p class="poweredbyperformancing">powered by <a href="http://performancing.com/firefox">performancing firefox</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/34/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/34/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=34&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/12/12/generacion-automatica-de-estadisticas/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Writing a Word Search puzzle solver in SQL</title>
		<link>http://delfinonunez.wordpress.com/2006/12/06/writing-a-word-search-puzzle-solver-in-sql/</link>
		<comments>http://delfinonunez.wordpress.com/2006/12/06/writing-a-word-search-puzzle-solver-in-sql/#comments</comments>
		<pubDate>Wed, 06 Dec 2006 21:48:31 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/12/06/writing-a-word-search-puzzle-solver-in-sql/</guid>
		<description><![CDATA[http://technology.amis.nl/blog/?p=1422 powered by performancing firefox<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=33&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>http://technology.amis.nl/blog/?p=1422</p>
<p>
<p class="poweredbyperformancing">powered by <a href="http://performancing.com/firefox">performancing firefox</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/33/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/33/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=33&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/12/06/writing-a-word-search-puzzle-solver-in-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>http://www.thesimpledollar.com/2006/12/01/30-essential-pieces-of-free-and-open-software-for-windows/</title>
		<link>http://delfinonunez.wordpress.com/2006/12/05/httpwwwthesimpledollarcom2006120130-essential-pieces-of-free-and-open-software-for-windows/</link>
		<comments>http://delfinonunez.wordpress.com/2006/12/05/httpwwwthesimpledollarcom2006120130-essential-pieces-of-free-and-open-software-for-windows/#comments</comments>
		<pubDate>Tue, 05 Dec 2006 19:12:13 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/12/05/httpwwwthesimpledollarcom2006120130-essential-pieces-of-free-and-open-software-for-windows/</guid>
		<description><![CDATA[http://www.thesimpledollar.com/2006/12/01/30-essential-pieces-of-free-and-open-software-for-windows/ powered by performancing firefox<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=32&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>http://www.thesimpledollar.com/2006/12/01/30-essential-pieces-of-free-and-open-software-for-windows/</p>
<p>
<p class="poweredbyperformancing">powered by <a href="http://performancing.com/firefox">performancing firefox</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/32/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/32/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=32&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/12/05/httpwwwthesimpledollarcom2006120130-essential-pieces-of-free-and-open-software-for-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Como seleccionar datos &#8220;dummy&#8221; sin tablas.</title>
		<link>http://delfinonunez.wordpress.com/2006/11/28/como-seleccionar-datos-dummy-sin-tablas/</link>
		<comments>http://delfinonunez.wordpress.com/2006/11/28/como-seleccionar-datos-dummy-sin-tablas/#comments</comments>
		<pubDate>Tue, 28 Nov 2006 16:55:46 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/11/28/como-seleccionar-datos-dummy-sin-tablas/</guid>
		<description><![CDATA[La función TABLE sirve para convertir/forzar los resultados de una colección para que puedan ser seleccionados&#160; como si fueran una tabla común&#160; y corriente. Por ejemplo, si tenemos datos en una colección de la siguiente manera y queremos hacer un SELECT y que aparezcan los datos 1 a 1 por renglón, entonces hacemos lo siguiente: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=31&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>La función TABLE sirve para convertir/forzar los resultados de una colección para que puedan ser seleccionados&nbsp; como si fueran una tabla común&nbsp; y corriente. </p>
<p>Por ejemplo, si tenemos datos en una colección de la siguiente manera y queremos hacer un SELECT y que aparezcan los datos 1 a 1 por renglón, entonces hacemos lo siguiente:</p>
<p><font color="#3333ff">SELECT * FROM TABLE( sys.dbms_debug_vc2coll (1,2,3,4,5) ) ;</p>
<p><font color="#000000"><br />Aquí podemos ver la función <font color="#3333ff">TABLE</font> la cual toma los valores de una colección en este caso la colección es del tipo </font></font><font color="#3333ff">dbms_debug_vc2coll, <font color="#000000">el resultado es el siguiente:</p>
<p><font color="#3333ff">COLUMN_VALUE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>5 rows selected.</font></p>
<p>Y lo mismo funciona para strings:</p>
<p><font color="#3333ff">SELECT * FROM TABLE( sys.dbms_debug_vc2coll (&#8216;uno&#8217;,'dos&#8217;,'tres&#8217;,'cuatro&#8217;) ) ;<br />COLUMN_VALUE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />uno&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />dos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />tres&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />cuatro&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>4 rows selected.</font></p>
<p></font></font></p>
<p class="poweredbyperformancing">powered by <a href="http://performancing.com/firefox">performancing firefox</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/31/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/31/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=31&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/11/28/como-seleccionar-datos-dummy-sin-tablas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Mis links en del.icio.us</title>
		<link>http://delfinonunez.wordpress.com/2006/11/10/mis-links-en-delicious/</link>
		<comments>http://delfinonunez.wordpress.com/2006/11/10/mis-links-en-delicious/#comments</comments>
		<pubDate>Fri, 10 Nov 2006 21:59:24 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/11/10/mis-links-en-delicious/</guid>
		<description><![CDATA[http://del.icio.us/delfino.nunez powered by performancing firefox<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=30&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://del.icio.us/delfino.nunez">http://del.icio.us/delfino.nunez</a></p>
<p>
<p class="poweredbyperformancing">powered by <a href="http://performancing.com/firefox">performancing firefox</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/30/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/30/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=30&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/11/10/mis-links-en-delicious/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Links</title>
		<link>http://delfinonunez.wordpress.com/2006/11/09/links/</link>
		<comments>http://delfinonunez.wordpress.com/2006/11/09/links/#comments</comments>
		<pubDate>Thu, 09 Nov 2006 18:10:18 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/11/09/links/</guid>
		<description><![CDATA[Pagina de TOAD y del Knowledge Expert(PL/SQL y Administration)www.quest.com Foros de Oraclehttp://forums.oracle.com/ http://asktom.oracle.com/http://tkyte.blogspot.com Technet (Necesitas cuenta, pero la puedes sacar gratis), te recomiendo la seccion de articulos y de tutorialeshttp://www.oracle.com/technology/index.html METALINK (sitio de soporte de Oracle, pregunta en tu compañia si tienen la licencia y el support ID y quien te puede dar de alta)https://metalink.oracle.com/ [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=29&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Pagina de TOAD y del Knowledge Expert(PL/SQL y Administration)<br />www.quest.com</p>
<p>Foros de Oracle<br />http://forums.oracle.com/</p>
<p>http://asktom.oracle.com/<br />http://tkyte.blogspot.com</p>
<p>Technet (Necesitas cuenta, pero la puedes sacar gratis), te recomiendo la seccion de articulos y de tutoriales<br />http://www.oracle.com/technology/index.html</p>
<p>METALINK (sitio de soporte de Oracle, pregunta en tu compañia si tienen la licencia y el support ID y quien te puede dar de alta)<br />https://metalink.oracle.com/</p>
<p>http://www.oracleplsqlprogramming.com/<br />http://www.stevenfeuerstein.com/</p>
<p>http://www.toadworld.com/</p>
<p>http://www.petefinnigan.com/</p>
<p>http://oraqa.com/</p>
<p>http://www.oracle-base.com/</p>
<p>http://www.dbazine.com/oracle</p>
<p>http://www.oraclealchemist.com/index.php</p>
<p>Tips, foros,etc de Oracle, PL/SQL, SQL svr&#8230;<br />http://www.revealnet.com/</p>
<p>Tantito humor de inges…hay muchos que hacen referencia a situaciones EDS :)<br />http://www.dilbert.com/comics/dilbert/archive/</p>
<p>http://www.chami.com/html-kit/
<p class="poweredbyperformancing">powered by <a href="http://performancing.com/firefox">performancing firefox</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/29/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/29/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=29&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/11/09/links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Mis Extensiones de Firefox</title>
		<link>http://delfinonunez.wordpress.com/2006/11/07/mis-extensiones-de-firefox-4/</link>
		<comments>http://delfinonunez.wordpress.com/2006/11/07/mis-extensiones-de-firefox-4/#comments</comments>
		<pubDate>Tue, 07 Nov 2006 17:31:51 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/11/07/mis-extensiones-de-firefox-4/</guid>
		<description><![CDATA[Estas son las extensiones que utilizo en firefox&#8230; Lector de RSShttp://www.wizzcomputers.com/WizzRss.php Oracle Search extensionshttp://awads.net/wp/oracle-firefox-extensions/http://awads.net/wp/oracle-firefox-plugins/http://awads.net/wp/2006/09/07/oracle-bookmarklets-the-easiest-way-to-search-documentation-and-more/ Oracle BookmarkletsOraDocs Global10gR210gR19iR29iR18iR3Oracle Enterprise SearchMetalinkAskTomOTN ForumsOracle-I Customize Googlehttp://www.customizegoogle.com/ Switch Proxy Tool, Copy Plain Text, Lorem Ipsum Generatorhttp://mozmonkey.com/ FasterFoxhttp://fasterfox.mozdev.org/ IE tabhttp://ietab.mozdev.org/ Performancinghttp://performancing.com/ Tiny Menu Google Synchttp://www.google.com/tools/firefox/browsersync/ Gmail Spacehttp://www.rjonna.com/ext/gspace.phpDiccionario RAEjavascript:Qr=document.getSelection();if(!Qr){void(Qr=prompt(&#8216;Diccionario%20de%20la%20Real%20Academia%20Espa%C3%83%C2%B1ola.%20Vig%C3%83%C2%A9sima%20segunda%20edici%C3%83%C2%B3n.%20Teclee%20la%20palabra%20que%20desea%20consultar:&#8217;,&#8221;))}if(Qr)location.href=&#8217;http://buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_HTML=2&#38;TIPO_BUS=3&#38;LEMA=&#8217;+escape(Qr)+&#8217; &#8216; Babel Fishhttp://babelfish.altavista.com/ Pageaddict.com Foxmarks Bookmark Synchronizer powered by performancing firefox<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=28&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Estas son las extensiones que utilizo en firefox&#8230;</p>
<p>Lector de RSS<br /><a href="http://www.wizzcomputers.com/WizzRss.php">http://www.wizzcomputers.com/WizzRss.php</a></p>
<p>Oracle Search extensions<br /><a href="http://awads.net/wp/oracle-firefox-extensions/">http://awads.net/wp/oracle-firefox-extensions/</a><br /><a href="http://awads.net/wp/oracle-firefox-plugins/">http://awads.net/wp/oracle-firefox-plugins/</a><br /><a href="http://awads.net/wp/oracle-bookmarklets/">http://awads.net/wp/2006/09/07/oracle-bookmarklets-the-easiest-way-to-search-documentation-and-more/</a></p>
<p>Oracle Bookmarklets<br /><a href="%28function%28%29%7Bvar">OraDocs Global</a><br /><a href="%28function%28%29%7Bvar">10gR2</a><br /><a href="%28function%28%29%7Bvar">10gR1</a><br /><a href="%28function%28%29%7Bvar">9iR2</a><br /><a href="%28function%28%29%7Bvar">9iR1</a><br /><a href="%28function%28%29%7Bvar">8iR3</a><br /><a href="%28function%28%29%7Bvar">Oracle Enterprise Search</a><br /><a href="%28function%28%29%7Bvar">Metalink</a><br /><a href="%28function%28%29%7Bvar">AskTom</a><br /><a href="%28function%28%29%7Bvar">OTN Forums</a><br /><a href="%28function%28%29%7Bvar">Oracle-I</a></p>
<p>Customize Google<br /><a href="http://www.customizegoogle.com/">http://www.customizegoogle.com/</a></p>
<p>Switch Proxy Tool, Copy Plain Text, Lorem Ipsum Generator<br /><a href="http://mozmonkey.com/">http://mozmonkey.com/</a></p>
<p>FasterFox<br /><a href="http://fasterfox.mozdev.org/">http://fasterfox.mozdev.org/</a></p>
<p>IE tab<br /><a href="http://ietab.mozdev.org/">http://ietab.mozdev.org/</a></p>
<p>Performancing<br /><a href="http://performancing.com/">http://performancing.com/</a></p>
<p><a href="https://addons.mozilla.org/firefox/1455/">Tiny Menu</a></p>
<p>Google Sync<br /><a href="http://www.google.com/tools/firefox/browsersync/">http://www.google.com/tools/firefox/browsersync/</a></p>
<p>Gmail Space<br /><a href="http://www.rjonna.com/ext/gspace.php">http://www.rjonna.com/ext/gspace.php</a><br /><a href="Qr=document.getSelection();if(!Qr){void(Qr=prompt('Diccionario%20de%20la%20Real%20Academia%20Espa%C3%83%C2%B1ola.%20Vig%C3%83%C2%A9sima%20segunda%20edici%C3%83%C2%B3n.%20Teclee%20la%20palabra%20que%20desea%20consultar:',''))}if(Qr)location.href='http://buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_HTML=2&amp;TIPO_BUS=3&amp;LEMA='+escape(Qr)+' '"><br />Diccionario RAE</a><br />javascript:Qr=document.getSelection();if(!Qr){void(Qr=prompt(&#8216;Diccionario%20de%20la%20Real%20Academia%20Espa%C3%83%C2%B1ola.%20Vig%C3%83%C2%A9sima%20segunda%20edici%C3%83%C2%B3n.%20Teclee%20la%20palabra%20que%20desea%20consultar:&#8217;,&#8221;))}if(Qr)location.href=&#8217;http://buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_HTML=2&amp;TIPO_BUS=3&amp;LEMA=&#8217;+escape(Qr)+&#8217; &#8216;</p>
<p><a href="http://babelfish.altavista.com/">Babel Fish</a><br />http://babelfish.altavista.com/</p>
<p><a href="http://www.pageaddict.com/download.html">Pageaddict.com</a>
<p class="poweredbyperformancing"><a href="https://addons.mozilla.org/firefox/2410/">Foxmarks Bookmark Synchronizer</a><br /><a href="http://performancing.com/firefox"></a></p>
<p class="poweredbyperformancing">powered by <a href="http://performancing.com/firefox">performancing firefox</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=28&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/11/07/mis-extensiones-de-firefox-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Mis Extensiones de Firefox</title>
		<link>http://delfinonunez.wordpress.com/2006/11/03/mis-extensiones-de-firefox-3/</link>
		<comments>http://delfinonunez.wordpress.com/2006/11/03/mis-extensiones-de-firefox-3/#comments</comments>
		<pubDate>Fri, 03 Nov 2006 00:26:14 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/11/03/mis-extensiones-de-firefox-3/</guid>
		<description><![CDATA[Estas son las extensiones que utilizo en firefox&#8230; Lector de RSShttp://www.wizzcomputers.com/WizzRss.php Oracle Search extensionshttp://awads.net/wp/oracle-firefox-extensions/http://awads.net/wp/oracle-firefox-plugins/http://awads.net/wp/2006/09/07/oracle-bookmarklets-the-easiest-way-to-search-documentation-and-more/ Oracle BookmarkletsOraDocs Global10gR210gR19iR29iR18iR3Oracle Enterprise SearchMetalinkAskTomOTN ForumsOracle-I Customize Googlehttp://www.customizegoogle.com/ Switch Proxy Tool, Copy Plain Text, Lorem Ipsum Generatorhttp://mozmonkey.com/ FasterFoxhttp://fasterfox.mozdev.org/ IE tabhttp://ietab.mozdev.org/ Performancinghttp://performancing.com/ Tiny Menu Google Synchttp://www.google.com/tools/firefox/browsersync/ Gmail Spacehttp://www.rjonna.com/ext/gspace.phpDiccionario RAE Babel Fish Wikipedia powered by performancing firefox<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=27&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Estas son las extensiones que utilizo en firefox&#8230;</p>
<p>Lector de RSS<br /><a href="http://www.wizzcomputers.com/WizzRss.php">http://www.wizzcomputers.com/WizzRss.php</a></p>
<p>Oracle Search extensions<br /><a href="http://awads.net/wp/oracle-firefox-extensions/">http://awads.net/wp/oracle-firefox-extensions/</a><br /><a href="http://awads.net/wp/oracle-firefox-plugins/">http://awads.net/wp/oracle-firefox-plugins/</a><br /><a href="http://awads.net/wp/oracle-bookmarklets/">http://awads.net/wp/2006/09/07/oracle-bookmarklets-the-easiest-way-to-search-documentation-and-more/</a></p>
<p>Oracle Bookmarklets<br /><a href="%28function%28%29%7Bvar">OraDocs Global</a><br /><a href="%28function%28%29%7Bvar">10gR2</a><br /><a href="%28function%28%29%7Bvar">10gR1</a><br /><a href="%28function%28%29%7Bvar">9iR2</a><br /><a href="%28function%28%29%7Bvar">9iR1</a><br /><a href="%28function%28%29%7Bvar">8iR3</a><br /><a href="%28function%28%29%7Bvar">Oracle Enterprise Search</a><br /><a href="%28function%28%29%7Bvar">Metalink</a><br /><a href="%28function%28%29%7Bvar">AskTom</a><br /><a href="%28function%28%29%7Bvar">OTN Forums</a><br /><a href="%28function%28%29%7Bvar">Oracle-I</a></p>
<p>Customize Google<br /><a href="http://www.customizegoogle.com/">http://www.customizegoogle.com/</a></p>
<p>Switch Proxy Tool, Copy Plain Text, Lorem Ipsum Generator<br /><a href="http://mozmonkey.com/">http://mozmonkey.com/</a></p>
<p>FasterFox<br /><a href="http://fasterfox.mozdev.org/">http://fasterfox.mozdev.org/</a></p>
<p>IE tab<br /><a href="http://ietab.mozdev.org/">http://ietab.mozdev.org/</a></p>
<p>Performancing<br /><a href="http://performancing.com/">http://performancing.com/</a></p>
<p><a href="https://addons.mozilla.org/firefox/1455/">Tiny Menu</a></p>
<p>Google Sync<br /><a href="http://www.google.com/tools/firefox/browsersync/">http://www.google.com/tools/firefox/browsersync/</a></p>
<p>Gmail Space<br /><a href="http://www.rjonna.com/ext/gspace.php">http://www.rjonna.com/ext/gspace.php</a><br /><a href="Qr=document.getSelection();if(!Qr){void(Qr=prompt('Diccionario%20de%20la%20Real%20Academia%20Espa%C3%83%C2%B1ola.%20Vig%C3%83%C2%A9sima%20segunda%20edici%C3%83%C2%B3n.%20Teclee%20la%20palabra%20que%20desea%20consultar:',''))}if(Qr)location.href='http://buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_HTML=2&amp;TIPO_BUS=3&amp;LEMA='+escape(Qr)+' '"><br />Diccionario RAE</a></p>
<p><a href="http://babelfish.altavista.com/">Babel Fish</a></p>
<p><a href="%28function%28%29%7Bvar">Wikipedia</a></p>
<p class="poweredbyperformancing">powered by <a href="http://performancing.com/firefox">performancing firefox</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/27/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/27/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=27&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/11/03/mis-extensiones-de-firefox-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>El link del dia de hoy</title>
		<link>http://delfinonunez.wordpress.com/2006/11/03/el-link-del-dia-de-hoy-3/</link>
		<comments>http://delfinonunez.wordpress.com/2006/11/03/el-link-del-dia-de-hoy-3/#comments</comments>
		<pubDate>Fri, 03 Nov 2006 00:09:01 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/11/03/el-link-del-dia-de-hoy-3/</guid>
		<description><![CDATA[Por si algun dia necesitan recuperar password de Oracle estas herramientas al parecer son buenas. Ya probamos orabf y si obtiene el password cuando es pequeño (4 o 5 caracteres) de manera rapida, ahorita lo estamos probando con un password mas complejo y ya lleva como 20 hrs y nada….Pero estan interesantes. http://www.red-database-security.com/whitepaper/oracle_password_benchmark.htmlhttp://www.red-database-security.com/whitepaper/oracle_password_cracker.html Tambien esta [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=26&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Por si algun dia necesitan recuperar password de Oracle estas herramientas al parecer son buenas. Ya probamos orabf y si obtiene el password cuando es pequeño (4 o 5 caracteres) de manera rapida, ahorita lo estamos probando con un password mas complejo y ya lleva como 20 hrs y nada….<br />Pero estan interesantes.</p>
<p><a href="http://www.red-database-security.com/whitepaper/oracle_password_benchmark.html">http://www.red-database-security.com/whitepaper/oracle_password_benchmark.html</a><br /><a href="http://www.red-database-security.com/whitepaper/oracle_password_cracker.html">http://www.red-database-security.com/whitepaper/oracle_password_cracker.html</a></p>
<p>Tambien esta opcion:<br /><a href="http://www.sans.org/info/911/">http://www.sans.org/info/911/</a></p>
<p>
<p class="poweredbyperformancing">powered by <a href="http://performancing.com/firefox">performancing firefox</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/26/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/26/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=26&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/11/03/el-link-del-dia-de-hoy-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Mis Extensiones de Firefox</title>
		<link>http://delfinonunez.wordpress.com/2006/11/02/mis-extensiones-de-firefox-2/</link>
		<comments>http://delfinonunez.wordpress.com/2006/11/02/mis-extensiones-de-firefox-2/#comments</comments>
		<pubDate>Thu, 02 Nov 2006 22:04:39 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/11/02/mis-extensiones-de-firefox-2/</guid>
		<description><![CDATA[Estas son las extensiones que utilizo en firefox&#8230; Lector de RSS http://www.wizzcomputers.com/WizzRss.php Oracle Search extensions http://awads.net/wp/oracle-firefox-extensions/ http://awads.net/wp/oracle-firefox-plugins/ http://awads.net/wp/2006/09/07/oracle-bookmarklets-the-easiest-way-to-search-documentation-and-more/ Oracle Bookmarklets OraDocs Global 10gR2 10gR1 9iR2 9iR1 8iR3 Oracle Enterprise Search Metalink AskTom OTN Forums Oracle-I Customize Google http://www.customizegoogle.com/ Switch Proxy Tool, Copy Plain Text, Lorem Ipsum Generator http://mozmonkey.com/ FasterFox http://fasterfox.mozdev.org/ IE tab http://ietab.mozdev.org/ Performancing http://performancing.com/ [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=8&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Estas son las extensiones que utilizo en firefox&#8230;</p>
<p>Lector de RSS<br />
<a href="http://www.wizzcomputers.com/WizzRss.php">http://www.wizzcomputers.com/WizzRss.php</a></p>
<p>Oracle Search extensions<br />
<a href="http://awads.net/wp/oracle-firefox-extensions/">http://awads.net/wp/oracle-firefox-extensions/</a><br />
<a href="http://awads.net/wp/oracle-firefox-plugins/">http://awads.net/wp/oracle-firefox-plugins/</a><br />
<a href="http://awads.net/wp/oracle-bookmarklets/">http://awads.net/wp/2006/09/07/oracle-bookmarklets-the-easiest-way-to-search-documentation-and-more/</a></p>
<p>Oracle Bookmarklets<br />
<a href="%28function%28%29%7Bvar">OraDocs Global</a><br />
<a href="%28function%28%29%7Bvar">10gR2</a><br />
<a href="%28function%28%29%7Bvar">10gR1</a><br />
<a href="%28function%28%29%7Bvar">9iR2</a><br />
<a href="%28function%28%29%7Bvar">9iR1</a><br />
<a href="%28function%28%29%7Bvar">8iR3</a><br />
<a href="%28function%28%29%7Bvar">Oracle Enterprise Search</a><br />
<a href="%28function%28%29%7Bvar">Metalink</a><br />
<a href="%28function%28%29%7Bvar">AskTom</a><br />
<a href="%28function%28%29%7Bvar">OTN Forums</a><br />
<a href="%28function%28%29%7Bvar">Oracle-I</a></p>
<p>Customize Google<br />
<a href="http://www.customizegoogle.com/">http://www.customizegoogle.com/</a></p>
<p>Switch Proxy Tool, Copy Plain Text, Lorem Ipsum Generator<br />
<a href="http://mozmonkey.com/">http://mozmonkey.com/</a></p>
<p>FasterFox<br />
<a href="http://fasterfox.mozdev.org/">http://fasterfox.mozdev.org/</a></p>
<p>IE tab<br />
<a href="http://ietab.mozdev.org/">http://ietab.mozdev.org/</a></p>
<p>Performancing<br />
<a href="http://performancing.com/">http://performancing.com/</a></p>
<p>Tiny Menu</p>
<p>Google Sync<br />
<a href="http://www.google.com/tools/firefox/browsersync/">http://www.google.com/tools/firefox/browsersync/</a></p>
<p>Gmail Space<br />
<a href="http://www.rjonna.com/ext/gspace.php">http://www.rjonna.com/ext/gspace.php</a><br />
<a href="Qr=document.getSelection%28%29;if%28%21Qr%29%7Bvoid%28Qr=prompt%28"><br />
Diccionario RAE</a></p>
<p><a href="http://babelfish.altavista.com/">Babel Fish</a></p>
<p><a href="%28function%28%29%7Bvar">Wikipedia</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=8&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/11/02/mis-extensiones-de-firefox-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>El link del dia de hoy</title>
		<link>http://delfinonunez.wordpress.com/2006/11/02/el-link-del-dia-de-hoy-2/</link>
		<comments>http://delfinonunez.wordpress.com/2006/11/02/el-link-del-dia-de-hoy-2/#comments</comments>
		<pubDate>Thu, 02 Nov 2006 22:04:09 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/11/02/el-link-del-dia-de-hoy-2/</guid>
		<description><![CDATA[Como copiar datos de una tabla a otra, diferentes maneras explicadas y cuales pueden ser mas rapidas que otras. http://oracleandy.blogspot.com/2006/09/what-is-fastest-to-way-to-move-data.html http://oracleandy.blogspot.com/2006/09/what-is-fastest-to-way-to-move-data_11.html http://www.oracle.com/technology/deploy/security/alerts.htm Este esta muy suave, pero esta caon que lo hagan los developers&#8230;al menos aqui. :) http://oracleandy.blogspot.com/2006/09/if-only.html<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=12&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:Arial;font-size:85%;"><span class="723245416-25092006">Como copiar datos de<br />
una tabla a otra, diferentes maneras explicadas y cuales pueden ser mas rapidas<br />
que otras.</span></span><br />
<span style="font-family:Arial;font-size:85%;"><a href="http://oracleandy.blogspot.com/2006/09/what-is-fastest-to-way-to-move-data.html">http://oracleandy.blogspot.com/2006/09/what-is-fastest-to-way-to-move-data.html</a></span><br />
<span style="font-family:Arial;font-size:85%;"><a href="http://oracleandy.blogspot.com/2006/09/what-is-fastest-to-way-to-move-data_11.html">http://oracleandy.blogspot.com/2006/09/what-is-fastest-to-way-to-move-data_11.html</a></span><br />
<a href="http://www.oracle.com/technology/deploy/security/alerts.htm"> http://www.oracle.com/technology/deploy/security/alerts.htm</a></p>
<p><span class="723245416-25092006"><span style="font-family:Arial;font-size:85%;">Este esta muy suave,<br />
pero esta caon que lo hagan los developers&#8230;al menos aqui.<br />
:)</span></span><br />
<span class="723245416-25092006"><span style="font-family:Arial;font-size:85%;"><a href="http://oracleandy.blogspot.com/2006/09/if-only.html">http://oracleandy.blogspot.com/2006/09/if-only.html</a></span></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=12&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/11/02/el-link-del-dia-de-hoy-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Milenio Mediacenter</title>
		<link>http://delfinonunez.wordpress.com/2006/11/02/milenio-mediacenter/</link>
		<comments>http://delfinonunez.wordpress.com/2006/11/02/milenio-mediacenter/#comments</comments>
		<pubDate>Thu, 02 Nov 2006 22:01:28 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/11/02/milenio-mediacenter/</guid>
		<description><![CDATA[http://www.milenio.com/mediacenter/humor/2006/11/02/misera.jpg http://www.milenio.com/mediacenter/humor/2006/11/02/cerdo.jpg http://www.milenio.com/mediacenter/humor/2006/11/02/jabaz.jpg http://www.milenio.com/mediacenter/humor/2006/11/02/jis.jpg<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=25&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>http://www.milenio.com/mediacenter/humor/2006/11/02/misera.jpg</p>
<p>http://www.milenio.com/mediacenter/humor/2006/11/02/cerdo.jpg</p>
<p>http://www.milenio.com/mediacenter/humor/2006/11/02/jabaz.jpg</p>
<p>http://www.milenio.com/mediacenter/humor/2006/11/02/jis.jpg</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=25&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/11/02/milenio-mediacenter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello World</title>
		<link>http://delfinonunez.wordpress.com/2006/11/02/hello-world-2/</link>
		<comments>http://delfinonunez.wordpress.com/2006/11/02/hello-world-2/#comments</comments>
		<pubDate>Thu, 02 Nov 2006 18:35:04 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/11/02/hello-world-2/</guid>
		<description><![CDATA[Esta es la primera vez que publico en wordpress.com<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=3&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Esta es la primera vez que publico en wordpress.com</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=3&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/11/02/hello-world-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle screencasts</title>
		<link>http://delfinonunez.wordpress.com/2006/10/09/oracle-screencasts/</link>
		<comments>http://delfinonunez.wordpress.com/2006/10/09/oracle-screencasts/#comments</comments>
		<pubDate>Mon, 09 Oct 2006 20:21:12 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/10/09/oracle-screencasts/</guid>
		<description><![CDATA[Acabo de crear una pagina donde tengo pensado subir screencasts de tips de oracle. http://delfino.nunez.googlepages.com El primero es el siguiente: http://delfino.nunez.googlepages.com/dbms_application_info<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=7&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Acabo de crear una pagina donde tengo pensado subir screencasts de tips de oracle.<br />
<a href="http://delfino.nunez.googlepages.com/">http://delfino.nunez.googlepages.com</a></p>
<p>El primero es el siguiente:<br />
<a href="http://delfino.nunez.googlepages.com/dbms_application_info">http://delfino.nunez.googlepages.com/dbms_application_info</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=7&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/10/09/oracle-screencasts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Limites en Oracle 10g</title>
		<link>http://delfinonunez.wordpress.com/2006/09/27/limites-en-oracle-10g/</link>
		<comments>http://delfinonunez.wordpress.com/2006/09/27/limites-en-oracle-10g/#comments</comments>
		<pubDate>Wed, 27 Sep 2006 20:25:16 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/09/27/limites-en-oracle-10g/</guid>
		<description><![CDATA[El siguiente link contiene los limites que tiene Oracle para las tablas, lineas de PL/SQL,etc. http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14237/limits003.htm<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=10&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>El siguiente link contiene los limites que tiene Oracle para las tablas, lineas de PL/SQL,etc.</p>
<p>http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14237/limits003.htm</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=10&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/09/27/limites-en-oracle-10g/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Mis Extensiones de Firefox</title>
		<link>http://delfinonunez.wordpress.com/2006/09/27/mis-extensiones-de-firefox/</link>
		<comments>http://delfinonunez.wordpress.com/2006/09/27/mis-extensiones-de-firefox/#comments</comments>
		<pubDate>Wed, 27 Sep 2006 20:22:13 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/09/27/mis-extensiones-de-firefox/</guid>
		<description><![CDATA[Estas son las extensiones que utilizo en firefox&#8230; Lector de RSS http://www.wizzcomputers.com/WizzRss.php Oracle Search extensions http://awads.net/wp/oracle-firefox-extensions/ http://awads.net/wp/oracle-firefox-plugins/ http://awads.net/wp/2006/09/07/oracle-bookmarklets-the-easiest-way-to-search-documentation-and-more/ Oracle Bookmarklets OraDocs Global 10gR2 10gR1 9iR2 9iR1 8iR3 Oracle Enterprise Search Metalink AskTom OTN Forums Oracle-I Customize Google http://www.customizegoogle.com/ Switch Proxy Tool, Copy Plain Text, Lorem Ipsum Generator http://mozmonkey.com/ FasterFox http://fasterfox.mozdev.org/ IE tab http://ietab.mozdev.org/ Performancing http://performancing.com/ [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=9&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Estas son las extensiones que utilizo en firefox&#8230;</p>
<p>Lector de RSS<br />
<a href="http://www.wizzcomputers.com/WizzRss.php">http://www.wizzcomputers.com/WizzRss.php</a></p>
<p>Oracle Search extensions<br />
<a href="http://awads.net/wp/oracle-firefox-extensions/">http://awads.net/wp/oracle-firefox-extensions/</a><br />
<a href="http://awads.net/wp/oracle-firefox-plugins/">http://awads.net/wp/oracle-firefox-plugins/</a><br />
<a href="http://awads.net/wp/oracle-bookmarklets/">http://awads.net/wp/2006/09/07/oracle-bookmarklets-the-easiest-way-to-search-documentation-and-more/</a></p>
<p>Oracle Bookmarklets<br />
<a href="%28function%28%29%7Bvar">OraDocs Global</a><br />
<a href="%28function%28%29%7Bvar">10gR2</a><br />
<a href="%28function%28%29%7Bvar">10gR1</a><br />
<a href="%28function%28%29%7Bvar">9iR2</a><br />
<a href="%28function%28%29%7Bvar">9iR1</a><br />
<a href="%28function%28%29%7Bvar">8iR3</a><br />
<a href="%28function%28%29%7Bvar">Oracle Enterprise Search</a><br />
<a href="%28function%28%29%7Bvar">Metalink</a><br />
<a href="%28function%28%29%7Bvar">AskTom</a><br />
<a href="%28function%28%29%7Bvar">OTN Forums</a><br />
<a href="%28function%28%29%7Bvar">Oracle-I</a></p>
<p>Customize Google<br />
<a href="http://www.customizegoogle.com/">http://www.customizegoogle.com/</a></p>
<p>Switch Proxy Tool, Copy Plain Text, Lorem Ipsum Generator<br />
<a href="http://mozmonkey.com/">http://mozmonkey.com/</a></p>
<p>FasterFox<br />
<a href="http://fasterfox.mozdev.org/">http://fasterfox.mozdev.org/</a></p>
<p>IE tab<br />
<a href="http://ietab.mozdev.org/">http://ietab.mozdev.org/</a></p>
<p>Performancing<br />
<a href="http://performancing.com/">http://performancing.com/</a></p>
<p>Tiny Menu</p>
<p>Google Sync<br />
<a href="http://www.google.com/tools/firefox/browsersync/">http://www.google.com/tools/firefox/browsersync/</a></p>
<p>Gmail Space<br />
<a href="http://www.rjonna.com/ext/gspace.php">http://www.rjonna.com/ext/gspace.php</a><br />
<a href="Qr=document.getSelection%28%29;if%28%21Qr%29%7Bvoid%28Qr=prompt%28"><br />
Diccionario RAE</a></p>
<p><a href="http://babelfish.altavista.com/">Babel Fish</a></p>
<p><a href="%28function%28%29%7Bvar">Wikipedia</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=9&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/09/27/mis-extensiones-de-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>El link del dia de hoy</title>
		<link>http://delfinonunez.wordpress.com/2006/09/25/el-link-del-dia-de-hoy/</link>
		<comments>http://delfinonunez.wordpress.com/2006/09/25/el-link-del-dia-de-hoy/#comments</comments>
		<pubDate>Mon, 25 Sep 2006 20:26:33 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/09/25/el-link-del-dia-de-hoy/</guid>
		<description><![CDATA[Como copiar datos de una tabla a otra, diferentes maneras explicadas y cuales pueden ser mas rapidas que otras. http://oracleandy.blogspot.com/2006/09/what-is-fastest-to-way-to-move-data.html http://oracleandy.blogspot.com/2006/09/what-is-fastest-to-way-to-move-data_11.html http://www.oracle.com/technology/deploy/security/alerts.htm Este esta muy suave, pero esta caon que lo hagan los developers&#8230;al menos aqui. :) http://oracleandy.blogspot.com/2006/09/if-only.html<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=11&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:Arial;font-size:85%;"><span class="723245416-25092006">Como copiar datos de<br />
una tabla a otra, diferentes maneras explicadas y cuales pueden ser mas rapidas<br />
que otras.</span></span><br />
<span style="font-family:Arial;font-size:85%;"><a href="http://oracleandy.blogspot.com/2006/09/what-is-fastest-to-way-to-move-data.html">http://oracleandy.blogspot.com/2006/09/what-is-fastest-to-way-to-move-data.html</a></span><br />
<span style="font-family:Arial;font-size:85%;"><a href="http://oracleandy.blogspot.com/2006/09/what-is-fastest-to-way-to-move-data_11.html">http://oracleandy.blogspot.com/2006/09/what-is-fastest-to-way-to-move-data_11.html</a></span><br />
<a href="http://www.oracle.com/technology/deploy/security/alerts.htm"> http://www.oracle.com/technology/deploy/security/alerts.htm</a></p>
<p><span class="723245416-25092006"><span style="font-family:Arial;font-size:85%;">Este esta muy suave,<br />
pero esta caon que lo hagan los developers&#8230;al menos aqui.<br />
:)</span></span><br />
<span class="723245416-25092006"><span style="font-family:Arial;font-size:85%;"><a href="http://oracleandy.blogspot.com/2006/09/if-only.html">http://oracleandy.blogspot.com/2006/09/if-only.html</a></span></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=11&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/09/25/el-link-del-dia-de-hoy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Borrar archiving</title>
		<link>http://delfinonunez.wordpress.com/2006/09/15/borrar-archiving/</link>
		<comments>http://delfinonunez.wordpress.com/2006/09/15/borrar-archiving/#comments</comments>
		<pubDate>Fri, 15 Sep 2006 20:28:58 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/09/15/borrar-archiving/</guid>
		<description><![CDATA[Regularmente cuando una base de datos esta en archiving es necesario borrar el archiving una vez que ya fue respaldado, la manera de automatizar esto es incluirlo en el crontab de UNIX. La siguiente es la linea que lo hace: 00 22 * * * find /9a/oradata/DBDIR/arch/ -name '*.arc' -mtime +1 -exec rm {} \; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=14&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Regularmente cuando una base de datos esta en archiving es necesario borrar el archiving una vez que ya fue respaldado, la manera de automatizar esto es incluirlo en el crontab de UNIX. La siguiente es la linea que lo hace:</p>
<pre>
00 22 * * * find /9a/oradata/DBDIR/arch/ -name '*.arc' -mtime +1 -exec rm {} \;</pre>
<p>Que es lo que hace esta linea de comando:</p>
<ol>
<li><code>00 22 * * *</code>.- Esto le dice al crontab de ejecutar el comando a los 0 minutos y 22 horas todos los dias ( * * *).</li>
<li><code>find /9a/oradata/DBDIR/arch/ -name '*.arc' -mtime +1</code>.- Buscar los archivos que tienen extension &#8220;arc&#8221; (o como se tiene definido en la base) y que tienen un dia de antigüedad, esto quiere decir que va a buscar los archivos del archiving que tienen mas de un dia. Si quisieramos borrar los archivos que tienen mas de 7 dias entonces cambiariamos +1 por +7.</li>
<li><code>-exec rm {} \; </code>.-Ejecutar rm(borrar) todos los archivos encontrados.</li>
</ol>
<p>Algunas veces es necesario borrar archivos a cierta hora. Una solucion es generar un archivo antes de la hora o en la hora a partir de la cual queremos borrar.<br />
Ejemplo:</p>
<pre>
00 15 * * * touch /arch/oradata/DBDIR/arch/filestamp
00 18 * * * find /arch/oradata/DBDIR/arch -name '*.arc*' ! -newer /arch/oradata/DBDIR/arch/filestamp -exec rm {} \;</pre>
<p>La primer linea lo que hace es crear un archivo &#8220;dummy&#8221;(filestamp) que indica hasta que hora puede borrar los archivos. En este caso va a borrar los archivos hasta las 15 hrs.<br />
La segunda linea busca los archivos que no son mas nuevos que el archivo &#8220;filestamp&#8221; (! -newer ).</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=14&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/09/15/borrar-archiving/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Visa Canadienne</title>
		<link>http://delfinonunez.wordpress.com/2006/09/15/visa-canadienne/</link>
		<comments>http://delfinonunez.wordpress.com/2006/09/15/visa-canadienne/#comments</comments>
		<pubDate>Fri, 15 Sep 2006 20:27:52 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/09/15/visa-canadienne/</guid>
		<description><![CDATA[Ya tenemos la visa para Canadá, ahora tenemos que planear el viaje, buscar trabajo, buscar departamento(lo mas seguro es que lo busquemos allá). Estamos contentos de cumplir ésta meta, ya nada mas falta llegar a Montreal y nuestra meta estaria terminada, ahora me estoy preparando mucho aprendiendo frances y preparandome en el trabajo. Espero poder [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=13&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ya tenemos la visa para Canadá, ahora tenemos que planear el viaje, buscar trabajo, buscar departamento(lo mas seguro es que lo busquemos allá).<br />
Estamos contentos de cumplir ésta meta, ya nada mas falta llegar a Montreal y nuestra meta estaria terminada, ahora me estoy preparando mucho aprendiendo frances y preparandome en el trabajo.<br />
Espero poder sacar una nueva certificacion.</p>
<p>a la proxima&#8230;.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=13&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/09/15/visa-canadienne/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Script para verificar que la base esta arriba</title>
		<link>http://delfinonunez.wordpress.com/2006/07/28/script-para-verificar-que-la-base-esta-arriba/</link>
		<comments>http://delfinonunez.wordpress.com/2006/07/28/script-para-verificar-que-la-base-esta-arriba/#comments</comments>
		<pubDate>Fri, 28 Jul 2006 20:29:37 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/07/28/script-para-verificar-que-la-base-esta-arriba/</guid>
		<description><![CDATA[El siguiente script permite verificar si una base de datos esta arriba, en caso que no este arriba(OPEN) entonces envia un email avisando que esta abajo. Sintaxis: chkdbup -d [oraclesid] Ejemplo: chkdbup -d DEVDB #!/bin/ksh ####################################################################### # # SCRIPT : chkdbup # # DESCRIPTION : This job will check if the database if up and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=15&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>El siguiente script permite verificar si una base de datos esta arriba, en caso que no este arriba(OPEN) entonces envia un email avisando que esta abajo.</p>
<p><font color="#000099">Sintaxis:</font><br />
<font color="#006600">chkdbup -d [oraclesid]</font></p>
<p><font color="#000099">Ejemplo:</font><br />
<font color="#006600">chkdbup -d DEVDB</font></p>
<pre>
#!/bin/ksh
#######################################################################
#
# SCRIPT       : chkdbup
#
# DESCRIPTION  : This job will check if the database if up and running.
#                If there is an error it will send an email.
#
# INPUT FILES  : $DBA_BASE/init - configuration file
#              : $ORATAB - oracle oratab file
#              : $DBA_BASE/.forward - email notification file
#
# OUTPUT FILES : NONE
#
# CALLED OBJECT: $SCRIPTS/switchdb.ksh - switches environment
#                and variables to a specific SID.
# ASSUMPTIONS  : none
#
# SETUP INSTRUCTIONS : Need to switchdb first to a default.
#
# COMMAND LINE EXECUTION: chkdbup
#
# EXAMPLE: chkdbup DEVDB
#
# RESTART INSTRUCTIONS: rerun script
# SPECIAL CONSIDERATIONS: NONE
#######################################################################
# Modification Log:
# Version Date        Name              Description
#######################################################################
# 1.0     28-Jul-2006 Delfino Nunez     Initial Creation
#######################################################################

########################################################################
# FUNCTION   : showHelp
# DESCRIPTION: Print the help for using the script
########################################################################
function showHelp {
			echo " Argument      Description"
      echo " ------------  ----------------------------------------------"
      echo " -d [sid]      Oracle sid to check."
      echo " -h            This help."
}
########################################################################
# Main Program start here
########################################################################

#variable declaration
. $DBA_BASE/init
export SID=$1
BOXNAME=`uname -n`
MAILIDS=`cat $DBA_BASE/.forward`
export dbpass=`cat $PWDFILE`
export EMAILMSG=$TMP/chkdbup.txt

DATETIME=`date '+%Y-%m-%d-%T'`

#check parameters
if [ "$1" != "" ]
then
while [ "$#" != "0" ]
do
  case $1 in
    -d)
      shift
      if [ "$1" != "" ]; then
        export ORACLE_SID=$1
        shift
      fi
    ;;
    -h)
      showHelp
      exit 0;
    ;;
    *)
      echo "Bad argument: $1"
      showHelp

      exit 1;
    ;;
  esac
done
else
	showHelp
	exit 1
fi

if [ -a $EMAILMSG ]
then
	rm $EMAILMSG
fi

. $SCRIPTS/switchdb.ksh $ORACLE_SID
sqlplus -s /nolog &gt; /dev/null 2&gt;&amp;1 &lt;
    whenever sqlerror exit failure
    connect $dbpass
    select count(*) from dual;
    exit success
EOF

if [[ $? -ne 0 ]]
then
   echo "The following database is not open, please check this problem:\n" &gt;&gt; $EMAILMSG
	 echo "Instance: $ORACLE_SID" &gt;&gt; $EMAILMSG
	 mailx -s "WARNING The database is not open - $BOXNAME:$ORACLE_SID $DATETIME" $MAILIDS &lt; $EMAILMSG
   exit 1
fi
</pre>
<p>El email seria similar al siguiente:<br />
<font color="#3333ff"><em>&#8212;&#8211;Original Message&#8212;&#8211;<br />
From: Oracle DBA [mailto:oracle@server.com]<br />
Sent: Friday, July 28, 2006 12:31 PM<br />
To: Nunez, Delfino<br />
Subject: WARNING The database is not open &#8211; DEVSERVER:DEVDB 2006-07-28-12:31:01</p>
<p>The following database is not open, please check this problem:</p>
<p>Instance: DEVDB</em></font></p>
<p>Se puede combinar con el siguiente script para que verifique todas las bases que estan en el servidor (oratab).</p>
<pre>
#!/bin/ksh
#######################################################################
#
# SCRIPT       : all.chkdbup
#
# DESCRIPTION  : This script will call chkdbup script for all databases
#
# INPUT FILES  : $DBA_BASE/init - configuration file
#
# OUTPUT FILES : NONE
#
# CALLED OBJECT: all.chkdbup
# ASSUMPTIONS  : NONE
#
# SETUP INSTRUCTIONS : Need to switchdb first to a default.
#
# COMMAND LINE EXECUTION:
#
# EXAMPLE:
#
# RESTART INSTRUCTIONS: rerun script
# SPECIAL CONSIDERATIONS: NONE
#######################################################################
# Modification Log:
# Version Date        Name              Description
#######################################################################
# 1.0     27-Jun-2006 Delfino Nunez     Initial Creation
#######################################################################

############################################################################
# MAIN PROGRAM STARTS HERE
############################################################################

. $HOME/dba/init
priority=1

if [ -f /var/opt/oracle/oratab ]
then
   export ORATAB='/var/opt/oracle/oratab'
elif [ -f /etc/oratab ]
then
   export ORATAB='/etc/oratab'
else
# following code from Steve Larson
   FOUND_ORATAB=$( find / -name oratab 2&gt;/dev/null | head -1 )
   if [ "$FOUND_ORATAB" ] &amp;&amp; [ -f "$FOUND_ORATAB" ]
   then
       ORATAB="$FOUND_ORATAB"
   else
       exit 1
   fi
fi

if [ "$#" != "0" ]
then
    ORACLE_SID=$1
    shift
    export ORACLE_SID
else
    for ORACLE_SID in `awk -F: '$1 !~ /\#/ &amp;&amp; $1 !~ /\*/ {print $1}' $ORATAB`
    do
        swdb $ORACLE_SID
        chkdbup $ORACLE_SID
    done
fi</pre>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=15&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/07/28/script-para-verificar-que-la-base-esta-arriba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Monitoreo de espacio en tablespace</title>
		<link>http://delfinonunez.wordpress.com/2006/07/20/monitoreo-de-espacio-en-tablespace/</link>
		<comments>http://delfinonunez.wordpress.com/2006/07/20/monitoreo-de-espacio-en-tablespace/#comments</comments>
		<pubDate>Thu, 20 Jul 2006 21:38:17 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/07/20/monitoreo-de-espacio-en-tablespace/</guid>
		<description><![CDATA[Una de las tareas de un DBA es monitorear el espacio de la base de datos, debido a que esto consume mucho tiempo cuando se tienen varias DB&#8217;s es bueno automatizar tareas repetitivas y tediosas. Una manera de realizar la automatización del monitoreo de DB&#8217;s en UNIX es por medio del crontab, el siguiente es [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=18&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Una de las tareas de un DBA es monitorear el espacio de la base de datos, debido a que esto consume mucho tiempo cuando se tienen varias DB&#8217;s es bueno automatizar tareas repetitivas y tediosas. Una manera de realizar la automatización del monitoreo de DB&#8217;s en UNIX es por medio del crontab, el siguiente es un ejemplo de como usar el crontab para monitorear los tablespaces.</p>
<ul>
<li>Los siguientes scripts permiten obtener el espacio utilizado y libre de los tablespaces, uno lo obtiene en base el porcentaje libre de espacio y el otro obtiene el espacio en base a los MB libres. Estos scripts reciben dos parametros: &amp;1 .- es el directorio y archivo donde se va a crear el reporte(spool) y &amp;2 que es el limite ya sea porcentaje (99) o Mb(99999).</li>
</ul>
<p><strong>tablespace_size_pct.sql</strong></p>
<pre>
SET line 132
SET pages 50
SET pause OFF
SET feedback OFF
SET echo OFF
SET verify OFF

COLUMN c1 heading "Tablespace|Name"
COLUMN c2 heading "File|Count"
COLUMN c3 heading "Allocated|in MB"
COLUMN c4 heading "Used|in MB"
COLUMN c5 heading "%|free" format 99.99
COLUMN c6 heading "Free|in MB"
COLUMN c7 heading "%|used" format 99.99

spool &amp;1;

SELECT c1,ROUND(c3,2) c3,ROUND(c4,2) c4,ROUND(c6,2) c6,ROUND(c7,2) c7,ROUND(c5,2) c5,c2
FROM(
SELECT   NVL (b.tablespace_name, NVL (a.tablespace_name, 'UNKOWN')) c1,
         mbytes_alloc c3, mbytes_alloc - NVL (mbytes_free, 0) c4,
         NVL (mbytes_free, 0) c6,
         ((mbytes_alloc - NVL (mbytes_free, 0)) / mbytes_alloc) * 100 c7,
           100
         - (((mbytes_alloc - NVL (mbytes_free, 0)) / mbytes_alloc) * 100) c5,
         b.files c2
    FROM (SELECT   SUM (BYTES) / 1024 / 1024 mbytes_free, tablespace_name
              FROM SYS.dba_free_space
          GROUP BY tablespace_name) a,
         (SELECT   SUM (BYTES) / 1024 / 1024 mbytes_alloc, tablespace_name,
                   COUNT (file_name) files
              FROM SYS.dba_data_files
          GROUP BY tablespace_name) b
   WHERE a.tablespace_name(+) = b.tablespace_name
UNION ALL
SELECT   f.tablespace_name,
         SUM (ROUND ((f.bytes_free + f.bytes_used) / 1024 / 1024, 2)
             ) "total MB",
         SUM (ROUND (NVL (p.bytes_used, 0) / 1024 / 1024, 2)) "Used MB",
         SUM (ROUND (  ((f.bytes_free + f.bytes_used) - NVL (p.bytes_used, 0)
                       )
                     / 1024
                     / 1024,
                     2
                    )
             ) "Free MB",
           (SUM (ROUND (NVL (p.bytes_used, 0) / 1024 / 1024, 2)) * 100)
         / (SUM (ROUND ((f.bytes_free + f.bytes_used) / 1024 / 1024, 2))),
           100
         -   (SUM (ROUND (NVL (p.bytes_used, 0) / 1024 / 1024, 2)) * 100)
           / (SUM (ROUND ((f.bytes_free + f.bytes_used) / 1024 / 1024, 2))),
         COUNT (d.file_name)
    FROM SYS.v_$temp_space_header f,
         dba_temp_files d,
         SYS.v_$temp_extent_pool p
   WHERE f.tablespace_name(+) = d.tablespace_name AND f.file_id(+) = d.file_id
         AND p.file_id(+) = d.file_id
GROUP BY f.tablespace_name)
WHERE C1 NOT IN('USERS')
  AND C7 &gt;= &amp;2
ORDER BY c6 ASC;

spool off;
exit;</pre>
<p><strong>tablespace_size_spc.sql</strong></p>
<pre>
SET line 132
SET pages 50
SET pause OFF
SET feedback OFF
SET echo OFF
SET verify OFF

COLUMN c1 heading "Tablespace|Name"
COLUMN c2 heading "File|Count"
COLUMN c3 heading "Allocated|in MB"
COLUMN c4 heading "Used|in MB"
COLUMN c5 heading "%|free" format 99.99
COLUMN c6 heading "Free|in MB"
COLUMN c7 heading "%|used" format 99.99

spool &amp;1;

SELECT c1,ROUND(c3,2) c3,ROUND(c4,2) c4,ROUND(c6,2) c6,ROUND(c7,2) c7,ROUND(c5,2) c5,c2
FROM(
SELECT   NVL (b.tablespace_name, NVL (a.tablespace_name, 'UNKOWN')) c1,
         mbytes_alloc c3, mbytes_alloc - NVL (mbytes_free, 0) c4,
         NVL (mbytes_free, 0) c6,
         ((mbytes_alloc - NVL (mbytes_free, 0)) / mbytes_alloc) * 100 c7,
           100
         - (((mbytes_alloc - NVL (mbytes_free, 0)) / mbytes_alloc) * 100) c5,
         b.files c2
    FROM (SELECT   SUM (BYTES) / 1024 / 1024 mbytes_free, tablespace_name
              FROM SYS.dba_free_space
          GROUP BY tablespace_name) a,
         (SELECT   SUM (BYTES) / 1024 / 1024 mbytes_alloc, tablespace_name,
                   COUNT (file_name) files
              FROM SYS.dba_data_files
          GROUP BY tablespace_name) b
   WHERE a.tablespace_name(+) = b.tablespace_name
UNION ALL
SELECT   f.tablespace_name,
         SUM (ROUND ((f.bytes_free + f.bytes_used) / 1024 / 1024, 2)
             ) "total MB",
         SUM (ROUND (NVL (p.bytes_used, 0) / 1024 / 1024, 2)) "Used MB",
         SUM (ROUND (  ((f.bytes_free + f.bytes_used) - NVL (p.bytes_used, 0)
                       )
                     / 1024
                     / 1024,
                     2
                    )
             ) "Free MB",
           (SUM (ROUND (NVL (p.bytes_used, 0) / 1024 / 1024, 2)) * 100)
         / (SUM (ROUND ((f.bytes_free + f.bytes_used) / 1024 / 1024, 2))),
           100
         -   (SUM (ROUND (NVL (p.bytes_used, 0) / 1024 / 1024, 2)) * 100)
           / (SUM (ROUND ((f.bytes_free + f.bytes_used) / 1024 / 1024, 2))),
         COUNT (d.file_name)
    FROM SYS.v_$temp_space_header f,
         dba_temp_files d,
         SYS.v_$temp_extent_pool p
   WHERE f.tablespace_name(+) = d.tablespace_name AND f.file_id(+) = d.file_id
         AND p.file_id(+) = d.file_id
GROUP BY f.tablespace_name)
WHERE C1 NOT IN('USERS')
  AND C6 &lt;= &amp;2
ORDER BY c6 ASC;

SPOOL OFF;
exit;</pre>
<ul>
<li>Con el siguiente script podemos ejecutar los SQL scripts anteriores dependiendo los parametros que le enviemos. La forma de ejecutar el script es la siguiente:
<ul>
<li>Para reportar en base al espacio, despues del parametro -d debe seguir el nombre de la instancia (SID), despues del parametro -s sigue la cantidad minima que puede tener libre un tablespace:
<ul>
<li>tbs_monitor.ksh -d DEVELOPMENT -s 500
<pre>
Connected.
Instance: DEVELOPMENT
Tablespaces with usage &lt; 500 MB.

Tablespace                      Allocated       Used       Free      %      %       File
Name                                in MB      in MB      in MB   used   free      Count
------------------------------ ---------- ---------- ---------- ------ ------ ----------
SYSTEM                                600     403.13     196.88  67.19  32.81          1
IDX1                                11741      11363        378  96.78   3.22          3</pre>
</li>
</ul>
</li>
<li>Para reportar en base al porcentaje, en lugar de utilizar el parametro -s se utiliza el parametro -p seguido del porcentaje maximo que puede tener un tablespace:
<ul>
<li>tbs_monitor.ksh -d DEVELOPMENT -p 80</li>
</ul>
</li>
<li>
<pre>Connected.
Instance: DEVELOPMENT
Tablespaces with usage &gt;= 80%.

Tablespace                      Allocated       Used       Free      %      %       File
Name                                in MB      in MB      in MB   used   free      Count
------------------------------ ---------- ---------- ---------- ------ ------ ----------
IDX1                                11741      11363        378  96.78   3.22          3
IDX2                                 3201       2696        505  84.22  15.78          2
IDX5                                18385      17394        991  94.61   5.39          3
DATA02                              13312   11520.13    1791.88  86.54  13.46          2
DATA03                              33797   31709.13    2087.88  93.82   6.18          4
DATA01                              56629   46606.38   10022.63  82.30  17.70          7</pre>
</li>
</ul>
</li>
</ul>
<p><strong>tbs_monitor.ksh</strong></p>
<pre>
#!/bin/ksh
#######################################################################
#
# SCRIPT       : tbs_monitor.ksh
#
# DESCRIPTION  : This script will monitor usage in tablespaces of a database.
#                If the usage is &gt;= 90% it will send an email to the DBA group.
#
# INPUT FILES  : [oracle_sid] only one database is processed
#
# OUTPUT FILES : NONE
#
# CALLED OBJECT: $SCRIPTS/switchdb.ksh
# ASSUMPTIONS  : NONE
#
# SETUP INSTRUCTIONS : NONE
#
# COMMAND LINE EXECUTION: tbs_monitor.ksh -d [oracle_sid] [-s sizeinMB] [-p pct]
#
# EXAMPLE: tbs_monitor.ksh -d DEV -s 300
# EXAMPLE: tbs_monitor.ksh -d DEV -p 85
#
# RESTART INSTRUCTIONS: rerun script
# SPECIAL CONSIDERATIONS: NONE
#######################################################################
# Modification Log:
# Version Date        Name              Description
#######################################################################
# 1.0     04-Jul-2006 Delfino Nunez     Initial Creation
#######################################################################

########################################################################
# FUNCTION   : showHelp
# DESCRIPTION: Print the help for using the script
########################################################################
function showHelp {
			echo " Argument      Description"
      echo " ------------  ----------------------------------------------"
      echo "  -d [sid]     Oracle sid to check."
      echo "  -p xx        Report on percentage usage(pct &gt; xx)."
      echo "  -s xxxxxx    Report on MB size usage(sizeMB &lt; xxxxxx)."
      echo "  -h           This help."
      echo " \n\n EXAMPLE: "
      echo "          Report tablespaces that have more than 95% space used"
      echo "          tbs_monitor.ksh -s EDS2TSDE -p 95"
      echo "          Report tablespaces that have less than 300Mb space"
      echo "          tbs_monitor.ksh -s EDS2TSDE -s 300"
}

########################################################################
# Main Program start here
########################################################################
# Verify input paramtter and set environment variables
#parm_list=$@
. $DBA_BASE/init
#set -- $parm_list

#check parameters
if [ "$1" != "" ]
then
while [ "$#" != "0" ]
do
  case $1 in
    -s)
      shift
      if [ "$1" != "" ]; then
        export RPTTYPE="SIZE"
        export PSIZE=$1
        shift
      fi
    ;;
    -d)
      shift
      if [ "$1" != "" ]; then
        export ORACLE_SID=$1
        shift
      fi
    ;;
    -p)
      shift
      if [ "$1" != "" ]; then
        export RPTTYPE="PCT"
        export PSIZE=$1
        shift
      fi
    ;;
    -h)
      showHelp

      exit 0;
    ;;
    *)
      echo "Bad argument: $1"
      showHelp

      exit 1;
    ;;
  esac
done
else
	showHelp
	exit 1
fi

. $SCRIPTS/switchdb.ksh $ORACLE_SID

BOXNAME=`uname -n`
MAILIDS=`cat $DBA_BASE/.forward`

# point to where the rpt file will go
export RPTFILE=$TMP/${ORACLE_SID}_tablespace_rpt.txt
export EMAILMSG=$TMP/tbs_email.txt
export dbpass=`cat $PWDFILE`

# should not need to be changed
export DATE=$(date +%y-%m-%d.%H:%M:%S)

#remove any previous file
if [ -a $RPTFILE ]
then
	rm $RPTFILE
fi
if [ -a $EMAILMSG ]
then
	rm $EMAILMSG
fi

#Run the status report.

case "$RPTTYPE" in
	"PCT")
	   MESSAGE="Tablespaces with usage &gt;= $PSIZE%."
	   sqlplus -s /nolog &lt;
connect $dbpass
prompt Instance: $ORACLE_SID
prompt Tablespaces with usage &gt;= $PSIZE%.
@$SQL/tablespace_size_pct.sql $RPTFILE $PSIZE
EOF

	   ;;
	"SIZE")
     MESSAGE="Tablespaces with usage &lt;= $PSIZE Mb."
	   sqlplus -s /nolog &lt;
connect $dbpass
prompt Instance: $ORACLE_SID
prompt Tablespaces with usage &lt; $PSIZE MB.
@$SQL/tablespace_size_spc.sql $RPTFILE $PSIZE
EOF
	   ;;
esac

#tablespace with problems
if [[ -s $RPTFILE ]]; then
	echo "The following database have problems with the size of their tablespaces:\n" &gt;&gt; $EMAILMSG
	echo "Instance: $ORACLE_SID" &gt;&gt; $EMAILMSG
	echo $MESSAGE &gt;&gt; $EMAILMSG
	cat $RPTFILE &gt;&gt; $EMAILMSG
  mailx -s "ALERT!!! Tablespace Usage Problems - $BOXNAME:$ORACLE_SID $DATE" $MAILIDS &lt; $EMAILMSG
fi
</pre>
<ul>
<li>Y el ultimo script nos permite obtener el reporte para todas las bases que se encuentran en el servidor. Este script lee el archivo ORATAB y saca todas las bases de datos registradas en el servidor. Este script se puede poner en el crontab de la siguiente manera:</li>
<li>00 00-01,06-23 * * * /home/oracle/dba/scripts/all.tbs_monitor -p &gt;/dev/null 2&gt;&amp;1</li>
<li>Aqui le estamos diciendo al crontab que ejecute el script cada hora excepto de 2am-5am, esto por cuestiones de respaldos.</li>
<li>Si no se quiere procesar todas las bases de datos y solo se quiere verificar algunas entonces es necesario de calendarizar el script <em>tbs_monitor.ksh</em> por cada una de las bases de datos.</li>
</ul>
<p><strong>all.tbs_monitor<br />
</strong></p>
<pre>
#!/bin/ksh
#######################################################################
#
# SCRIPT       : all.tbs_monitor
#
# DESCRIPTION  : This script will call tbs_monitor script for all databases
#
# INPUT FILES  : $DBA_BASE/init - configuration file
#                -a all databases are processed
#                -p production (*PD) databases are processed
#
# OUTPUT FILES : NONE
#
# CALLED OBJECT: tbs_monitor
# ASSUMPTIONS  : NONE
#
# SETUP INSTRUCTIONS : Need to switchdb first to a default.
#
# COMMAND LINE EXECUTION:
#
# EXAMPLE:
#
# RESTART INSTRUCTIONS: rerun script
# SPECIAL CONSIDERATIONS: NONE
#######################################################################
# Modification Log:
# Version Date        Name              Description
#######################################################################
# 1.0     04-Jul-2006 Delfino Nunez     Initial Creation
#######################################################################

############################################################################
# MAIN PROGRAM STARTS HERE
############################################################################

. $HOME/dba/init
priority=1

########################################################################
# FUNCTION   : showHelp
# DESCRIPTION: Print the help for using the script
########################################################################
function showHelp {
			echo " Argument      Description"
      echo " ------------  ----------------------------------------------"
      echo " -p            Only production databases."
      echo " -a            All databases."
      echo " -h            This help."
      echo " \n\n EXAMPLE: all.tbs_monitor -a"
      echo "          all.tbs_monitor -p"
}

########################################################################
# Main Program start here
########################################################################
if [ -f /var/opt/oracle/oratab ]
then
   export ORATAB='/var/opt/oracle/oratab'
elif [ -f /etc/oratab ]
then
   export ORATAB='/etc/oratab'
else
# following code from Steve Larson
   FOUND_ORATAB=$( find / -name oratab 2&gt;/dev/null | head -1 )
   if [ "$FOUND_ORATAB" ] &amp;&amp; [ -f "$FOUND_ORATAB" ]
   then
       ORATAB="$FOUND_ORATAB"
   else
       exit 1
   fi
fi

#check parameter
if [ "$1" != "" ]
then
while [ "$#" != "0" ]
do
  case $1 in
  	-p)
      export INSTANCES=`awk -F: '$1 !~ /\#/ &amp;&amp; $1 !~ /\*/ {print $1}' $ORATAB|grep "PD"`
      shift
    ;;
    -a)
      export INSTANCES=`awk -F: '$1 !~ /\#/ &amp;&amp; $1 !~ /\*/ {print $1}' $ORATAB`
      shift
    ;;
    -h)
      showHelp
      exit 0;
    ;;
    *)
      echo "Bad argument: $1"
      echo ""
    	showHelp
      exit 1;
    ;;
  esac
done
else
	showHelp
	exit 1
fi

if [ "$#" != "0" ]
then
    ORACLE_SID=$1
    shift
    export ORACLE_SID
else
    for ORACLE_SID in $INSTANCES
    do
        swdb $ORACLE_SID
        tbs_monitor.ksh -d $ORACLE_SID -s 300
    done
fi</pre>
<p>Los scripts utilizan otros scripts o archivos que no estan incluidos aqui y que voy a ir publicando, pero estos scripts pueden usarse como base para crear unos personalizados.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=18&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/07/20/monitoreo-de-espacio-en-tablespace/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Busqueda en la documentacion de Oracle</title>
		<link>http://delfinonunez.wordpress.com/2006/07/20/busqueda-en-la-documentacion-de-oracle/</link>
		<comments>http://delfinonunez.wordpress.com/2006/07/20/busqueda-en-la-documentacion-de-oracle/#comments</comments>
		<pubDate>Thu, 20 Jul 2006 20:34:48 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/07/20/busqueda-en-la-documentacion-de-oracle/</guid>
		<description><![CDATA[Oracle estaba haciendo pruebas para poder hacer accesible la documentación sin necesidad de tener una cuenta de technet, gracias a esto se pueden hacer busquedas desde google o en la pagina de oracle. La siguiente es la pagina desde donde se pueden hacer busquedas: search.oracle.com Se escribe lo que se desea buscar luego se selecciona [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=17&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Oracle estaba haciendo pruebas para poder hacer accesible la documentación sin necesidad de tener una cuenta de technet, gracias a esto se pueden hacer busquedas desde google o en la pagina de oracle.<br />
La siguiente es la pagina desde donde se pueden hacer busquedas:<br />
<a href="http://search.oracle.com/">search.oracle.com</a><br />
Se escribe lo que se desea buscar luego se selecciona la sección <em>Documentation </em>y despues se da search.</p>
<p>Ejemplo de buscar <a href="http://search.oracle.com/search/search?default=true&amp;keyword=create+table&amp;start=1&amp;nodeid=&amp;fid=&amp;showSimilarDoc=true&amp;group=Documentation">create table</a></p>
<p>Ahora esta mas padre buscar información sobre un comando o un concepto de oracle gracias a esta herramienta.</p>
<p>Si tienen Firefox pueden instalar un pluggin para hacer busquedas directamente:<br />
<a href="http://awads.net/wp/oracle-firefox-plugins/">Plugin de Firefox</a></p>
<p>Si utilizan IE agreguen un boton al Google toolbar:<br />
<a href="http://toolbar.google.com/buttons/add?url=http://awads.net/google/IE/cb/OraDocsSES.xml">Plugin IE</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=17&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/07/20/busqueda-en-la-documentacion-de-oracle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Ya llegaron las cartas del FBI</title>
		<link>http://delfinonunez.wordpress.com/2006/07/20/ya-llegaron-las-cartas-del-fbi/</link>
		<comments>http://delfinonunez.wordpress.com/2006/07/20/ya-llegaron-las-cartas-del-fbi/#comments</comments>
		<pubDate>Thu, 20 Jul 2006 20:33:42 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/07/20/ya-llegaron-las-cartas-del-fbi/</guid>
		<description><![CDATA[Lo ultimo que estabamos esperando para completar los requisitos de migración eran las cartas del FBI(que solo se las piden a los que viven en la frontera con EU). Pues al fin llegaron este fin de semana y pues en chinga me fui a enviarlas por paqueteria a la embajada de canada ya que esta [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=16&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3 class="post-title">                          <a href="http://delfinonunez.blogspot.com/2006/07/ya-llegaron-las-cartas-del-fbi.html"><br />
</a></h3>
<p>Lo ultimo que estabamos esperando para completar los requisitos de migración eran las cartas del FBI(que solo se las piden a los que viven en la frontera con EU). Pues al fin llegaron este fin de semana y pues en chinga me fui a enviarlas por paqueteria a la embajada de canada ya que esta semana se terminaba el plazo para poder enviar toda la documentación.<br />
Ya esta todo listo de nuestro lado y la verdad no fue muy dificil conseguir todo, fue talachero nada mas, y pues ahora nos queda nada mas esperar a que llegue mas información o nos llegue la visa :).</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=16&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/07/20/ya-llegaron-las-cartas-del-fbi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>octothorpe</title>
		<link>http://delfinonunez.wordpress.com/2006/06/29/octothorpe/</link>
		<comments>http://delfinonunez.wordpress.com/2006/06/29/octothorpe/#comments</comments>
		<pubDate>Thu, 29 Jun 2006 21:39:24 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/06/29/octothorpe/</guid>
		<description><![CDATA[Estaba leyendo un libro de SQL y en un enunciado decia lo siguiente: the width of the FORMAT for the curr_salary field has to be larger than the salary itself because it has to accommodate the sums. If the field is too small, octothorpes result Intuí que se referia al simbolo &#8220;#&#8221; debido a que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=19&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Estaba leyendo un libro de SQL y en un enunciado decia lo siguiente:<br />
<em><br />
<font color="#000000">the width of the FORMAT for the curr_salary field has to be larger than<br />
the salary itself because it has to accommodate the sums. If the field<br />
is too small, <strong>octothorpes</strong> result</font></p>
<p></em>Intuí que se referia al simbolo &#8220;#&#8221; debido a que el ejemplo mostraba lo siguiente:</p>
<pre>111 Kate         $49,000
       122 Lindsey      $52,000
                     ----------- ******
                       ######## sum</pre>
<p>Busque en internet que era y este es e link del significado octothorpe&#8230; interesante.<br />
<a href="http://en.wiktionary.org/wiki/Octothorpe">http://en.wiktionary.org/wiki/Octothorpe</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=19&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/06/29/octothorpe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Unix script para bajar/subir el listener</title>
		<link>http://delfinonunez.wordpress.com/2006/06/22/unix-script-para-bajarsubir-el-listener/</link>
		<comments>http://delfinonunez.wordpress.com/2006/06/22/unix-script-para-bajarsubir-el-listener/#comments</comments>
		<pubDate>Thu, 22 Jun 2006 21:39:59 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/06/22/unix-script-para-bajarsubir-el-listener/</guid>
		<description><![CDATA[En el ultimo post mostre como poder asignar un password a listener, ahora voy a mostrar como automatizar subir y bajar el listener por medio de un shell script de oracle. Anteriormente se menciono que una vez asignado el password al listener ya no se podian ejecutar comandos hasta dar el password de listener. Esto [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=20&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>En el ultimo post mostre como poder asignar un password a listener, ahora voy a mostrar como automatizar subir y bajar el listener por medio de un shell script de oracle.</p>
<p>Anteriormente se menciono que una vez asignado el password al listener ya no se podian ejecutar comandos hasta dar el password de listener. Esto es lo que sucede si se da un comando antes de autentificarse:</p>
<pre>
LSNRCTL&gt; stat
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx.xxx.xxx.xxx)(PORT=1521)))
TNS-01169: The listener has not recognized the password</pre>
<p>Si agregamos el comando</p>
<pre>lsnrctl start/stop</pre>
<p>dentro de un shell script, este script nunca funcionaria. Por lo tanto se debe buscar una manera de poder darle el password dentro del script de manera segura, para esto, el lsnrctl nos permite poner el password encriptado.<br />
Como se muestra aqui:</p>
<pre>set password C92EDAE88E0FA666</pre>
<p>Este password es el mismo que esta almacenado dentro del archivo listener.ora.</p>
<p>Ahora podemos crear un shell script que baje y suba el listener.<br />
Este seria el script para subir el listener.</p>
<pre>
#!/bin/sh
# ==========================================================================
# Script:         /home/oracle/scripts/backups/startlistener.sh
# Written by:     Delfino Nunez
# First Release:  05-May-2006
# Purpose:        Startup listener
# ==========================================================================
#                       M O D I F I C A T I O N S
#  05/05/06  Delfino Nunez Creation
# ==========================================================================

/ohome/oracle/app/product/9.2.0/bin/lsnrctl &gt;&gt; $LOGFILE &lt;&lt; EOF
set password C92EDEE98E0FA357
start
exit
EOF</pre>
<p>Para bajar el listener lo unico que se necesita cambiar es la instruccion start.</p>
<p>Una vez que ya se tienen los scripts se pueden candelarizar dentro del &#8220;cron&#8221;.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=20&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/06/22/unix-script-para-bajarsubir-el-listener/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Asegurando el Listener.</title>
		<link>http://delfinonunez.wordpress.com/2006/05/29/asegurando-el-listener/</link>
		<comments>http://delfinonunez.wordpress.com/2006/05/29/asegurando-el-listener/#comments</comments>
		<pubDate>Mon, 29 May 2006 21:40:32 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/05/29/asegurando-el-listener/</guid>
		<description><![CDATA[Detalles del listener Los archivos importantes para el listener son los siguientes: $ORACLE_HOME/bin/lsnrctl Programa para controlar el listener. $ORACLE_HOME/network/admin/listener.ora Archivo de configuración. $ORACLE_HOME/bin/tnslnsr El proceso del listener. El lsnrctl es el programa para subir(start) y bajar(stop) el proceso del listener (tnslnsr) además de permitir realizar algunas configuraciones. Cuando el tnslnsr se ejecuta éste lee la [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=21&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:verdana;font-size:130%;">Detalles del listener</span><br />
<span style="font-family:verdana;">Los archivos importantes para el listener son los siguientes:</span><br />
<span style="font-family:verdana;">$ORACLE_HOME/bin/lsnrctl                           Programa para controlar el listener.</span><br />
<span style="font-family:verdana;">$ORACLE_HOME/network/admin/listener.ora  Archivo de configuración.</span><br />
<span style="font-family:verdana;">$ORACLE_HOME/bin/tnslnsr                           El proceso del listener.</span></p>
<p><span style="font-family:verdana;">El lsnrctl es el programa para subir(start) y bajar(stop) el proceso del listener (tnslnsr) además de permitir realizar algunas configuraciones. Cuando el tnslnsr se ejecuta éste lee la información (configuración) guardada en el archivo listener.ora.</span></p>
<p><span style="font-family:verdana;font-size:130%;">Modos del listener</span><br />
<span style="font-family:verdana;">El listener puede ser configurado en los siguientes modos:</span><br />
<span style="font-family:verdana;">1. Database Provee acceso por medio de la red a una instancia de Oracle.</span><br />
<span style="font-family:verdana;">2. PLSExtProc Es un método para los paquetes de PL/SQL para acceder ejectutables dentro del sistema operativo.</span><br />
<span style="font-family:verdana;">3. Executable Provee acceso a ejecutables por medio de la red.</span><br />
<span style="font-family:verdana;">El modo database es el más utilizado para realizar conecciones a una base de datos. El modo PLSExtProc es utilizado para acceder a ejecutables en el sistema operativo y esta configurado por default. El modo executable permite definir a un ejecutable para ser accesible por medio de una conexión TNS, regularmente esta opción solo se utiliza en Oracle Applications.</span></p>
<p><span style="font-family:verdana;font-size:130%;">Asegurando el listener</span><br />
<span style="font-family:verdana;">Si un password no esta puesto en el listener, alguien que conozca el nombre del host (o dirección IP) y el puerto del listener (default 1521) puede tener control del listener gracias a que el listener se puede controlar de manera remota.</span><br />
<span style="font-family:verdana;">Lo que se puede controlar es lo siguiente:</span><br />
<span style="font-family:verdana;">• Bajar el listener.</span><br />
<span style="font-family:verdana;">• Poner un password para que nadie lo pueda controlar.</span><br />
<span style="font-family:verdana;">• Obtener información detallada del listener, la base de datos y la aplicación al generar logs.</span><br />
<span style="font-family:verdana;">Poner el password</span><br />
<span style="font-family:verdana;">Para asignar un password al listener es muy sencillo y se puede realizar de dos maneras. La primera es asignarlo por medio del archivo de configuración listener.ora con el parametro “PASSWORDS_</span>” pero el inconveniente es que el password quedara de manera clara en el archivo. La forma recomendada es hacerlo por medio del programa lsnrctl como sigue:<br />
Primero corremos el comando stat para saber si hay password asignado:</p>
<pre>
LSNRCTL&gt; status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
Start Date                28-MAY-2006 15:49:28
Uptime                    0 days 0 hr. 35 min. 37 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF</pre>
<p><span style="font-family:verdana;">Como se puede observar en la parte de Security aparece ON: Local OS Authentication debido a que se esta utilizando Oracle 10g, en la version 9i apareceria OFF como lo muestra el siguiente ejemplo:</span></p>
<pre>
LSNRCTL&gt; stat
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxxxxxxxx)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for HPUX: Version 9.2.0.6.0 - Production
Start Date                29-MAY-2006 05:48:47
Uptime                    0 days 11 hr. 54 min. 40 sec
Trace Level               off
Security                  OFF
SNMP                      OFF</pre>
<p><span style="font-family:verdana;">Una vez que se verifica que no se tiene asignado un password se lo asignamos:</span></p>
<pre>
LSNRCTL&gt; change password
Old password:
New password:
Reenter new password:
LSNRCTL&gt; save_config
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
No changes to save for LISTENER.
The command completed successfully</pre>
<p>En este caso se asigno el password TEST, si verificamos el archivo listener.ora podemos verificar que el password fue asignado al parametro mencionado anteriormente.</p>
<pre>
LSNRCTL&gt; stat
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxxxxxx)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for HPUX: Version 9.2.0.6.0 - Production
Start Date                29-MAY-2006 05:48:47
Uptime                    0 days 11 hr. 54 min. 40 sec
Trace Level               off
Security                  ON
SNMP                      OFF</pre>
<p><span style="font-family:verdana;">Ahora se puede ver que la opción de security esta en ON, esto indica que tiene asignado un password.</span></p>
<p><span style="font-family:verdana;">Ahora cada vez que se requiera hacer algo con el lsnrctl se debe proveer el password antes de realizarlo, si no mostrará un error como el siguiente:</span></p>
<pre>
LSNRCTL&gt; stat
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxxxxxxx)(PORT=1521)))
TNS-01169: The listener has not recognized the password</pre>
<p><span style="font-family:verdana;">Debemos proveer el password:</span></p>
<pre>
LSNRCTL&gt; set password
Password:
The command completed successfully</pre>
<p><span style="font-family:verdana;">Una vez puesto el password el archivo listener.ora tiene una nueva linea de configuración donde esta asignado el password.</span></p>
<pre>
#----ADDED BY TNSLSNR 29-MAY-2006 10:49:45---
PASSWORDS_LISTENER = AB2E99998E0FZZZZ
#--------------------------------------------</pre>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=21&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/05/29/asegurando-el-listener/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Ultimo tramite&#8230;al fin!!!</title>
		<link>http://delfinonunez.wordpress.com/2006/05/23/ultimo-tramiteal-fin/</link>
		<comments>http://delfinonunez.wordpress.com/2006/05/23/ultimo-tramiteal-fin/#comments</comments>
		<pubDate>Tue, 23 May 2006 21:41:19 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/05/23/ultimo-tramiteal-fin/</guid>
		<description><![CDATA[La semana pasada terminamos(eso espero!) nuestro ultimo requisito para tramitar la residencia en Canadá. Ya enviamos las huellas digitales al FBI y estamos en espera de la respuesta. Tambien nos fuimos el Jueves 18 de Mayo al D.F. a tramitar la carta de antecedentes registrales que por poco y no sale, el mono encargado de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=22&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>La semana pasada terminamos(eso espero!) nuestro ultimo requisito para tramitar la residencia en Canadá. Ya enviamos las huellas digitales al FBI y estamos en espera de la respuesta. Tambien nos fuimos el Jueves 18 de Mayo al D.F. a tramitar la carta de antecedentes registrales que por poco y no sale, el mono encargado de recibir los requisitos se puso muy mamón, me regreso dos veces por que la copia de mi credencial no se veia clara y para acabarla no reviso bien y dejo 4 fotografias de perfil y 2 de frente cuando era lo inverso, tuvimos que regresar al dia siguiente a corregir eso (si no lo hubieramos hecho nos hubieran rechazado la requisición). Pero bueno ya terminamos de hacerlos y ahora estamos en espera que nos respondan lo mas pronto posible para poder enviarlos a la embajada.</p>
<p>P.D. Voy a comenzar a escribir tambien un poco de Oracle para contribuir a la comunidad. Y para practicar en el frances tambien lo voy a traducir(eso espero!!!!).</p>
<p>Au Revoir.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=22&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/05/23/ultimo-tramiteal-fin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
		<item>
		<title>Que suaves vacaciones!!!</title>
		<link>http://delfinonunez.wordpress.com/2006/03/10/que-suaves-vacaciones/</link>
		<comments>http://delfinonunez.wordpress.com/2006/03/10/que-suaves-vacaciones/#comments</comments>
		<pubDate>Fri, 10 Mar 2006 21:41:49 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2006/03/10/que-suaves-vacaciones/</guid>
		<description><![CDATA[Después de dos semanas de viaje regreso a ciudad Juárez. Estuve en dos lugares totalmente diferentes, en el primero que fue ciudad de México(D.F) fue por placer y para ir a la entrevista de Québec, el segundo fue por trabajo a Mexicali B.C. &#160; Voy a comenzar por el primero y más importante. Es la [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=23&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span>Después de dos semanas de viaje regreso a ciudad Juárez. Estuve en dos lugares totalmente diferentes, en el primero que fue ciudad de México(D.F) fue por placer y para ir a la entrevista de Québec, el segundo fue por trabajo a Mexicali B.C.</span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span>Voy a comenzar por el primero y más importante. Es la segunda vez que voy al D.F. de vacaciones, la primer vez me pareció impresionante y diferent</span><span>e pero desgraciadamente no conocí tantos lugares como en ésta segunda vez. Estas ultimas vacaciones salieron como pretexto de la cita que teníamos en las oficinas de Québec pero debido a que esta entrevista estaba programada para el día Jueves 23 de Febrero y de cualquier manera debíamos pagar el transporte de Juárez-México y viceversa, optamos (mi esposa y yo) tomarnos una semana de vacaciones de sábado a sábado para conocer la ciudad.</span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span><span style="font-weight:bold;">Sábado</span></span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span>Llegamos el sábado al hotel Fiesta Americana reforma, se ubica frente al monumento a Colón y muy cerca del centro histórico, por cerca me refiero a 20 o 30 minutos caminando. El primer día fuimos a dar una vuelta por el centro histórico pasando por el palacio de bellas artes y</span><span> la torre latinoamericana; estuvimos caminando por l</span><span>as calles aledañas para conocer los alrededores.</span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span><span style="font-weight:bold;">Domingo,</span> <span style="font-style:italic;">MUUUUCHAS VACAS!!!!</span></span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><a href="http://photos1.blogger.com/blogger/4422/1876/1600/CIMG7295.jpg"><img src="http://photos1.blogger.com/blogger/4422/1876/320/CIMG7295.jpg" style="float:left;cursor:pointer;width:202px;height:151px;margin:0 10px 10px 0;" border="0" /></a><span>El domingo es un gran día para ir a los museos de la ciudad ya que la gran mayoría son gratuitos y por lo tanto nosotros optamos ir al museo de antropología e historia y al castillo de Chapultepec. Antes de llegar al museo nos encontramos con una exposición en la calle del Cow Parade y básicamen</span><span>te son vacas de tamaño natural que están pintadas con diferentes temas, algunas vacas estaban pintadas muy padre y otras si eran muy aburridas.<br />
</span></p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span>El museo de antropología e historia es impresionante contiene muchas piezas de las culturas que habitaron México como esculturas, vasijas, instrumentos de caza, etc. Además de contener en la planta baja todo lo relacionado con las culturas Mayas, Mexicas, Toltecas y otras más; la segunda planta la tiene dedicada a todos los pueblos indíg</span><span>enas que habitan en la actualidad el país. Me impresionó tanto como nuestro querido México es tan rico en cultura y diversidad y como la gran mayoría de sus habitantes lo conocemos tan poco. Me dio mucho gusto saber que muchas de las piezas aún sigan aquí en México, lastima que no todo el mundo pueda admirarlas sobre todo los niños, este museo seria de gran ayuda para comprender todo lo que se nos enseña en la esc</span><span>uela, ver todo esto en vivo me recuerda los libros de historia de la primaria, ojala tuviéramos un museo de antropología en cada ciudad, seria muy agradable.</span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><a href="http://photos1.blogger.com/blogger/4422/1876/1600/CIMG7322.jpg"><img src="http://photos1.blogger.com/blogger/4422/1876/320/CIMG7322.jpg" style="float:left;cursor:pointer;width:222px;height:166px;margin:0 10px 10px 0;" border="0" /></a><span>Después de terminar la vi</span><span>sita al museo de antropología y comer una torta en un puesto a las afueras del mus</span><span>e</span><span>o, continuamos con el recorrido histórico hacia el Castillo de Chapultepec. Para poder llegar al c</span><span>astillo hay que subir un cerro por medio de calle empedrada que rodea el cerro de su base hasta</span><span> la cima donde se encuentra el castillo de ahí los guardias lo dirigen a las habitaciones </span><span>del castillo; ahí se pueden observar las habitaciones de lujo que fueron ocupadas por Maximiliano y Carlota, Benito Juárez, Díaz y obviamente los niños héroes. Es impresionante</span><span> saber como estos personajes vivían en el lujo en aquella época mientras el pueblo estaba en la mísera. Éste es un lugar que todo mexicano debería de conocer, es un lugar muy enriquecedor.</span></p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal">
<span> </span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span> </span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span><span style="font-weight:bold;">Lunes</span></span><a href="http://photos1.blogger.com/blogger/4422/1876/1600/CIMG7384.jpg"><img src="http://photos1.blogger.com/blogger/4422/1876/320/CIMG7384.jpg" style="float:right;cursor:pointer;margin:0 0 10px 10px;" border="0" /></a></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span>Otro día cultural, lo comenzamos yendo a desayun</span><span>a</span><span>r a u</span><span>n lugar que se encuentra ce</span><span>rca d</span><span>el hotel donde hacen desayunos ricos y unas aguas frescas de frutas naturales muy buenas y todo por la increíble cantidad de $100 pesos. Tomamos el metro con dirección a Indios Verdes y nos bajamos en la estación la raza para dirigirnos a la estación de autobuses del norte donde abordamos un autobús con dirección a Teotihuacan. Después de un viaje de alrededor de 40 minutos llegamos a Teotihuacan, entramos por la puerta 2 por donde no se veía ningún vestigio de pirámide, yo me imaginaba que se podría ver la pirámide del sol desde una distancia lejana pero no fue así. La primer pirámide que nos quedaba cerca era la pirámide de Quetzalcoatl, ésta pirámide no es muy impresionante y no es tan visitaba como las otras dos, lo que tiene de especial es que primero se tiene que subir una pequeña pirámide para poder ver la segunda (a la cual no se tiene acceso), pero lo interesante de la segunda es que tiene figuras de Quetzalcoatl. La segunda pirámide a la que subimos es la pirámide de Sol, ésta es a la que todo mundo quiere subir; es interesante y muy fatigante subir esta pirámide, tiene escalones “normales” y otros demasiado inclinados, algunas personas intentan subirla sin descansar en los “pisos” pero al llegar a la cima llegan fatigados, bueno, todos llegamos fatigados pero algunas personas llegan mareados y casi desmayan. Pero lo importante es llegar a la cima y subir sus 235 escalones y contemplar desde esa altura todo el complejo arqueológico. Por un momento le pasan a uno pensamientos sobre como vivían los aztecas en aquellos tiempos, sobre lo importante que es ese lugar sobre el que esta uno parado, yo creo que todo mundo que las visita piensa algo parecido, se imagina como fue la vida en este lugar… la siguiente pirámide fue la de la Luna, también un poco pesada la subida pero a diferencia de la del Sol ésta tiene un especie de explanada a la mitad de la pirámide además de estar mas destruida en la parte superior, pero es igual de impresionante que cualquiera de las pirámides. </span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span>Algo que me llamó la atención fue la gran cantidad de turistas extranjeros aún en temporada baja y en especial los turistas europeos; ya había yo platicado con amigos franceses sobre que lugares prefieren ellos y me comentaban que México era uno de sus principales 5 lugares para conocer y ahora constate esa selección, encontré gran cantidad de turistas franceses, otros que creo que eran griegos y unos cuantos americanos<span style="font-style:italic;"> </span>o ingleses. Pero me di cuenta que los franceses están muy interesados en conocer los lugares culturales, eso me dio gusto.</span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span><span style="font-weight:bold;">Martes</span></span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span>Continuamos con la onda cultural, este día se lo dedicamos al museo mural de Diego Rivera en el cual hay exposición de algunas pinturas y caricaturas, pero lo realmente importante del museo es el mural de Diego Rivera que se titula </span><a href="http://www.diegorivera.com/murals/alameda2.html">Sueño de una tarde dominical en la Alameda Central</a><span>. De nuevo me recuerda a la primaria, el mural estaba en algún libro de la escuela; lo suave es que hay una explicación de cada personaje que aparece en el mural y cada cosa que fue pintaba en él. Algo que me llamo mucho la atención fue que en la paredes había fotografías y recortes de periódicos que explicaban como por todo lo que paso Diego al hacer el mural, un recorte de periódico que me capto mi atención fue uno que comentaba sobre una frase que existía originalmente en el mural y que decía “Dios no existe”, la frase causó tal revuelo en sus tiempos que incluso fue borrada por un grupo de estudiantes, Diego la volvió a retocar pero fue muy criticado y tuvo que cambiar la frase por una que no recuerdo, pero creo que la original era buena, jejejeeje. </span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><a href="http://photos1.blogger.com/blogger/4422/1876/1600/CIMG7406%20%28Small%29.jpg"><img src="http://photos1.blogger.com/blogger/4422/1876/320/CIMG7406%20%28Small%29.jpg" style="float:left;cursor:pointer;width:211px;height:158px;margin:0 10px 10px 0;" border="0" /></a><span>Siguiente parada Munal o museo nacional de arte, este museo contiene un buen numero de pinturas religiosas las cuales me recordaron a las pinturas que había visto en Italia, también tiene muchas pinturas de Diego Rivera, Clemente Orozco y otros pintores mexicanos, de nuevo muchas pinturas me recordaron los libros de texto. En la planta baja había una exposición de Goya, en lo personal no me gusto mucho, no conozco lo suficiente de este pintor como para apreciarlo. Creo que este museo no le pide nada a los museos italianos tiene una muy buena colección de pinturas.</span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span>Después del Munal nos dirigimos al Palacio Nacional donde se encuentran gran cantidad de murales de Diego Rivera, se entra por la puerta del frente en la cual los guardias piden una identificación al entrar se ven algunos de los murales los cuales se aprecian claramente al subir las escaleras y en las paredes del lado izquierdo; son impresionantes, están realmente bonitos y además la entrada es gratis!!!, al terminar de ver los murales hay una sala en la que se muestran algunos documentos importantes entre ellos la carta de independencia de México.</span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span> </span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span><span style="font-weight:bold;">Miércoles</span> </span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><a href="http://photos1.blogger.com/blogger/4422/1876/1600/CIMG7450%20%28Small%29.jpg"><img src="http://photos1.blogger.com/blogger/4422/1876/320/CIMG7450%20%28Small%29.jpg" style="float:left;cursor:pointer;width:181px;height:135px;margin:0 10px 10px 0;" border="0" /></a><span>Este día lo dedicamos a conocer las afueras del D.F. y nos dirigimos a Xochimilco, para llegar al lugar de las trajinera tuvimos que tomar el metro con dirección a barranca del muerto de ahí tomamos un tren ligero que nos llevaría a Xochimilco. Una vez que llegamos a la Terminal del tren ligero pensábamos que podríamos llegar por nuestra cuenta, pero gracias a una persona que estaba “cazando” turistas pudimos llegar a un embarcadero en el cual esta persona nos quería vender el paseo en trajinera a $350 pesos cuando en el hotel nos habían comentado que cobraban $100 pesos; después de muchas discusiones no llegamos a ningún acuerdo y lo más barato que nos cobraba fueron $200 pesos por una hora, al final lo mandamos a la goma y fuimos a buscar otros embarcaderos y así llegamos al embarcadero principal donde había un chingo de trajineras y donde rentamos una por $140 pesos la hora. Durante una hora ( o 45 minutos) nos paseo por algunos de los canales de Xochimilco los cuales están muy pintorescos, se pueden ver familias completas en la trajinera, trajineras que venden comida, trajineras con mariachis y marimbas, etc. Esta muy suave para ir de paseo con un grupo de amigos o con la familia y así poder pagar mas tiempo la trajinera tomar unas cheves y escuchar un mariachi. Después del paseo nos fuimos a comer a una fondita que habíamos visto y que nos llamo la atención allí comimos por la increíble cantidad de $40 pesotes, muy barato para lo que estamos acostumbrados aquí en Juárez. Continuamos nuestro camino en el metro, mi esposa quería ir a conocer la UNAM, pero como yo no sabia como llegar y la verdad no me interesaba ir a conocerla opte por ir con ella, al parecer ella pensaba que iba a salir de la estación del metro e iba a encontrar todos los edificios que se ven en la televisión, pero gran sorpresa, por algo le dicen ciudad universitaria, preguntamos a las personas que estaban cerca y muchos no sabían y otros nos dieron direcciones que nos llevaron mas lejos del lugar a donde queríamos ir; al final ni llegamos a la UNAM y termine por hacer un<span>  </span>coraje por que nada mas caminábamos sin rumbo, nos regresamos al hotel a descansar para prepararnos para la cita de Québec…pero que corajote hice.</span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span><span style="font-weight:bold;">Jueves</span> </span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span>Nos levantamos un poco tarde para poder descansar de la caminata del día anterior a las 12 del medio día apenas estábamos desayunando/comiendo, terminamos y nos dirigimos a Polanco donde esta ubicada la oficina de migración de Québec. Comenzamos a buscar el numero de la oficina en la calle que según yo me había aprendido de memoria pero gran error llegamos al final de la calle y no encontramos ni madres de oficina entonces optamos por ver los documentos y revisar la dirección, íbamos en sentido contrario, corregimos y llegamos fácilmente, llegamos 30 minutos antes de la hora pactada y estuvimos viendo algunos folletos y mapas que tienen en la sala de espera. Abren la puerta y sale una muchacha con todos sus documentos reborujados y al parecer contenta por que si fue aceptada. Nos recibe una vato y nos pide que pasemos a su oficina. Ya en la oficina se presenta y nos comienza a pedir los documentos y a decirnos que por favor hablemos francés para poder conocer el nivel que tenemos; mientras nos revisa los documentos nos hace preguntas y se las contestamos, al parecer no hay una estructura especial<span>  </span>en la entrevista, nos pareció mas bien una entrevista de trabajo ya que nos pregunto muchísimo sobre que hacíamos, como lo hacíamos, por que lo hacíamos, etc. Al final nos comento que toda la documentación estaba bien que habíamos pasado la entrevista y que iba a escribir la carta (la cual tardo un buen rato de terminarla), una vez que nos entrego la carta nos hizo comentarios sobre el cambio que íbamos hacer en nuestra vida, que iba a ser un cambio radical y posiblemente difícil, que el nos recomendaba que continuáramos con el estudio del idioma y que aparte obtuviéramos algunas certificaciones para poder dar confianza a los empleadores de Québec cuando busquemos trabajo, nos hizo mucho hincapié en esto ya que muchas personas no están preparadas a ser rechazadas debido a que los empleadores no conocen los estudios y por lo tanto tienen desconfianza al emplear a alguien extranjero. Bueno todo salio bien, pero… la verdad no salimos gritando de alegría de la entrevista, no es que no estuviéramos concientes de todas las cosas que comento, si no que lo dijo con una crudeza que tal pareciera que te va a ir mal, y no es que me moleste que me lo digan, prefiero que nos digan la verdad y no que nos vendan un sueño que a lo mejor va a ser muy difícil lograr. Por el momento mi esposa y yo nos estamos preparando lo mas que podemos, tenemos ahorros, estamos aprendiendo el idioma (necesitamos practicarlo bastante) y pues tenemos que hacer muchos arreglos antes de irnos, esperamos partir para Febrero del 2007.</span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;" class="MsoNormal"><span><span> </span></span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;" class="MsoNormal"><span><span style="font-weight:bold;">Viernes</span></span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;" class="MsoNormal"><a href="http://photos1.blogger.com/blogger/4422/1876/1600/CIMG7500%20%28Small%29.jpg"><img src="http://photos1.blogger.com/blogger/4422/1876/320/CIMG7500%20%28Small%29.jpg" style="float:left;cursor:pointer;margin:0 10px 10px 0;" border="0" /></a><span>Este día lo dedicamos a la cuestión religiosa, nos fuimos camino a la Villa de la virgen de Guadalupe, la verdad yo no la conocía, mi esposa ya sabia como era pero yo no. La primer impresión que tuve fue que no es tan grande como me la imaginaba, en la televisión se mira muy grande y la verdad no es así. Hay mucha gente devota que va directo a la basílica de rodillas, nunca pensé que vería eso, pero si, existe, hay mucha gente que es creyente, y muchísima. Otra cosa que me llamo la atención fue el tamaño de todo el complejo, además de la basílica hay otras iglesias y un pequeño parquecito con su cascada y toda la cosa. Una de las principales cosas que quería confirmar era si en la tilma de Juan Diego donde esta impresa la virgen estaba la famosa corona, por que la corona, bueno básicamente por que en la original la virgen tiene corona y en muchas pinturas que vi en los museos y ahí mismo en las iglesias las vírgenes tienen coronas y la virgen de la tilma no tiene corona, es raro, pero no voy a debatir sobre eso en este momento. Terminamos de dar una vuelta por el complejo y luego nos retiramos al hotel…o a otro lado…no recuerdo.</span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span> </span></p>
<p style="text-align:justify;">&nbsp;</p>
<p style="text-align:justify;font-family:verdana;" class="MsoNormal"><span><span style="font-weight:bold;">Sábado</span></span></p>
<p style="text-align:justify;">&nbsp;</p>
<p><span>Au revoir, adiós D.F. este fue nuestro ultimo día en la ciudad de México y básicamente lo dedicamos para irnos al aeropuerto donde se retraso el vuelo por mas de 2 horas…ni modo.</span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=23&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2006/03/10/que-suaves-vacaciones/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>

		<media:content url="http://photos1.blogger.com/blogger/4422/1876/320/CIMG7295.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/4422/1876/320/CIMG7322.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/4422/1876/320/CIMG7384.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/4422/1876/320/CIMG7406%20%28Small%29.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/4422/1876/320/CIMG7450%20%28Small%29.jpg" medium="image" />

		<media:content url="http://photos1.blogger.com/blogger/4422/1876/320/CIMG7500%20%28Small%29.jpg" medium="image" />
	</item>
		<item>
		<title>Confirmation à la entrevue du 23 février 2006 à 15:30</title>
		<link>http://delfinonunez.wordpress.com/2005/12/23/confirmation-a-la-entrevue-du-23-fevrier-2006-a-1530/</link>
		<comments>http://delfinonunez.wordpress.com/2005/12/23/confirmation-a-la-entrevue-du-23-fevrier-2006-a-1530/#comments</comments>
		<pubDate>Fri, 23 Dec 2005 21:42:29 +0000</pubDate>
		<dc:creator>delfinonunez</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://delfinonunez.wordpress.com/2005/12/23/confirmation-a-la-entrevue-du-23-fevrier-2006-a-1530/</guid>
		<description><![CDATA[Después de siete meses de espera, el día 21 de diciembre 2006 recibimos un correo electrónico mi esposa y yo sobre la aplicación que habíamos hecho a la oficina de inmigración de Québec en México. En este correo electrónico explica la fecha en que debemos presentarnos a la entrevista y la documentación que debemos llevar; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=24&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-size:85%;"><span style="font-family:verdana;"> Después de siete meses de espera, el día 21 de diciembre 2006 recibimos un correo electrónico mi esposa y yo sobre la aplicación que habíamos hecho a la oficina de inmigración de Québec en México. En este correo electrónico explica la fecha en que debemos presentarnos a la entrevista y la documentación que debemos llevar; básicamente tendremos que llevar toda los documentos originales que ya habíamos enviado en fotocopia previamente. </span><br />
<span style="font-family:verdana;">Gracias a esta confirmación nos ayuda a tomar decisiones mas firmes respecto a lo que deseamos hacer mi esposa y yo, debido a que últimamente estábamos (yo principalmente) un poco desanimados porque no recibíamos respuesta. Bueno el tiempo continua y debemos prepararnos para la entrevista la cual al parecer va a ser en francés, esperamos que todo salga bien y nos den el certificado de aceptación para poder continuar con los tramites con la embajada de Canadá.</span></p>
<p><span style="font-family:verdana;">Mientras tanto, feliz navidad y prospero año nuevo.</span></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/delfinonunez.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/delfinonunez.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/delfinonunez.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/delfinonunez.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/delfinonunez.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/delfinonunez.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/delfinonunez.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/delfinonunez.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/delfinonunez.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/delfinonunez.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/delfinonunez.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/delfinonunez.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/delfinonunez.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/delfinonunez.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/delfinonunez.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/delfinonunez.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=delfinonunez.wordpress.com&amp;blog=517926&amp;post=24&amp;subd=delfinonunez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://delfinonunez.wordpress.com/2005/12/23/confirmation-a-la-entrevue-du-23-fevrier-2006-a-1530/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/50106265fba48b97bf8fc584ac06f3ee?s=96&#38;d=wavatar" medium="image">
			<media:title type="html">delfinonunez</media:title>
		</media:content>
	</item>
	</channel>
</rss>
