<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Karl Mudespacher's Blog</title>
	<atom:link href="http://karlmudespacher.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://karlmudespacher.wordpress.com</link>
	<description>Bienvenido al blog de Karl Müdespacher</description>
	<lastBuildDate>Fri, 23 Oct 2009 02:06:01 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='karlmudespacher.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/bf35e20383a2b5392110e6ccb4acd61c?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Karl Mudespacher's Blog</title>
		<link>http://karlmudespacher.wordpress.com</link>
	</image>
			<item>
		<title>Alexis Zorba el Griego</title>
		<link>http://karlmudespacher.wordpress.com/2009/10/22/alexis-zorba-el-griego/</link>
		<comments>http://karlmudespacher.wordpress.com/2009/10/22/alexis-zorba-el-griego/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 02:06:01 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[griego]]></category>
		<category><![CDATA[Kazantzakis]]></category>
		<category><![CDATA[nikos Kazantzakis]]></category>
		<category><![CDATA[zorba]]></category>
		<category><![CDATA[zorba el griego]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=467</guid>
		<description><![CDATA[Niko Kazantzakis
ISBN 950-724-714-9
Kazantzakis nos regala una hermosa novela sobre la vida y los preciosos momentos que se nos pueden ir entre los dedos cuando decidimos no disfrutar al máximo de ella con todas las cosas que trae consigo, venga lo que venga.
Zorba es un hombre de edad avanzada que aún conserva su corazón con una [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=467&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Niko Kazantzakis</p>
<p>ISBN 950-724-714-9</p>
<p>Kazantzakis nos regala una hermosa novela sobre la vida y los preciosos momentos que se nos pueden ir entre los dedos cuando decidimos no disfrutar al máximo de ella con todas las cosas que trae consigo, venga lo que venga.</p>
<p>Zorba es un hombre de edad avanzada que aún conserva su corazón con una avidez intensa por conocer, por disfrutar y por aprender.  Se queda boquiabierto al mirar el mar, como si fuera la primera vez que lo viera.  Se embelesa al escuchar un ruiseñor.  Zorba no se deja encadenar por prejuicios o creencias, él tiene su propia creencia y es la de ser él mismo.</p>
<p>La novela es relatada por un amigo de Zorba a quien Zorba enseña a vivir a pesar de estar ya en sus cuarenta años.</p>
<p>Kazantzakis nos deja por boca de Zorba muchas ideas y frases sobre las que creo necesitamos reflexionar una y otra vez, ideas que cambian la perspectiva que tenemos de las cosas.  Por ejemplo</p>
<ul>
<li>vale la pena vivir la vida como si fuésemos a morir mañana &#8230; ¿o más bien vale vivirla como si nunca fuésemos a morir?</li>
<li>todo tiene su tiempo y el apresurar el tiempo natural trae consecuencias fatales</li>
</ul>
<p>Zorba nos deja también reflexiones sobre los salvajismos que suelen hacerse en nombre de la patria, porque en realidad antes que las nacionalidades está el ser humano.  Todos tenemos necesidades similares, todos llegamos cansados a casa después de un día intenso, todos tenemos miedos y pasiones, etc.</p>
<p>Zorba también comenta sobre el hipócrita, que durante el día se dedica a la matanza y a la destrucción, pero en la noche se pone sus hábitos, y sin que esta doble vida tenga un impacto en la conciencia del hombre.</p>
<p>En fin, aquí tenemos una novela que habla de cómo un hombre vió la vida y del sentido que ésta tuvo para él.  Una novela llena de reflexiones y la historia de una persona cuya vida es transformada por un Zorba.</p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:0;width:1px;height:1px;">Kazantzakis</div>
Posted in Libros  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/467/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=467&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2009/10/22/alexis-zorba-el-griego/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>Optimización por propiedades de los conjuntos</title>
		<link>http://karlmudespacher.wordpress.com/2009/08/31/propiedades-de-la-multiplicacion/</link>
		<comments>http://karlmudespacher.wordpress.com/2009/08/31/propiedades-de-la-multiplicacion/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 20:53:47 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[afinación]]></category>
		<category><![CDATA[desempeño]]></category>
		<category><![CDATA[distributiva]]></category>
		<category><![CDATA[optimización]]></category>
		<category><![CDATA[pl/sql]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[union]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=445</guid>
		<description><![CDATA[En muchas ocasiones he dicho para entender bien cómo funciona Oracle hay que saber bien dos cosas

teoría de conjuntos
estadística

La optimización del desempeño no es ni un arte y mucho menos magia, se necesita entender el modelo matemático y proponer otro modelo equivalente pero con un tiempo de ejecución menor.
Las propiedades de la multiplicación son un [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=445&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>En muchas ocasiones he dicho para entender bien cómo funciona Oracle hay que saber bien dos cosas</p>
<ul>
<li>teoría de conjuntos</li>
<li>estadística</li>
</ul>
<p>La optimización del desempeño no es ni un arte y mucho menos magia, se necesita entender el modelo matemático y proponer otro modelo equivalente pero con un tiempo de ejecución menor.</p>
<p>Las propiedades de la multiplicación son un ejemplo básico para modelos matemáticos equivalentes.</p>
<p>Primero vamos a enfocarnos en la propiedad distributiva de la intersección.  La propiedad dice que la unión de dos o más conjuntos, intersectados por otro conjunto, es igual a la unión de la intersección de cada conjunto con este último.</p>
<p><img src="http://karlmudespacher.files.wordpress.com/2009/09/inter.png" alt="Propiedad Distributiva de la Intersección" /></p>
<p>Lo más importante de esta técnica es que las igualdades propuestas sean en efecto equivalentes a la igualdad original.</p>
<p>Los conjuntos están definidos</p>
<p><code>A = {2,4,6}</code></p>
<p>B = {4,6,8,10,12}</p>
<p>C = {10,11,12,13,14,15,16,17}</p>
<p>La <em>sentencia #1</em> es la que se va a afinar y sobre la cual buscamos una <em>sentencia #2</em> que le sea equivalente.  De este modo tenemos<br />
<code><em>Sentencia #1</em><br />
select * from a, b where a1 = b1<br />
union<br />
select * from a, c where a1 = c1;</code></p>
<p>Con el plan de ejecución<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p><code>| Id  | Operation	                 | Name | Rows  | Bytes | Cost (%CPU)| Time        |<br />
------------------------------------------------------------------------------<br />
|   0 | SELECT STATEMENT           |           |	  13 |  	 338 |     	   9  (34)| 00:00:01 |<br />
|*1 |   HASH JOIN	                 |           |   13 |  	 338 |     	   9  (34)| 00:00:01 |<br />
|   2 |     TABLE ACCESS FULL     | A       |   3  |   	  39 |     	   2    (0)| 00:00:01 |<br />
|   3 |     VIEW                 |           |  	  13 |  	 169 |     	   6  (34)| 00:00:01 |<br />
|   4 |       SORT UNIQUE	             |           |   13 |  	 169 |     	   6  (67)| 00:00:01 |<br />
|   5 |         UNION-ALL	              |           |     	     |      	     |           		  |         	     |<br />
|   6 |           TABLE ACCESS FULL | B       |    5 |   	  65 |      	   2   (0)| 00:00:01 |<br />
|   7 |           TABLE ACCESS FULL | C       |   	   8 |  	 104 |      	   2   (0)| 00:00:01 |<br />
------------------------------------------------------------------------------</code></p>
<p>Si aplicamos la propiedad distributiva de la intersección obtenemos la sentencia #2 que es equivalente<br />
<code><em>Sentencia #2</em><br />
select * from a,<br />
(select * from b<br />
union<br />
select * from c) d<br />
where a1 = b1;</code></p>
<p>Con un plan de ejecución más eficiente<br />
<code>-----------------------------------------------------------------------------<br />
| Id  | Operation           	     | Name | Rows  | Bytes | Cost (%CPU)| Time        |<br />
-----------------------------------------------------------------------------<br />
|   0 | SELECT STATEMENT          |     	    |   	  6 |  	156 |    	 11  (64)| 00:00:01 |<br />
|   1 |  SORT UNIQUE         	     |     	    |   	  6 |  	156 |    	 11  (64)| 00:00:01 |<br />
|   2 |     UNION-ALL          	     |     	    |     	    |      	    |           		 |         	    |<br />
|*3 |       HASH JOIN         	     |     	    |   	  3 |   	 78 |     	  5  (20)| 00:00:01 |<br />
|   4 |         TABLE ACCESS FULL | A       |   	  3 |   	 39 |     	  2    (0)| 00:00:01 |<br />
|   5 |         TABLE ACCESS FULL | B       |   	  5 |   	 65 |     	  2    (0)| 00:00:01 |<br />
|*6 |       HASH JOIN         	     |     	    |   	  3 |   	 78 |     	  5  (20)| 00:00:01 |<br />
|   7 |         TABLE ACCESS FULL | A    |   	  3 |   	 39 |     	  2    (0)| 00:00:01 |<br />
|   8 |         TABLE ACCESS FULL | C    |   	  8 |  	104 |     	  2    (0)| 00:00:01 |<br />
-----------------------------------------------------------------------------</code><br />
Para demostrar la mejora en los tiempos de ejecución creé otro caso de pruebas, elegí tres tablas.  Las primeras dos son enormes pero la tercera es gigantesca.  Todas las columnas sobre las cuales se hace la búsqueda están indexadas así que crear un índice no es una opción.  Las tablas fueron creadas con datos distribuidos normalmente, así que el escenario no presenta sesgos.</p>
<p>Les presento las tablas<br />
<code>STAGE             // tabla gigantesca<br />
Name       Null?  Type<br />
-------------------------------------------<br />
ID                NUMBER          // columna indexada<br />
DATA              VARCHAR2(128)<br />
...</code></p>
<p><code>LARGE             // tabla grande<br />
Name           Null?   Type<br />
-------------------------------------------<br />
UNIQUEID                   NUMBER<br />
ID                   	        NUMBER          // columna indexada<br />
...</code></p>
<p><code>LARGE1            // tabla grande<br />
Name           Null?   Type<br />
-------------------------------------------<br />
UNIQUEID                   NUMBER<br />
ID                   	        NUMBER          // columna indexada<br />
...</code></p>
<p>La sentencia original es la siguiente y la llamaremos<em> sentencia#1</em></p>
<p><code>SELECT * FROM stage a, large b<br />
WHERE a.id = b.id<br />
UNION<br />
SELECT * FROM stage a, large1 c<br />
WHERE a.id = c.id;</code></p>
<p>y su plan de ejecución<br />
<code>---------------------------------------------------------------------------------------<br />
| Id  | Operation           	| Name     | Rows  | Bytes |TempSpc| Cost (%CPU)| Time         |<br />
---------------------------------------------------------------------------------------<br />
|   0 | SELECT STATEMENT        |       	      |    255M|       14G|             |  2607K (51)| 09:11:58 |<br />
|   1 |  SORT UNIQUE         	     |       	      |    255M|       14G|       18G|   2607K (51)| 09:11:58 |<br />
|   2 |     UNION-ALL	              |       	      |            |             |             |            	   |         	      |<br />
|*3 |      HASH JOIN         	     |       	      |  127M|   7568M|       37M|    6989  (22)| 00:01:29 |<br />
|   4 |         TABLE ACCESS FULL | LARGE   |    999K|       25M|             |    387 	(8)| 00:00:05 |<br />
|   5 |         TABLE ACCESS FULL | STAGE   | 1455K|       48M|             |      624  (6)| 00:00:08 |<br />
|*6 |       HASH JOIN	            |       	      |    127M|   7568M|       37M|    6991  (22)| 00:01:29 |<br />
|   7 |         TABLE ACCESS FULL | LARGE1 |    999K|       25M|             |      389 	(8)| 00:00:05 |<br />
|   8 |         TABLE ACCESS FULL | STAGE   |  1455K|       48M|             |      624 	(6)| 00:00:08 |<br />
---------------------------------------------------------------------------------------</code></p>
<p><code>Predicate Information (identified by operation id):<br />
---------------------------------------------------</code></p>
<p>3 &#8211; access(&#8220;A&#8221;.&#8221;ID&#8221;=&#8221;B&#8221;.&#8221;ID&#8221;)<br />
6 &#8211; access(&#8220;A&#8221;.&#8221;ID&#8221;=&#8221;C&#8221;.&#8221;ID&#8221;)</p>
<p>Haciendo la misma optimización para tener una operación equivalente obtenemos de la <em>sentencia#1</em> la <em>sentencia#2</em></p>
<p><code>SELECT * FROM stage a,<br />
(SELECT * FROM large<br />
UNION<br />
SELECT * FROM large1) d<br />
WHERE a.id = d.id;</code></p>
<p>Nota: para fines de la agrupación creamos un nuevo conjunto D.</p>
<p>El plan de ejecución para la <em>sentencia#2</em> es el siguiente<br />
<code>----------------------------------------------------------------------------------------<br />
| Id  | Operation	                | Name   | Rows  | Bytes |TempSpc| Cost (%CPU)| Time        |<br />
----------------------------------------------------------------------------------------<br />
|   0 | SELECT STATEMENT          |              |   255M|       27G|             |  14643	(22)| 00:03:06 |<br />
|*1 |  HASH JOIN           	      |               |    255M|       27G|       65M|  14643	(22)| 00:03:06 |<br />
|   2 |     TABLE ACCESS FULL   | STAGE  |  1455K|       48M|             |     624 	 (6)| 00:00:08 |<br />
|   3 |   VIEW	              	      |               |  1999K|   156M|             |   8491 	 (4)| 00:01:48 |<br />
|   4 |       SORT UNIQUE	            |               |  1999K|      51M|      84M|   8491	(52)| 00:01:48 |<br />
|   5 |         UNION-ALL	             |               |            |             |            |           	|	               |<br />
|   6 |          TABLE ACCESS FULL| LARGE  |    999K|       25M|             |     387 	(8)| 00:00:05 |<br />
|   7 |          TABLE ACCESS FULL| LARGE1 |  999K|       25M|             |      389 	 (8)| 00:00:05 |<br />
----------------------------------------------------------------------------------------</code></p>
<p><code>Predicate Information (identified by operation id):<br />
---------------------------------------------------</code></p>
<p>1 &#8211; access(&#8220;A&#8221;.&#8221;ID&#8221;=&#8221;D&#8221;.&#8221;ID&#8221;)</p>
<p>¿Se ven parecidos?  únicamente si 9 horas es parecido a 3 minutos.</p>
<p>Para los que se lo sigan preguntando, ninguna de las sentencias es eficiente, basta con ver el plan de ejecución y sobre todo el espacio temporal necesario.  Para nuestro ejemplo, ¿cuál es la razón del mal desempeño?   el diseño mismo &#8230; pero tener un diseño ineficiente para el desarrollo de este caso de prueba es lo que precísamente buscábamos.</p>
<p><strong>Conclusión</strong>:</p>
<p>En muchas ocasiones nos encontramos con aplicaciones que no permiten la creación de índices o bien donde aún el haqueo de las estadísticas no es de gran ayuda.  Es probable que en esas situaciones tampoco podamos tener acceso al código de la aplicación, en el mejor de los casos debería de abrirse un incidente con la compañía dueña de la aplicación para corregir la aplicación, pero cuando ésto no es posible entonces pueden usarse outlines.<img src="http://karlmudespacher.files.wordpress.com/2009/09/inter.png" alt="Propiedad Distributiva de la Intersección" /></p>
Posted in Oracle  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/445/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/445/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/445/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/445/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/445/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/445/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=445&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2009/08/31/propiedades-de-la-multiplicacion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>

		<media:content url="http://karlmudespacher.files.wordpress.com/2009/09/inter.png" medium="image">
			<media:title type="html">Propiedad Distributiva de la Intersección</media:title>
		</media:content>

		<media:content url="http://karlmudespacher.files.wordpress.com/2009/09/inter.png" medium="image">
			<media:title type="html">Propiedad Distributiva de la Intersección</media:title>
		</media:content>
	</item>
		<item>
		<title>Fixed Tables vs. Views (tablas fijas y vistas)</title>
		<link>http://karlmudespacher.wordpress.com/2009/04/29/fixed-tables-vs-views-tablas-fijas-y-vistas/</link>
		<comments>http://karlmudespacher.wordpress.com/2009/04/29/fixed-tables-vs-views-tablas-fijas-y-vistas/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 15:50:06 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[fixed table]]></category>
		<category><![CDATA[fixed_view_definition]]></category>
		<category><![CDATA[tabla fija]]></category>
		<category><![CDATA[v$waitstat]]></category>
		<category><![CDATA[view]]></category>
		<category><![CDATA[view_definition]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[x$table]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=406</guid>
		<description><![CDATA[Hace un par de días tuve un comentario donde me preguntaban cuál era la relación entre las tablas fijas x$ y las vistas, es decir, una vista como gv$waitstat tiene una relación con una o varias tablas x$.  La pregunta es hacer una analogía para las tablas x$ y las vistas de nivel más bajo, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=406&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hace un par de días tuve un comentario donde me preguntaban cuál era la relación entre las tablas fijas x$ y las vistas, es decir, una vista como <em>gv$waitstat</em> tiene una relación con una o varias tablas x$.  La pregunta es hacer una analogía para las tablas x$ y las vistas de nivel más bajo, con lo que para las vistas del diccionario de datos tenemos con la vista <em>dba_views </em>con las columnas <em>view_name </em>y <em>text.</em></p>
<p>Para el caso de las tablas fijas existe una vista que se llama <em>v$fixed_view_definition.</em> La siguiente descripción pertenece a la versión 11.1.0.7.</p>
<p><code> VIEW_NAME         VARCHAR2(30)<br />
VIEW_DEFINITION   VARCHAR2(4000)</code></p>
<p>Nos interesan las columnas <em>view_name </em>y <em>view_definition</em>, de modo que la vista a la que nos referíamos al principio del post, <em>gv$waitstat</em> está definida por</p>
<p><code>select inst_id,decode(indx,1,'data block',2,'sort block',3,'save undo block', 4,'segment header',5,'save undo header',6,'free list',7,'extent map', 8,'1st level bmb',9,'2nd level bmb',10,'3rd level bmb', 11,'bitmap block',12,'bitmap index block',13,'file header block',14,'unused', 15,'system undo header',16,'system undo block',17,'undo header',18,'undo block'), count,time from x$kcbwait where indx!=0</code></p>
<p>como lo podemos ver a través de la sentencia</p>
<p><code>select view_definition from v$fixed_view_definition where view_name = 'GV$WAITSTAT';</code></p>
Posted in Oracle  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/406/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/406/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/406/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=406&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2009/04/29/fixed-tables-vs-views-tablas-fijas-y-vistas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>Reversed Indexes &#8211; Índices de llaves invertidas</title>
		<link>http://karlmudespacher.wordpress.com/2009/03/16/reversed-indexes-indices-invertidos/</link>
		<comments>http://karlmudespacher.wordpress.com/2009/03/16/reversed-indexes-indices-invertidos/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 03:04:02 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[alta transaccionalidad]]></category>
		<category><![CDATA[índices invertidos]]></category>
		<category><![CDATA[indices]]></category>
		<category><![CDATA[reversed]]></category>
		<category><![CDATA[reversed indexes]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=390</guid>
		<description><![CDATA[Oracle Corporation introdujo en la versión 8 de su base de datos los índices de tipo reversed.  De acuerdo a la documentación estos índices son la mejor configuración para ambientes con Oracle Parallel Server o bien con alta transaccionalidad.  El concepto en sí es muy interesante y consiste en invertir cada uno de los bytes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=390&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Oracle Corporation introdujo en la versión 8 de su base de datos los índices de tipo <em>reversed</em>.  De acuerdo a la documentación estos índices son la mejor configuración para ambientes con Oracle Parallel Server o bien con alta transaccionalidad.  El concepto en sí es muy interesante y consiste en invertir cada uno de los bytes de las columnas indexadas (salvo el tipo <em>ROWID</em>), de este modo si se tiene un índice numérico que se basa en una secuencia las nuevas filas no se insertarán en un mismo bloque sino en distintos bloques.</p>
<p>¿Cómo es que esto funciona?  Tomemos como ejemplo una aplicación con una alta transaccionalidad OLTP de modo que en un microsegundo se generan 5 nuevas filas, las filas serán insertadas en una tabla con una única columna indexada y cuyo valor es generado por una secuencia.  De éste modo tenemos en dicho microsegundo que insertar 5 columnas con las siguientes secuencias</p>
<p><code>4583</code></p>
<p>4584</p>
<p>4585</p>
<p>4586</p>
<p>4587</p>
<p>En total tenemos 5 transacciones, cada una pertenece a una sesión distinta.  Los índices de llaves invertidas -<em>reversed key indexes</em>- convertirán las secuencias en</p>
<p><code>3854</code></p>
<p>4854</p>
<p>5854</p>
<p>6854</p>
<p>7854</p>
<p>Las filas serán insertadas en los bloques de la tabla que estén disponibles de acuerdo al órden del SCN asignado a cada transacción.</p>
<p>Según la documentación de soporte los índices <em>reversed</em> <em>key</em> son muy eficientes en cuanto a desempeño se refiere porque <em>cuando en un ambiente OLTP intenso las modificaciones a los índices se enfocan en un pequeño conjunto de bloques de hojas.  Invirtiendo los índices del índice permite que las inserciones se distribuyan en todas las llaves hoja en el índice.  Los índices invertidos previenen que las sentencias ejecuten una operación de index range scan debido a que las llaves léxicamente adyacentes no se almacenan físicamente una junto a la otra.  Los índices invertidos también pueden utilizarsee en situaciones donde los usuarios insertan ascendentemente valores y eliminan valores menores de la tabla, ayudando por tanto con la prevención de índices dispersos.  (Traducción literal).</em></p>
<p>¿Será ésto cierto?</p>
<p>Las estadísticas para los índices que creamos son los siguientes, nótese la enorme diferencia en el clustering factor.  El clustering factor es una estadística utilizada por el CBO para estimar cuántas lecturas a bloques distintos tendrán que hacerse en el caso de lecturas tipo FTS o bien range scan con alta cardinalidad.</p>
<p><code>TABLE  INDEX           CF     BLEVEL LBLOCKS DKEYS  LBPK DBPK NUM_ROWS<br />
</code><code>----------------------------------------------------------------------------</code><br />
<code> LARGE  LARGE_ID          2186      1 1099    999999    1    1 999999<br />
LARGE1 LARGE1_UNIQUEID 999988      1 1099    999999    1    1 999999</code></p>
<p>Resulta claro que el índice de llaves invertidas tenga un clustering factor inmensamente más alto que un índice normal, y eso que la tabla tiene casi 1 millón de filas.</p>
<p>Dada la sentencia</p>
<p><code>update (large||large1)  set subobject_name='UPDATED' where uniqueid between 555555 and 888888;</code></p>
<p>tenemos los planes y los tiempos de ejecución</p>
<p>ÍNDICE BTREE</p>
<p><code>----------------------------------------------------------------------------<br />
| Id  | Operation       | Name  | Rows  | Bytes | Cost (%CPU)| Time       |<br />
----------------------------------------------------------------------------<br />
|   0 | UPDATE STATEMENT   |       |   333K|  2278K|   938   (1)| 00:00:14 |<br />
|   1 |  UPDATE        | LARGE |       |       |        |       |<br />
|*  2 |   TABLE ACCESS FULL| LARGE |   333K|  2278K|   938   (1)| 00:00:14 |<br />
----------------------------------------------------------------------------</code></p>
<p>Predicate Information (identified by operation id):<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>2 &#8211; filter(&#8220;UNIQUEID&#8221;&gt;=555555 AND &#8220;UNIQUEID&#8221;&lt;=888888)</p>
<p><strong>Elapsed: 00:00:31.70</strong></p>
<p>ÍNDICE CON LLAVES INVERTIDAS</p>
<p><code>-----------------------------------------------------------------------------<br />
| Id  | Operation       | Name   | Rows  | Bytes | Cost (%CPU)| Time     |<br />
-----------------------------------------------------------------------------<br />
|   0 | UPDATE STATEMENT   |        |    333K|  2278K|    944   (1)| 00:00:14 |<br />
|   1 |  UPDATE        | LARGE1 |        |        |         |        |<br />
|*  2 |   TABLE ACCESS FULL| LARGE1 |    333K|  2278K|    944   (1)| 00:00:14 |<br />
-----------------------------------------------------------------------------</code></p>
<p>Predicate Information (identified by operation id):<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>2 &#8211; filter(&#8220;UNIQUEID&#8221;&gt;=555555 AND &#8220;UNIQUEID&#8221;&lt;=888888)</p>
<p><strong>Elapsed: 00:00:31.49</strong></p>
<p>Para el caso de modificaciones masivas tenemos casi lo mismo en cuanto a costo y tiempos de ejecución, así que el supuesto beneficio de los índices de llaves invertidas sobre los índices btree es prácticamente inexistente (omitiendo las limitaciones por diseño de un índice invertido).</p>
<p>Ahora vamos a analizar para el caso de acceso a las tablas donde la sentencia pide una cardinalidad reducida y utilizando el índice sobre <em>uniqueid</em>.</p>
<p>ÍNDICE BTREE</p>
<p><code>------------------------------------------------------------------------------<br />
| Id  | Operation      | Name     | Rows  | Bytes | Cost (%CPU)| Time     |<br />
------------------------------------------------------------------------------<br />
|   0 | UPDATE STATEMENT  |         |      42 |     294 |       3   (0)| 00:00:01 |<br />
|   1 |  UPDATE       | LARGE    |         |         |          |         |<br />
|*  2 |   INDEX RANGE SCAN| LARGE_ID |      42 |     294 |       2   (0)| 00:00:01 |<br />
------------------------------------------------------------------------------</code></p>
<p>Predicate Information (identified by operation id):<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>2 &#8211; access(&#8220;UNIQUEID&#8221;&gt;=555510 AND &#8220;UNIQUEID&#8221;&lt;=555550)</p>
<p><strong>Elapsed: 00:00:00.02</strong></p>
<p>ÍNDICE CON LLAVES INVERTIDAS</p>
<p><code>-----------------------------------------------------------------------------<br />
| Id  | Operation       | Name   | Rows  | Bytes | Cost (%CPU)| Time     |<br />
-----------------------------------------------------------------------------<br />
|   0 | UPDATE STATEMENT   |        |     42 |    294 |    943   (1)| 00:00:14 |<br />
|   1 |  UPDATE        | LARGE1 |        |        |         |        |<br />
|*  2 |   TABLE ACCESS FULL| LARGE1 |     42 |    294 |    943   (1)| 00:00:14 |<br />
-----------------------------------------------------------------------------</code></p>
<p>Predicate Information (identified by operation id):<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>2 &#8211; filter(&#8220;UNIQUEID&#8221;&gt;=555510 AND &#8220;UNIQUEID&#8221;&lt;=555550)</p>
<p><strong>Elapsed: 00:00:00.11</strong></p>
<p>La ejecución de la sentencia utilizando el índice btree tiene un tiempo de ejecución del 18% de lo que tarda la misma sentencia que utiliza el índice con llaves invertidas &#8230; ¿dónde queda entonces la superioridad del índice con llaves invertidas aún en la misma situación donde la documentación del índice invertido lo supone muy superior?</p>
<p>He visto en incontables ocasiones ambientes productivos con &#8220;nuevas características&#8221; tecnológicas cuya razón de ser obedece a que los administradores/desarrolladores tomaron un curso o bien leyeron en internet sobre supuestos beneficios, y decidieron &#8220;proactivamente&#8221; implantarlos en sus ambientes (heme aquí insistiendo en la importancia de hacer pruebas y de dudar de cualquier cosa que aparezca en internet o bien en la documentación).</p>
<p>Concluimos que hay que tener mucho cuidado con lo que se lee en internet o en cualquier documentación, es muy fácil decir cosas cuando no se presenta una demostración.  ¿No es en las observaciones, inducción, hipótesis, experimentación, demostración y teoría en lo que el método científico se basa?</p>
Posted in Oracle  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/390/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/390/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/390/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/390/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/390/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/390/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/390/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/390/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/390/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/390/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=390&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2009/03/16/reversed-indexes-indices-invertidos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>Una letra femenina azul pálido</title>
		<link>http://karlmudespacher.wordpress.com/2009/03/16/una-letra-femenina-azul-palido/</link>
		<comments>http://karlmudespacher.wordpress.com/2009/03/16/una-letra-femenina-azul-palido/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 23:53:58 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[franz werfel]]></category>
		<category><![CDATA[letra femenina]]></category>
		<category><![CDATA[letra femenina azul pálido]]></category>
		<category><![CDATA[pudo ser]]></category>
		<category><![CDATA[werfel]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=387</guid>
		<description><![CDATA[Una letra femenina azul pálido
Franz Werfel
ISBN978-84-339-6607-0
Leónidas se encuentra al final de sus días, está a punto de retirarse como funcionario del ministerio de educación en Viena.  Tiene una vida ejemplar para muchos y envidiada por otros.  Comenzó desde abajo, pertenecía a una familia desconocida que no podía ofrecerle mucho en cuanto a su futuro.  Es [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=387&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Una letra femenina azul pálido</p>
<p>Franz Werfel</p>
<p>ISBN978-84-339-6607-0</p>
<p>Leónidas se encuentra al final de sus días, está a punto de retirarse como funcionario del ministerio de educación en Viena.  Tiene una vida ejemplar para muchos y envidiada por otros.  Comenzó desde abajo, pertenecía a una familia desconocida que no podía ofrecerle mucho en cuanto a su futuro.  Es una persona trabajadora y segura de sí misma, se casó con una mujer rica y muy cortejada, de una de las mejores familias de entonces.  Un día recibe una carta que resalta entre toda su correspondencia por haber sido escrita con una pluma azúl pálido y con una letra ligeramente inclinada, aburrida como diría su esposa.  Pero esa carta revuelve su mundo, la carta la escribió una mujer a la que amó hace muchos años y le pide que le ayude a ser trasladado de Alemania a un muchacho de dieciocho años, precisamente la edad que tendría un muchacho si es que fuera el hijo de ambos.</p>
<p>En la mente de Leónidas se desarrollan inmediatamente pensamientos y conclusiones que lo atormentan a tal grado de que ya no se reconoce él mismo, toma acciones que jamás tomaría alguien en su lugar y con su experiencia.  Las presiones a las que repentinamente es sometido lo obligan a enfrentarse a sí mismo, después de tantos años de vida, a analizar a la persona que se esconde detrás de ese puesto de funcionario, de esa vida tan cómoda y tan envidiada.  Después de todo, la mujer que escribe ¿pudo haber sido la mujer de su vida?</p>
<p>Esta novela corta tiene un alto contenido personal y sicológico, personal porque también nosotros nos escurrimos de la persona que realmente somos, escudándonos en nuestras propias comodidades mientras la vida pasa de lado, y con ella no sólo pueden pasar nuestras mejores experiencias, nuestros mejores anhelos, lo mejor de nosotros mismos, y todo por miedo.  Es increible lo cómodos que podemos sentirnos en ciertas circunstancias cuando son los momentos de dificultad los que nos hacen enfrentarnos a nosotros mismos sacando además a relucir nuestro verdadero yo y al final, si aprovechamos el momento, regalándonos lo mejor de nosotros mismos.</p>
<p>¿Es válido pensar en lo que pudo ser?</p>
<p>¿Existe lo que pudo ser?</p>
Posted in Libros  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/387/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=387&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2009/03/16/una-letra-femenina-azul-palido/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>Creando casos de prueba</title>
		<link>http://karlmudespacher.wordpress.com/2009/03/16/creando-casos-de-prueba/</link>
		<comments>http://karlmudespacher.wordpress.com/2009/03/16/creando-casos-de-prueba/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 23:34:26 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[escenario]]></category>
		<category><![CDATA[materialize]]></category>
		<category><![CDATA[prueba]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=372</guid>
		<description><![CDATA[Personalmente creo que lo más importante cuando se quiere demostrar un comportamiento en Oracle, o bien generar un caso de prueba se necesita crear un escenario.  Desafortunadamente para muchos ambientes ésto es muy dificil de lograr, ya sea por la seguridad de los datos en un ambiente productivo o bien por su volatilidad.  Formalmente es [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=372&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Personalmente creo que lo más importante cuando se quiere demostrar un comportamiento en Oracle, o bien generar un caso de prueba se necesita crear un escenario.  Desafortunadamente para muchos ambientes ésto es muy dificil de lograr, ya sea por la seguridad de los datos en un ambiente productivo o bien por su volatilidad.  Formalmente es imposible que un ambiente de pruebas, desarrollo o entrenamiento sea idéntico a un ambiente productivo, hay varias razones pero creo que las más comunes son</p>
<p>-el ambiente clonado no puede tener la misma distribución física de los datos (método generación del clon),</p>
<p>-el ambiente clonado no tiene la misma distribución en los medios de almacenamiento (los rowids son distintos),</p>
<p>-política de seguridad en el clon (métodos como data masking),</p>
<p>-el ambiente clonado es un instante en el tiempo del ambiente de producción tal que existe una varianza en los datos / distribución mayor al 0.01%,</p>
<p>-no se requiere mantener igualdad entre los ambientes,</p>
<p>-la actividad en los ambientes es por pura definición diferente, un ambiente de QA (aún con robots de prueba) tendrá difícilmente una carga idéntica a la del ambiente productivo que además tendrá actividad que no generará LCR,</p>
<p>Lo más importante para generar un ambiente de prueba es comprender el modelo del proceso de negocio, con mucha frecuencia cuando hay que hacer demostraciones genero un ambiente personalizado que modela la distribución productiva de los datos pero sin contener los mismos datos.</p>
<p>En este post quiero documentar un caso genérico de generación de casos de prueba, genero una tabla de 35MB en únicamente tres sentencias, es muy importante que la versión de la base de datos sea la misma a la versión del ambiente productivo.  Por supuesto lo importante es modelar el proceso de negocio, en mi caso la tabla tiene 5 columnas</p>
<p><code> Name							     Null?    Type<br />
----------------------------------------------------------- -------- ----------------------------------------<br />
UNIQUEID       	NOT NULL NUMBER<br />
ID                      								      NUMBER<br />
ID2                      NUMBER<br />
TDATE          							     NOT NULL DATE<br />
OBJECT_NAME	   					     NOT NULL VARCHAR2(30)<br />
SUBOBJECT_NAME      	   					      VARCHAR2(30)<br />
</code></p>
<p>Para la creación de la tabla y la inserción de valores usamos una materialización con base en una tabla con una gran cardinalidad, en este caso uso all_objects.</p>
<p><code>create table large<br />
as<br />
with generator as<br />
(select --+materialize<br />
rownum id,<br />
rownum / 500000 id2,<br />
created tdate,<br />
object_name object_name,<br />
subobject_name subobject_name<br />
from all_objects<br />
where rownum &lt; 500000)<br />
select<br />
rownum uniqueid,<br />
a.*<br />
from generator a,<br />
generator b<br />
where rownum &lt; 500000;</code></p>
<p>Después creo una llave primaria</p>
<p><code>alter table large add primary key (uniqueid);</code></p>
<p>Finalmente inserto muchos valores</p>
<p><code>insert into large (select uniqueid+499999, id, id2, tdate, object_name, subobject_name from large);</code></p>
<p>De este modo tengo una tabla con una distribución de datos similar al modelo productivo, que puedo recrear cuantas veces quiera y con la que puedo documentar las pruebas.</p>
Posted in Oracle  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/372/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=372&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2009/03/16/creando-casos-de-prueba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>Cómo borrar un histograma</title>
		<link>http://karlmudespacher.wordpress.com/2009/01/31/como-borrar-un-histograma/</link>
		<comments>http://karlmudespacher.wordpress.com/2009/01/31/como-borrar-un-histograma/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 06:43:14 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[borrar un histograma]]></category>
		<category><![CDATA[columna]]></category>
		<category><![CDATA[dba_tab_columns]]></category>
		<category><![CDATA[estadísticas]]></category>
		<category><![CDATA[generar estadísticas]]></category>
		<category><![CDATA[haquear estadísticas]]></category>
		<category><![CDATA[histograma]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=362</guid>
		<description><![CDATA[¿Cómo borrar un histograma sobre una columna?  De manera muy genérica podemos decir que una base de datos relacional se basa mayormente en la teoría de conjuntos y en modelos estadísticos.  La teoría de conjuntos en una base de datos generará los resultados correctos mientras que los modelos estadísticos servirán para que la respuesta solicitada [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=362&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>¿Cómo borrar un histograma sobre una columna?  De manera muy genérica podemos decir que una base de datos relacional se basa mayormente en la teoría de conjuntos y en modelos estadísticos.  La teoría de conjuntos en una base de datos generará los resultados correctos mientras que los modelos estadísticos servirán para que la respuesta solicitada se resuelva rápido.</p>
<p>El tema con las estadísticas no es tener estadísticas, ni siquiera tener estadísticas actualizadas.  Estamos hablando de modelos estadísticos por lo que lo importante es tener el modelo correcto, es decir, las estadísticas con los valores correctos.  Para lograrlo puede optarse por cualquiera de las siguientes</p>
<ul>
<li>borrar estadísticas,</li>
<li>generar estadísticas,</li>
<li>haquear estadísticas,</li>
</ul>
<p>Cuando digo &#8220;haquear&#8221; estadísticas significa establecer valores en forma manual para que el modelo sea representado de forma más acertada con las estadísticas.</p>
<p>En una ocasión un administrador insistía muchísimo en generar estadísticas e histogramas para todas las tablas y columnas de la base de datos.  A pesar de haberle advertido que no lo hiciera, lo hizo.  ¿Cuál fue el resultado?  una catástrofe, los tiempos de respuesta se dispararon y la toma de estadísticas duró más de dos días sin que terminara el proceso.  Por ahora no explicaré las razones pues ya será tema de otro post hablar sobre los tipos de estadísticas, cuándo y por qué obtenerlas.  Por lo pronto quiero resolver la pregunta</p>
<p>¿cómo borrar un histograma sobre una columna?</p>
<p>Dado que los histogramas son percentiles (Oracle Corporation los llama cubetas, aunque un percentil no tiene nada que ver con una cubeta), se necesita tener al menos dos percentiles para poder generar un histograma.  Así que si generamos un histograma con tamaño 1 es realmente borrar el histograma previo.  Si anteriormente no había ningún histograma entonces Oracle generará datos en el diccionario donde diga que alguna vez se le generó un histograma a la columna de la tabla en cuestión.</p>
<p>La sentencia es<br />
<code><br />
exec dbms_stats.gather_table_stats(ownname =&gt; 'owner', tabname =&gt; 'table', method_opt =&gt; 'for columns column_name size 1');</code></p>
<p>Vamos a aclararlo con un ejemplo</p>
<p>Inicialmente tenemos una tabla llamada <em>STAGE</em>, y hacemos al diccionario la consulta</p>
<p><code><br />
select column_Name, num_distinct, density, num_nulls, histogram from dba_tab_columns where table_Name = 'STAGE';</code></p>
<p><code><br />
COLUMN_NAME       NUM_DISTINCT DENSITY    NUM_NULLS    HISTOGRAM<br />
---------------- ------------- ---------- ------------ ----------<br />
ID                      0         0              0     NONE<br />
OBJECT                  0         0              0     NONE<br />
TDATE                   0         0              0     NONE<br />
ID2                     0         0              0     NONE<br />
</code></p>
<p>Tenemos entonces una tabla con 4 columnas donde no se han generado estadísticas de ningún tipo.  Y lo podemos confirmar con la sentencia</p>
<p><code><br />
select column_Name, num_distinct, density, num_nulls, histogram from user_tab_columns where table_Name = 'STAGE';</code></p>
<p><code><br />
</code><code>COLUMN_NAME       NUM_DISTINCT DENSITY    NUM_NULLS    HISTOGRAM<br />
---------------- ------------- ---------- ------------ ----------</code><code><br />
ID                      11374  .00008792         0     NONE<br />
OBJECT                   8732  .000114521        0     NONE<br />
TDATE                     497  .002012072        0     NONE<br />
ID2                     11374  .00008792         0     NONE<br />
</code></p>
<p>Ahora generamos un histograma con tamaño 11, es decir con 10 percentiles<code><br />
exec dbms_stats.gather_table_stats(ownname =&gt; 'demo', tabname=&gt; 'stage', method_opt =&gt; 'for columns object size 10');<br />
</code></p>
<p>Nuevamente validamos los valores que la generación del histograma ha modificado</p>
<p><code><br />
</code><code>COLUMN_NAME       NUM_DISTINCT DENSITY    NUM_NULLS    HISTOGRAM<br />
---------------- ------------- ---------- ------------ ----------</code><code><br />
ID                      11374  .00008792         0     NONE<br />
OBJECT                   8732  .000223714        0     HEIGHT BALANCED<br />
TDATE                     497  .002012072        0     NONE<br />
ID2                     11374  .00008792         0     NONE<br />
</code></p>
<p>Finalmente borramos el histograma sobre la columna <em>object,</em></p>
<p><code><br />
exec dbms_stats.gather_table_stats(ownname =&gt; 'demo', tabname=&gt; 'stage', method_opt =&gt; 'for columns object size 1');</code></p>
<p><code><br />
</code><code>COLUMN_NAME       NUM_DISTINCT DENSITY    NUM_NULLS    HISTOGRAM<br />
---------------- ------------- ---------- ------------ ----------</code><code><br />
ID                      11374  .00008792         0     NONE<br />
OBJECT                   8732  .000114521        0     NONE<br />
TDATE                     497  .002012072        0     NONE<br />
ID2                     11374  .00008792         0     NONE</code></p>
<p>Y finalmente tenemos los valores iniciales.  Quiero enfatizar que antes de generar el histograma se tenían estadísticas para la tabla y que cuando se generó el histograma las estadísticas se modificaron.  El tener estadísticas actualizadas no significa que son las estadísticas que mejor modelen la distribución de los datos, al final, cuando eliminamos el histograma, las estadísticas volvieron a los valores iniciales.</p>
Posted in Oracle  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/362/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/362/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=362&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2009/01/31/como-borrar-un-histograma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>Las puertas del paraíso</title>
		<link>http://karlmudespacher.wordpress.com/2008/12/23/las-puertas-del-paraiso/</link>
		<comments>http://karlmudespacher.wordpress.com/2008/12/23/las-puertas-del-paraiso/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 04:45:41 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[andrzejewski]]></category>
		<category><![CDATA[constantinopla]]></category>
		<category><![CDATA[cruzada]]></category>
		<category><![CDATA[cruzada de los niños]]></category>
		<category><![CDATA[jerusalén]]></category>
		<category><![CDATA[jerzy andrzejewski]]></category>
		<category><![CDATA[paraiso]]></category>
		<category><![CDATA[puertas]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=354</guid>
		<description><![CDATA[Las puertas del paraíso
Jerzy Andrzejewski
ISBN 84-8191-634-X
Andrzejewski escribe esta novela utilizando la cruzada de los niños como contexto histórico.
La novela fue una revelación incluso al círculo intelectual de la época, la razón es que Andrefewsky nos presenta los pensamientos de 5 jóvenes y de 1 sacerdote que inician la cruzada.  Cada uno de ellos con sus [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=354&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Las puertas del paraíso</p>
<p>Jerzy Andrzejewski</p>
<p>ISBN 84-8191-634-X</p>
<p>Andrzejewski escribe esta novela utilizando la <em>cruzada de los niños</em> como contexto histórico.</p>
<p>La novela fue una revelación incluso al círculo intelectual de la época, la razón es que Andrefewsky nos presenta los pensamientos de 5 jóvenes y de 1 sacerdote que inician la cruzada.  Cada uno de ellos con sus dudas y sus ilusiones, se trata de monólogos donde se va clarificando la totalidad de la historia, como si se tratase de desenredar varias hebras que están anudadas entre ellas.</p>
<p>Los personajes de Andrefewsky presentan argumentos, historias y personalidades tan complejas que se nos antojan como reales, una realidad de los personajes que bien puede aplicarse al pensamiento generalizado del momento que fue el que dió pié a la primer catástrofe dentro de esta época enfermiza y vergonzosa de nuestra historia.</p>
<p>El título hace una clara referencia a las puertas de Jerusalén, el título y toda esta novela hacen una clara alusión al hecho de que la verdad es tan cruda que es la única capaz de matar la ilusión, y en el caso de otras personas es capaz de matar la vida misma.</p>
<p>Es una excelente novela, una ventana al corazón del ser humano cuando éste utiliza la negación, la mentira o las ilusiones para crear un mundo que le parece mejor a su realidad.</p>
Posted in Libros  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/354/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/354/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=354&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2008/12/23/las-puertas-del-paraiso/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>Jakob von Gunten</title>
		<link>http://karlmudespacher.wordpress.com/2008/12/08/jakob-von-gunten/</link>
		<comments>http://karlmudespacher.wordpress.com/2008/12/08/jakob-von-gunten/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 17:14:58 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[benjamenta]]></category>
		<category><![CDATA[jakob von gunten]]></category>
		<category><![CDATA[robert walser]]></category>
		<category><![CDATA[sin futuro]]></category>
		<category><![CDATA[von gunten]]></category>
		<category><![CDATA[walser]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=351</guid>
		<description><![CDATA[Jakob von Gunten
Robert Walser
ISBN 84-7844-668-0
Esta es la novela favorita del propio Robert Walser, el escenario es sumamente sencillo, de hecho es un escenario que a primera vista pudiera parecer aburrido por ser tan común.  La trama se desarrolla en un instituto germánico de fines del siglo XIX, un insituto cuyo objetivo era el de formar [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=351&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Jakob von Gunten</p>
<p>Robert Walser</p>
<p>ISBN 84-7844-668-0</p>
<p>Esta es la novela favorita del propio Robert Walser, el escenario es sumamente sencillo, de hecho es un escenario que a primera vista pudiera parecer aburrido por ser tan común.  La trama se desarrolla en un instituto germánico de fines del siglo XIX, un insituto cuyo objetivo era el de formar mayordomos y gente de servicio para las clases más altas.  El instituto lo manejaban dos hermanos, los Benjamenta.</p>
<p>Walser nos presenta la vida dentro del instituto y las personalidades de sus estudiantes y maestros, todo con la perspectiva del futuro.  Un futuro aburrido y sin más objetivos que los de agradar a los futuros amos de los alumnos.</p>
<p>La novela está matizada de un sentimiento de desesperación insuperable, de una ausencia del yo que ahoga a sus personajes, tanto a los alumnos como a los maestros.</p>
<p>Es una obra maestra sobre la vida sin metas, sin objetivos y sin los retos que le dan color y oxígeno a nuestra existencia.</p>
Posted in Libros  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/351/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/351/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/351/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/351/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/351/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/351/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=351&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2008/12/08/jakob-von-gunten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>Ehrengard</title>
		<link>http://karlmudespacher.wordpress.com/2008/12/08/ehrengard/</link>
		<comments>http://karlmudespacher.wordpress.com/2008/12/08/ehrengard/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 16:38:57 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[ehrengard]]></category>
		<category><![CDATA[isak dinesen]]></category>
		<category><![CDATA[karen blixen]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=349</guid>
		<description><![CDATA[Ehrengard
Isak Dinesen
ISBN 978-84-931471-2-9
Ehrengard es el nombre de un cuento muy simpático que de dejó con un agradable sabor de boca.  El escenario es un país germánico cuya familia real se ve en aprietos, como en cualquier círculo de poder tiene su lugar la intriga.  La solución está en la persona de Ehrengard, una joven hija [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=349&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Ehrengard</p>
<p>Isak Dinesen</p>
<p>ISBN 978-84-931471-2-9</p>
<p>Ehrengard es el nombre de un cuento muy simpático que de dejó con un agradable sabor de boca.  El escenario es un país germánico cuya familia real se ve en aprietos, como en cualquier círculo de poder tiene su lugar la intriga.  La solución está en la persona de Ehrengard, una joven hija de un clan de famosos y fieles guerreros.</p>
<p>Toda la narración es dada a conocer por un consejero de la familia real, un artista y un hombre al que le gusta disfrutar lo que la vida tiene que dar.</p>
Posted in Libros  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/349/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/349/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/349/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/349/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/349/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/349/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/349/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/349/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/349/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/349/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=349&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2008/12/08/ehrengard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>Apuesta al amanecer</title>
		<link>http://karlmudespacher.wordpress.com/2008/10/28/apuesta-al-amanecer/</link>
		<comments>http://karlmudespacher.wordpress.com/2008/10/28/apuesta-al-amanecer/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 01:17:54 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[amanecer]]></category>
		<category><![CDATA[apuesta]]></category>
		<category><![CDATA[arthur]]></category>
		<category><![CDATA[kasda]]></category>
		<category><![CDATA[schnitzler]]></category>
		<category><![CDATA[wilhelm kasda]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=331</guid>
		<description><![CDATA[Apuesta al amanecer
Arthur Schnitzler
ISBN 84-95359-13-8
Esta novela es la historia de los juegos de azar y de cómo pueden esclavizar a las personas.  Todo inicia cuando un Wilhelm Kasda, un alférez recibe la visita de un buen amigo a quien no ha visto hace varios años, el amigo le pide ayuda económica porque tiene que reponer [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=331&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Apuesta al amanecer</p>
<p>Arthur Schnitzler</p>
<p>ISBN 84-95359-13-8</p>
<p>Esta novela es la historia de los juegos de azar y de cómo pueden esclavizar a las personas.  Todo inicia cuando un Wilhelm Kasda, un alférez recibe la visita de un buen amigo a quien no ha visto hace varios años, el amigo le pide ayuda económica porque tiene que reponer un dinero que tomó de la empresa en la que labora, se tomó la libertad con la excusa de tener deudas que tiene que saldar.</p>
<p>El alférez no tiene el dinero para ayudar a su amigo, y tampoco las ganas, pero la tentación le da un pretexto para arriesgarlo todo y posiblemente tener mucho más es tan grande que decide apoyar a su amigo, su estrategia es la de jugárselo todo en la mesa de juegos y dejarle al destino jugar también su papel.</p>
<p>Ya en la mesa de juegos todo resulta increíblemente perfecto, hasta que el azar (que no sólo es poderoso en la mesa de juegos sino también tiene su influencia en el resto de las situaciones de la vida) le juega una pequeña jugarreta que le irá arrastrando dentro de un pozo profundo, como si de arenas movedizas se tratara.</p>
<p>Obviamente el azar no es el personaje principal en la novela, el azar únicamente explota la ambición y la emoción que provoca la incertidumbre del juego.</p>
<p>Schnitzler desarrolla su novela basándose en la vulnerabilidad al juego de muchas personas y nos regala una extraordinaria novela en la que más que las situaciones fortuitas nos es presentada una ventana al alma misma del ser humano.</p>
Posted in Libros  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/331/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=331&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2008/10/28/apuesta-al-amanecer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>La historia siguiente</title>
		<link>http://karlmudespacher.wordpress.com/2008/10/25/la-historia-siguiente/</link>
		<comments>http://karlmudespacher.wordpress.com/2008/10/25/la-historia-siguiente/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 04:43:28 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[cees]]></category>
		<category><![CDATA[cees nooteboom]]></category>
		<category><![CDATA[historia siguiente]]></category>
		<category><![CDATA[metamorfosis]]></category>
		<category><![CDATA[muerte]]></category>
		<category><![CDATA[nooteboom]]></category>
		<category><![CDATA[onírico]]></category>
		<category><![CDATA[sueño]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=334</guid>
		<description><![CDATA[La historia siguiente
Cees Nooteboom
ISBN 84-7844-524-2
La novela inicia cuando Herman Mussert, un profesor se despierta en una habitación de un hotel en Lisboa.  Como la noche anterior se acostó en su casa en Amsterdam y él no ha hecho ningún viaje para amanecer en Lisboa se encuentra totalmente desconcertado, tanto que hasta llega a dudar si [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=334&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>La historia siguiente</p>
<p>Cees Nooteboom</p>
<p>ISBN 84-7844-524-2</p>
<p>La novela inicia cuando Herman Mussert, un profesor se despierta en una habitación de un hotel en Lisboa.  Como la noche anterior se acostó en su casa en Amsterdam y él no ha hecho ningún viaje para amanecer en Lisboa se encuentra totalmente desconcertado, tanto que hasta llega a dudar si no es ahora otra persona y que de alguna manera su mente y su cuerpo han sido intercambiados con los de otra persona que en ese mismo instante estará pasando por el mismo sentimiento de desconcierto.</p>
<p>Esta es una obra magistral de Nooteboom, admirablemente bien escrita.  Está llena de ideas, conceptos e ironías pero tan bien entrelazadas con la historia que la lectura de cada una de sus líneas resulta un verdadero placer.</p>
<p><em>La historia siguiente</em> es una novela donde me parece que Nooteboom habla directamente al lector, como si de una sobremesa se tratara.  Nos habla sobre la vida, sobre la metamorfosis y sobre todo habla sobre la historia siguiente &#8230; la historia que algún día nos tocará contar.</p>
Posted in Libros  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/334/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/334/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/334/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/334/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/334/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=334&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2008/10/25/la-historia-siguiente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>La Extraña</title>
		<link>http://karlmudespacher.wordpress.com/2008/10/25/la-extrana/</link>
		<comments>http://karlmudespacher.wordpress.com/2008/10/25/la-extrana/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 04:14:30 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[askenasi]]></category>
		<category><![CDATA[extraña]]></category>
		<category><![CDATA[Marai]]></category>
		<category><![CDATA[Sandor]]></category>
		<category><![CDATA[sandor marai]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=323</guid>
		<description><![CDATA[La Extraña
Sándor Márai
ISBN 978-84-9838-147-4
La novela nos sitúa en Dubrovnik, en plena época de calor y donde los burgueses de la época de la entreguerra se toman sus vacaciones.  Márai nos presenta el escenario de una manera práctica pero tan clara que casi podemos sentirnos también tomando las mismas vacaciones.  El protagonista se llama Viktor Askenasi, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=323&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>La Extraña</p>
<p>Sándor Márai</p>
<p>ISBN 978-84-9838-147-4</p>
<p>La novela nos sitúa en Dubrovnik, en plena época de calor y donde los burgueses de la época de la entreguerra se toman sus vacaciones.  Márai nos presenta el escenario de una manera práctica pero tan clara que casi podemos sentirnos también tomando las mismas vacaciones.  El protagonista se llama Viktor Askenasi, y es un profesor que ha dedicado casi toda su vida a descubrir el verdadero sentido de la felicidad de la vida a través del amor.</p>
<p>Askenasi vive atormentado ya que honestamente desea encontrar la felicidad, no le importa lo que la gente pueda decir, y mucho menos la sociedad que es impersonal.  Así que después de 15 años de matrimonio decide lanzarse a la búsqueda de la realización personal a través del amor, y esa búsqueda le ha llevado hasta este hotel en el Mediterráneo donde nos presenta una serie de argumentos sobre la realización, la moral y la sinceridad.  Viktor está totalmente obsesionado en encontrar la respuesta a una pregunta que le ha estado corroyendo lentamente la vida.  El clímax de la novela es también el de la vida de Viktor cuyo desenlace es su inevitable perdición.</p>
<p>La pregunta está en el aire &#8230; ¿cómo lograr esa realización?</p>
Posted in Libros  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/323/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/323/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/323/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/323/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/323/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/323/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/323/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/323/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/323/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/323/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=323&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2008/10/25/la-extrana/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>Hubo una vez una guerra</title>
		<link>http://karlmudespacher.wordpress.com/2008/10/25/hubo-una-vez-una-guerra/</link>
		<comments>http://karlmudespacher.wordpress.com/2008/10/25/hubo-una-vez-una-guerra/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 03:57:53 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[1943]]></category>
		<category><![CDATA[diario]]></category>
		<category><![CDATA[guerra]]></category>
		<category><![CDATA[segunda guerra mundial]]></category>
		<category><![CDATA[steinbeck]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=320</guid>
		<description><![CDATA[Hubo una vez una guerra
John Steinbeck
ISBN 84-358-8911-4
Este libro es una recolección de artículos periodísticos escritos por él durante la Segunda Guerra Mundial, publicados en el New York Herald Tribune durante 1943 que es el año en que Steinbeck hizo su servicio como corresponsal de guerra.  Los textos son curiosos porque para evitar dar pistas a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=320&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hubo una vez una guerra</p>
<p>John Steinbeck</p>
<p>ISBN 84-358-8911-4</p>
<p>Este libro es una recolección de artículos periodísticos escritos por él durante la Segunda Guerra Mundial, publicados en el <em>New York Herald Tribune</em> durante 1943 que es el año en que Steinbeck hizo su servicio como corresponsal de guerra.  Los textos son curiosos porque para evitar dar pistas a la inteligencia enemiga no detallan nombres de lugares ni personas, comienzan con oraciones como &#8220;<em>&#8230;En algún lugar de &#8230;</em>&#8221; y evitan ser sensacionalistas.</p>
<p>Tampoco muestran la realidad de la guerra en cuanto a la crudeza porque su objetivo era ser leídos por la sociedad que se encontraba en EEUU pero que tenía familiares y amigos en esa guerra.  Los textos sucedieron en Inglaterra, África e Italia.  No tienen el toque de Steinbeck que tanto me gusta por el que describe a las personas por sus pensamientos que finalmente se proyectan en su conducta, sino que son únicamente la descripción de un corresponsal de guerra.  Es importante decir que los textos fueron auditados y modificados por varios equipos dentro del ejército para que llegara al público una versión totalmente controlada por ellos.</p>
<p>Personalmente prefiero los diarios de guerra de Orwell -por parte de los aliados-, pero complementados con los diarios de Rommel -<em>Los años de Victoria </em>y <em>Los años de Derrota</em>- ya que contienen el punto de vista puro y sin modificaciones de sus autores, son totalmente objetivos de modo que no ridiculizan al enemigo sino que nos dan una visión completa de lo que vivieron los autores.  De ambos diarios el de Rommel es obviamente un diario desde las líneas de guerra puesto que el autor tenía información privilegiada y de primera mano, mientras que el de Orwell es desde el punto de vista de los civiles que también sufrieron la guerra.</p>
Posted in Libros  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/320/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=320&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2008/10/25/hubo-una-vez-una-guerra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>Otra vuelta de tuerca</title>
		<link>http://karlmudespacher.wordpress.com/2008/10/25/otra-vuelta-de-tuerca/</link>
		<comments>http://karlmudespacher.wordpress.com/2008/10/25/otra-vuelta-de-tuerca/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 03:45:12 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[fantasma]]></category>
		<category><![CDATA[henry james]]></category>
		<category><![CDATA[horror]]></category>
		<category><![CDATA[otra vuelta de tuerca]]></category>
		<category><![CDATA[terror]]></category>
		<category><![CDATA[tuerca]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=317</guid>
		<description><![CDATA[Otra vuelta de tuerca
Henry James
ISBN 84-9759-516-5
Con toda seguridad esta es la mejor novela de terror que he leído y es una de mis novelas favoritas.  Otra vuelta de tuerca es la lectura de una historia escrita por una institutriz en Inglaterra, ella es contratada para cuidar a dos niños que viven en un castillo junto [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=317&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Otra vuelta de tuerca</p>
<p>Henry James</p>
<p>ISBN 84-9759-516-5</p>
<p>Con toda seguridad esta es la mejor novela de terror que he leído y es una de mis novelas favoritas.  <em>Otra vuelta de tuerca </em>es la lectura de una historia escrita por una institutriz en Inglaterra, ella es contratada para cuidar a dos niños que viven en un castillo junto con todo el servicio.  Los niños son adorables pero necesitan una nueva institutriz debido a que la última institutriz y el anterior mayordomo murieron de una forma muy extraña.  Apenas llega la institutriz se da cuenta de que hay algo oculto y maligno que convive con los niños y que quiere hacerles daño.  Entre el cuerpo de servidumbre nadie sospecha siquiera que algo tan terrible acecha a los niños, salvo la institutriz que se entrega a descubrir la verdadera historia y también a proteger al niño y a la niña que le han sido encomendados.</p>
<p>La novela me atrapó de tal forma que la leí prácticamente en una sentada.  Definitivamente es un libro que tiene que leerse.</p>
Posted in Libros  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/317/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=317&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2008/10/25/otra-vuelta-de-tuerca/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>Despojos de Guerra</title>
		<link>http://karlmudespacher.wordpress.com/2008/10/25/despojos-de-guerra/</link>
		<comments>http://karlmudespacher.wordpress.com/2008/10/25/despojos-de-guerra/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 03:29:03 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[china]]></category>
		<category><![CDATA[corea]]></category>
		<category><![CDATA[despojos de guerra]]></category>
		<category><![CDATA[guerra]]></category>
		<category><![CDATA[ha jin]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=315</guid>
		<description><![CDATA[Despojos de Guerra
Ha Jin
ISBN 978-84-8310-379-1
Este libro es un testimonio de las experiencias del autor en la Guerra de Corea, él perteneció al Ejército Popular de Liberación chino y fue enviado a Corea del Norte a combatir contra los EEUU.  Como oficialmente China no envió gente a esa guerra y no quería tener conflictos con los [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=315&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Despojos de Guerra</p>
<p>Ha Jin</p>
<p>ISBN 978-84-8310-379-1</p>
<p>Este libro es un testimonio de las experiencias del autor en la Guerra de Corea, él perteneció al Ejército Popular de Liberación chino y fue enviado a Corea del Norte a combatir contra los EEUU.  Como oficialmente China no envió gente a esa guerra y no quería tener conflictos con los EEUU entonces enviaron a sus soldados con la consigna de que en caso de ser capturados entonces China los negaría y que ellos debían decir que habían ido de voluntarios a apoyar a Corea del Norte.  Como casi todos los civiles que se ven como soldados en una guerra, Ha Jin quiere únicamente regresar a su casa para estar con su prometida y con su mamá.  Pero desafortunadamente los líderes en las guerras son crueles y normalmente no piensan en sus países sino en fines más egoístas, así sucedió con Ha Jin.</p>
<p>Como Occidentales el tema de China puede parecernos mágico, pero después de todo también se trata de humanos, y en el caso de esta guerra los humanos fueron manipulados por gobernantes egoístas que usan a sus civiles, si son capturados los rechazan y los marcan permanentemente de modo que se convierten en &#8220;Despojos de Guerra&#8221;.</p>
<p>Finalmente el libro nos narra las incongruencias a las que los patriotas chinos -enviados a la guerra de Corea y capturados en ella- se ven expuestos, incongruencias por parte de su sociedad y gobiernos.</p>
<p>En pocas palabras el libro nos muestra a lo que puede llegar el ser humano cuando el fanatismo aparece en escena.</p>
<p>El libro fue premiado con el PEN/Faulkner Award, en mi opinión es un libro que puede leerse pero no es uno que sea indispensable de leer, recomiendo otros con más fondo como &#8220;Johnny cogió su fusil&#8221;.  Me parece que &#8220;Despojos de Guerra&#8221; es un libro sobrevendido por las siguientes razones</p>
<p>-es un testimonio de guerra como tanto gusta en los EEUU,</p>
<p>-presenta información sobre China a Occidente, y últimamente esto ha sido muy aceptado,</p>
<p>-es parte del reconocimiento global que últimamente se ha dado a éste país,</p>
Posted in Libros  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/315/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=315&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2008/10/25/despojos-de-guerra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>Interpretación de traces de Oracle (ejemplo)</title>
		<link>http://karlmudespacher.wordpress.com/2008/09/30/interpretacion-de-traces-de-oracle-ejemplo/</link>
		<comments>http://karlmudespacher.wordpress.com/2008/09/30/interpretacion-de-traces-de-oracle-ejemplo/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 00:00:58 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[access layer]]></category>
		<category><![CDATA[binary stack trace]]></category>
		<category><![CDATA[cache layer]]></category>
		<category><![CDATA[call stack trace]]></category>
		<category><![CDATA[capas]]></category>
		<category><![CDATA[compilation layer]]></category>
		<category><![CDATA[distribution execution]]></category>
		<category><![CDATA[execution layer]]></category>
		<category><![CDATA[generic layer]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[koudcon]]></category>
		<category><![CDATA[ksedmp]]></category>
		<category><![CDATA[ksedt]]></category>
		<category><![CDATA[layer]]></category>
		<category><![CDATA[lock management layer]]></category>
		<category><![CDATA[network program interface]]></category>
		<category><![CDATA[operating system dependencies]]></category>
		<category><![CDATA[ORA-07445]]></category>
		<category><![CDATA[oracle call interface]]></category>
		<category><![CDATA[oracle program interface]]></category>
		<category><![CDATA[query layer]]></category>
		<category><![CDATA[recursive program interface]]></category>
		<category><![CDATA[security layer]]></category>
		<category><![CDATA[services layer]]></category>
		<category><![CDATA[SIGBUS]]></category>
		<category><![CDATA[ssexhd]]></category>
		<category><![CDATA[transaction layer]]></category>
		<category><![CDATA[unknown code]]></category>
		<category><![CDATA[user program interface]]></category>
		<category><![CDATA[_sigreturn]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=308</guid>
		<description><![CDATA[Tuve un comentario de Yatel que me pareció muy interesante, se trataba de identificar un problema de soporte con un proceso que falló y generó un trace file.  La idea detrás es la de interpretar un archivo de trace mediante un método que pudiera además hacer uso de la información que publiqué en el post [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=308&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Tuve un comentario de Yatel que me pareció muy interesante, se trataba de identificar un problema de soporte con un proceso que falló y generó un trace file.  La idea detrás es la de interpretar un archivo de trace mediante un método que pudiera además hacer uso de la información que publiqué en el post <a href="http://karlmudespacher.wordpress.com/2008/09/02/capas-del-kernel-de-oracle/">Capas del Kernel de Oracle</a>.  Me pareció tan interesante que además de generar un comentario al post original decidí copiar su contenido a este nuevo post.</p>
<p>Y el comentario publicado dice así&#8230;</p>
<p>Gracias Yatel por enviarme el trace completo, voy a copiar lo que nos interesa para nuestro análisis.</p>
<p>Dentro del trace en la sección de los registros encontramos la misma dirección apuntada cuando se generó el evento SIGBUS cuando se estaba llamando la función koudcon().</p>
<p><code>*** SESSION ID:(17.28511) 2008-07-14 07:30:47.736<br />
Exception signal: 10 (SIGBUS), code: 0 (unknown code), addr: 0x800003ffbfec0000, PC: [0x4000000002be5a90, koudcon()+40]<br />
Registers:<br />
r1: 800003ffbfebffd0       r22:             7fff       sr4:          b6b5800<br />
rp: 4000000002be5a87      arg3:             7fff       sr0:          ac88c00<br />
r3: 800003ffbffff3c0      arg2:             7fff       sr1:                0<br />
r4:                0      arg1:                0       sr2:                0<br />
r5:                0      arg0: 800003ffbfebffff       sr3:                0<br />
r6:                1        dp: 8000000100112638       sr5:           395800<br />
r7: 8000000100160c38      ret0: 800003ffbfebffe8       sr6:          ea68400<br />
r8: c00000002effe903      ret1: 800003ffbffffa20       sr7:          ac88c00<br />
r9: 800003ffbfffd5c8        sp: 800003ffbffff850       cr0:    1000000000001<br />
r10:               3f       r31: 800003ffbfec0000       cr8: fffffffffc071000<br />
r11: 800003ffbfffd588       sar:               10       cr9:                0<br />
r12: 800003ffbfffd584     pcoqh: 4000000002be5a93       ccr:          92ba0c0<br />
r13:                4     pcsqh:           395800      cr12:          92ba1c0<br />
r14: 800003ffbfea8020     pcoqt: 4000000002be5a97      cr13:          8211e00<br />
r15: 800003ffbfea7fb0     pcsqt:           395800      cr24:                0<br />
r16: 800003ffbfea6ec0      eiem: ffffffffffffffff      cr25:          81dcb20<br />
r17: 800003ffbfea6ee8       iir:          f403342      cr26:                1<br />
r18:                e       isr:          ea68400  mpsfu_hi: 800003ffbfee1408<br />
r19: 800000010018df28       ior: 800003ffbfec0000  mpsfu_lo:         95c56000<br />
r20:               30      ipsw:          8040e0f  mpsfu_ov:          9d65e00<br />
r21: 10b38f0000000001      goto:          81bb84c       pad:     c0b3b87ba36b</code></p>
<p>De modo que la dirección pertenece a una variable de tipo bind.<br />
Más adelante en el trace aparece la sentencia que generó el error.</p>
<p><code>SELECT  RDM.ITEM_ID ARTICULO3,<br />
RDM.STD_CASEPACK CASEPACKRDM3,<br />
RMS.SUPP_PACK_SIZE CASEPACKRMS3<br />
FROM     ITEM_MASTER RDM,<br />
RMS100.ITEM_SUPP_COUNTRY@FCRMSPRD RMS,<br />
RMS100.ITEM_LOC@FCRMSPRD RMS1<br />
WHERE RDM.ITEM_ID                        = RMS.ITEM<br />
AND       RMS.ITEM                              = RMS1.ITEM<br />
AND       RMS.SUPPLIER                     = RMS1.PRIMARY_SUPP<br />
AND       RMS.ORIGIN_COUNTRY_ID = RMS1.PRIMARY_CNTRY<br />
AND       RMS1.LOC_TYPE                   = 'W'<br />
AND       RMS1.LOC                              = <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> _CEDIS<br />
AND       RMS.PRIMARY_SUPP_IND   = 'Y'<br />
AND       RDM.STD_CASEPACK           RMS.SUPP_PACK_SIZE<br />
AND       <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> _PARAMETRO3                  = 'Y'</code></p>
<p>Inmediatamente después aparece la sección del stack<br />
<code>----- Call Stack Trace -----<br />
calling              call     entry                argument values in hex<br />
location             type     point                (? means dubious value)<br />
-------------------- -------- -------------------- ----------------------------<br />
ksedmp()+184         ?        ksedst()             800003FFBFFFD588 ?<br />
800003FFBFFFF8B0 ?<br />
34FF8BEC349DB6 ?<br />
8000000100112638 ?<br />
ssexhd()+636         ?        ksedmp()             40000000016F11F7 ?<br />
800003FFBFFFD540 ?<br />
C0000000001A130B ?<br />
800003FFBFFFFE18 ?<br />
_sigreturn()+0       ?        ssexhd()             0092BA0C0 ? 000000000 ?<br />
00F403342 ?<br />
800003FFBFFFF850 ?<br />
koudcon()+40         ?        _sigreturn()         000000000 ? 000000000 ?<br />
000000000 ? 000000000 ?<br />
kodmcon()+564        ?        koudcon()            000000000 ? 000000000 ?<br />
00000000E ? 00000003F ?<br />
kokorsc()+964        ?        kodmcon()            000000000 ? 000000000 ?<br />
.....</code></p>
<p>kksald()+344         ?        opiprs()             800000010011EDC0 ?</p>
<p>&#8230;..</p>
<p>main()+228           ?        sou2o()              000000000 ?<br />
C00000000020BB4B ?<br />
000000002 ? 0680F0A9F ?<br />
$START$()+160        ?        main()               0680F0771 ? 000000000 ?<br />
000000001 ?<br />
800003FFBFFF08AB ?</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; Binary Stack Dump &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Dado que es un stack (pila) leeremos la sección desde la primer línea que aparece pero teniendo en mente que estamos leyendo a partir de la última función ejecutada hasta la primer función ejecutada (cuando no se generaba el problema, incluso cuando se inició la sesión) que corresponde a main().</p>
<p>De este modo la última función es<br />
ksedmp()          función para preparar dumps dentro de la capa de servicios (Services Layer)<br />
ssexhd()          función dentro de la capa de servicios del sistema operativo (Operating System Dependencies)<br />
_sigreturn()      función que regresa la señal enviada por el sistema operativo después de ser llamado<br />
koudcon()         función en la que se presenta el error (como ya lo había notificado el RDBMS)</p>
<p><code>*** SESSION ID:(17.28511) 2008-07-14 07:30:47.736<br />
Exception signal: 10 (SIGBUS), code: 0 (unknown code), addr: 0×800003ffbfec0000, PC: [0x4000000002be5a90, koudcon()+40]</code></p>
<p>Así que tenemos un trace que nos muestra una sesión que ejecuta lo siguiente<br />
1) compilación de SQL.  Lo que significa que dicho código no había sido ejecutado anteriormente (función kksald()),</p>
<p>2) no aparece una capa KX de ejecución pero sí aparecen las capas de acceso al sistema operativo. Para resolver el SQL Oracle necesita acceder a una dirección de memoria (Oracle solicita al sistema operativo el contenido de la dirección independientemente de si éste se encuentra en memoria o si ha sido enviado a la memoria virtual),</p>
<p>3) ejecución de la función koudcon(), otra función propia del RDBMS de Oracle, que solicita la lectura de lo que se encuentra en la dirección 0×800003ffbfec0000,</p>
<p>4) el sistema operativo regresa un error porque la dirección compartida (el sistema operativo es Unix) no tiene privilegios de acceso por parte del usuario oracle o bien porque no existe nada en dicha dirección,</p>
<p>5) el error se notifica a la función ssexhd()* desde el sistema operativo, esta es una función propia del RDBMS y se encuentra en las librerías<br />
<code>./libserver11.a<br />
./libagtsh.so.1.0<br />
./libagtsh.so<br />
./libagent11.a<br />
./libgeneric11.a<br />
./liborasdk.so.11.1<br />
./libclntsh.so<br />
./libclntsh.so.11.1<br />
./libclntsh.so.10.1<br />
./liborasdk.so</code></p>
<p>6) la función ssexhd() debe de tener una sección para el manejo de excepciones y es precisamente en esta parte de su código donde se ejecuta la función ksedmp() de la capa KS (Services Layer) que es la que finalmente se encarga de generar las entradas en<br />
-alert log<br />
-salida estándar de la sesión que tuvo el problema<br />
-el trace file (incluída su generación)</p>
<p>Finalmente tengo un par de comentarios.</p>
<p>A. Dado que el error se presenta en cierta dirección de memoria para un pedazo de código que se ejecuta muy frecuentemente (en las capas KK, S y KX) no creo que el error sea repetible y no es precisamente este SQL el que tendrá siempre problemas. El usuario final puede ejecutar nuevamente su proceso, pero dado que hay un problema de direccionamiento y/o cálculo de las direcciones donde se almacenan datos el problema estará latente y otro proceso será impactado. La situación que presentas es un bug.</p>
<p>B. Es muy importante revisar el resto de los traces cuando éstos se presentan, en el trace dentro del “Binary Stack Dump” hay siempre información relevante. En el resto de los logs (incluída la salida estándar) dice</p>
<p><code>ksedmp: internal or fatal error<br />
ORA-07445: exception encountered: core dump [koudcon()+40] [SIGBUS] [unknown code] [0x800003FFBFEC0000] [] []</code></p>
<p>Pero en el trace file aparece lo siguiente</p>
<p><code>.....<br />
800003FFC0000920 004F5241 2D303734 34353A20 65786365  [.ORA-07445: exce]<br />
800003FFC0000930 7074696F 6E20656E 636F756E 74657265  [ption encountere]<br />
800003FFC0000940 643A2063 6F726520 64756D70 205B6B6F  [d: core dump [ko]<br />
800003FFC0000950 7564636F 6E28292B 34305D20 5B534947  [udcon()+40] [SIG]<br />
800003FFC0000960 4255535D 205B756E 6B6E6F77 6E20636F  [BUS] [unknown co]<br />
800003FFC0000970 64655D20 5B307838 30303030 33464642  [de] [0x800003FFB]<br />
800003FFC0000980 46454330 3030305D 205B5D20 5B5D0A00  [FEC0000] [] []..]<br />
…..</code></p>
<p>que es información nueva para el administrador si éste se guía únicamente por la información humanamente legible en los otros logs. Aquí nos dice claramente que existe un evento del sistema operativo SIGBUS (en otro lugar con el tipo 10), con esta información podemos acceder a la nota 211909.1 -que no transcribiré aquí- que nos explica con mucho menor detalle lo que expliqué en este comentario.</p>
<p>Notas:</p>
<p>*La función ssexhd() pertenece al RDMS por lo que tiene que ser portable con distintos sistemas operativos, es por ello que Oracle Corporation nos dice que los mensajes arrojados por esta función pueden variar dependiendo del sistema operativo sobre el que se instaló el RDBMS.</p>
Posted in Oracle  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/308/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/308/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/308/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/308/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/308/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/308/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/308/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/308/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/308/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/308/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=308&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2008/09/30/interpretacion-de-traces-de-oracle-ejemplo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>Caos Calmo</title>
		<link>http://karlmudespacher.wordpress.com/2008/09/30/caos-calmo/</link>
		<comments>http://karlmudespacher.wordpress.com/2008/09/30/caos-calmo/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 15:27:14 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[caos calmo]]></category>
		<category><![CDATA[duelo]]></category>
		<category><![CDATA[veronesi]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=301</guid>
		<description><![CDATA[Sandro Veronesi
ISBN 978-84-339-7469-3
El tema de la novela inicia cuando Pietro que está de vacaciones en la playa salva de ahogarse a una mujer, mientras tanto su prometida, con quien ha vivido ya varios años y con quien tiene una hija, que se quedó en casa muere.  Pietro inicia un duelo por su mujer y se [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=301&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Sandro Veronesi</p>
<p>ISBN 978-84-339-7469-3</p>
<p>El tema de la novela inicia cuando Pietro que está de vacaciones en la playa salva de ahogarse a una mujer, mientras tanto su prometida, con quien ha vivido ya varios años y con quien tiene una hija, que se quedó en casa muere.  Pietro inicia un duelo por su mujer y se toma bastante tiempo para analizar las cosas, así el libro es una serie de pensamientos sobre el dolor, sobre los demás, pero poco sobre sí mismo.  Mientras pasa el tiempo aparecen otros personajes que comparten con Pietro su dolor, no el dolor de Pietro ni el concepto general de dolor sino que hacen partícipe a Pietro del su propio dolor.  De este modo Veronesi nos presenta a un personaje que en cierta forma se hace un experto en el dolor social, ese dolor que se encrudece al no poder ser compartido con los demás porque no es social o bien empresarialmente correcto compartirlo.</p>
<p>La idea de Veronesi es buena pero la novela trascurre de una manera lenta, pesada, de esas novelas que termino de leer por disciplina pero que incluso al terminar de hacerlo un sentimiento de vanalidad y de pérdida de tiempo me llenan.  Veronesi bien pudo haber transmitido su idea en una quinta parte del tiempo que se tarda en leer la novela.</p>
<p>Una buena novela debe de ser concisa, de atrapar al lector, emocionarlo e incluso enfrentarlo ya sea mediante su imaginación o su intelecto.  Las buenas novelas son las que al cerrarlas la mente sigue dentro de la novela, hasta a veces apesadumbrada porque ésta ha terminado.</p>
<p>Después de haberme llevado la desilusión con la novela y antes de escribir este post quise ver qué decía la gente sobre ella.  Encontré pocos comentarios sobre el libro aunque muchos sobre la película -que no he visto-, en cuanto a los comentarios sobre el libro unos dos favorables además de los publicados por Anagrama en la contraportada del libro.</p>
<p>Para el caso de esta novela me parece que está rodeada de mercadotecnia, si se le pide a una persona que escriba favorablemente sobre una novela para escribir sus comentarios en la contraportada es obviamente porque la editorial quiere que la novela se venda.  Desafortunadamente hasta detrás de estos comentarios se encuentra el lucro y el lector se lleva malos sabores de boca.</p>
<p>Alguien me podrá decir que Sandro Veronesi ganó con esta novela el premio Strega.  Existen muchos premios en Italia por lo que ésto no es necesariamente una garantía.  De cualquier manera es una novela que no me gustó y que tampoco recomiendo.</p>
Posted in Libros  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/301/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/301/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/301/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/301/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/301/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/301/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=301&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2008/09/30/caos-calmo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>El corazón de las tinieblas</title>
		<link>http://karlmudespacher.wordpress.com/2008/09/06/el-corazon-de-las-tinieblas/</link>
		<comments>http://karlmudespacher.wordpress.com/2008/09/06/el-corazon-de-las-tinieblas/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 04:23:45 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[conrad]]></category>
		<category><![CDATA[corazón]]></category>
		<category><![CDATA[joseph conrad]]></category>
		<category><![CDATA[Marlow]]></category>
		<category><![CDATA[tinieblas]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=269</guid>
		<description><![CDATA[El corazón de las tinieblas
Joseph Conrad
ISBN 978-84830-7530-2 
De la vastísima obra de Conrad ésta es mi favorita, concisa, profunda, inteligente y bella.  Así es &#8220;El corazón de las tinieblas&#8221;.
La novela es otro relato de Marlow, un marinero experto elegido por Conrad en varios de sus libros como narrador.  Marlow aparece en varias obras de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=269&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>El corazón de las tinieblas</p>
<p>Joseph Conrad</p>
<p>ISBN <span class="tit_ficha2">978-84830-7530-2 </span></p>
<p>De la vastísima obra de Conrad ésta es mi favorita, concisa, profunda, inteligente y bella.  Así es &#8220;El corazón de las tinieblas&#8221;.</p>
<p>La novela es otro relato de Marlow, un marinero experto elegido por Conrad en varios de sus libros como narrador.  Marlow aparece en varias obras de Conrad, &#8220;Lord Jim&#8221;, &#8220;Juventud&#8221;, &#8220;Azar&#8221; y en &#8220;El corazón de las tinieblas&#8221;.</p>
<p>Marlow nos cuenta su historia de joven, cuando estaba en busca de trabajo por el que pudiera conocer el mundo.  Acaba firmando su contrato en una ciudad, Marlow no da su nombre pero la descripción parece ser la de Bruselas, el contrato es para ir a buscar a un agente para el tráfico de Marfil en el Congo.  Se trata de Kurtz que es por mucho el mejor agente que haya habido para el tráfico de este material, el marino finalmente llega al Congo y se embarca nuevamente para llegar hasta el centro de operaciones de Kurtz.  A quien le pregunte le responde maravillas de Kurtz de modo que éste llega a ser un tipo de modelo incluso para el lector, pero mientras más se acerca a Kurtz y a su centro de operaciones se da cuenta que las cosas son muy distintas.  Kurtz es un criminal &#8230;</p>
<p>Esta novela es una obra maestra que nos plantea aquél dicho de &#8220;el fin justifica los medios&#8221;, ¿realmente es así?   Conrad nos muestra un sistema que incluyen a Kurtz, a la empresa y a la misma sociedad contrapuestos a las victimas en el Congo, con el único fin de generar riqueza.</p>
<p>Dos preguntas para el lector una vez que haya terminado el libro,</p>
<p>¿cuáles son las tinieblas a las que se refiere Conrad?</p>
<p>¿le miente Marlow a la novia de Kurtz cuando le refiere sus últimas palabras?</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/karlmudespacher.wordpress.com/269/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/karlmudespacher.wordpress.com/269/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/269/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/269/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/269/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/269/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/269/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/269/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=269&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2008/09/06/el-corazon-de-las-tinieblas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
		<item>
		<title>El negro del &#8220;Narcissus&#8221;</title>
		<link>http://karlmudespacher.wordpress.com/2008/09/06/el-negro-del-narcissus/</link>
		<comments>http://karlmudespacher.wordpress.com/2008/09/06/el-negro-del-narcissus/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 04:04:14 +0000</pubDate>
		<dc:creator>karlmudespacher</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[conrad]]></category>
		<category><![CDATA[joseph conrad]]></category>
		<category><![CDATA[narcissus]]></category>

		<guid isPermaLink="false">http://karlmudespacher.wordpress.com/?p=255</guid>
		<description><![CDATA[El negro del &#8220;Narcissus&#8221;
Joseph Conrad
ISBN 970-07-3239-8
Conrad es un maestro en la novela psicológica, la logra cuando expone a sus personajes a situaciones límites que se desarrollan en las aventuras que narra.  En esta joya nos presenta la historia que se desarrolla a bordo de un velero, el Narcissus, en un viaje desde la India hasta [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=255&subd=karlmudespacher&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>El negro del &#8220;Narcissus&#8221;</p>
<p>Joseph Conrad</p>
<p>ISBN 970-07-3239-8</p>
<p>Conrad es un maestro en la novela psicológica, la logra cuando expone a sus personajes a situaciones límites que se desarrollan en las aventuras que narra.  En esta joya nos presenta la historia que se desarrolla a bordo de un velero, el Narcissus, en un viaje desde la India hasta Inglaterra.  Nos presenta a los marinos, un mosáico de personalidades, desde la inicial apariencia que pretenden dar al momento de embarcarse hasta el desenmascaramiento de su verdadera personalidad, a través de la experiencia de la convivencia diaria y de situaciones difíciles.</p>
<p>El &#8220;negro del Narcissus&#8221; se llama James Wait, un coloso que se embarca en el último momento, es realmente un tirano, experto en la manipulación, una persona odiosa a la que todos le acaban teniendo cierto miedo.  Existen pocos autores que han hecho que como lector acabe odiando a cierto personaje, y Conrad es uno de dichos autores.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/karlmudespacher.wordpress.com/255/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/karlmudespacher.wordpress.com/255/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/karlmudespacher.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/karlmudespacher.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/karlmudespacher.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/karlmudespacher.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/karlmudespacher.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/karlmudespacher.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/karlmudespacher.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/karlmudespacher.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/karlmudespacher.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/karlmudespacher.wordpress.com/255/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=karlmudespacher.wordpress.com&blog=2428566&post=255&subd=karlmudespacher&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://karlmudespacher.wordpress.com/2008/09/06/el-negro-del-narcissus/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/846801252039ff35bc472f0867f3646b?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">karlmudespacher</media:title>
		</media:content>
	</item>
	</channel>
</rss>