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

<channel>
	<title>intraEmprendedor.com &#187; vistas</title>
	<atom:link href="http://www.intraemprendedor.com/tag/vistas/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.intraemprendedor.com</link>
	<description></description>
	<lastBuildDate>Thu, 19 Jan 2012 15:40:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Vistas materializadas for dummies, what the hell?</title>
		<link>http://www.intraemprendedor.com/2009/11/12/vistas-materializadas-for-dummies-what-the-hell/</link>
		<comments>http://www.intraemprendedor.com/2009/11/12/vistas-materializadas-for-dummies-what-the-hell/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 14:21:42 +0000</pubDate>
		<dc:creator>intraemprendedor</dc:creator>
				<category><![CDATA[Negocios]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[base de datos]]></category>
		<category><![CDATA[BI]]></category>
		<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[cubos]]></category>
		<category><![CDATA[datawarehouse]]></category>
		<category><![CDATA[DB]]></category>
		<category><![CDATA[vistas]]></category>

		<guid isPermaLink="false">http://www.intraemprendedor.com/?p=307</guid>
		<description><![CDATA[No creo ser la persona más capacitada para hablar de las vistas materializadas (materialized views), pero como me llamó la atención el tema lo haré, con el apoyo de algunos artículos y quizá mi amigo Pablo López de Guadalajara pueda complementar algo más tarde. De manera introductoria les diré, que los tiempos como resultado de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.intraemprendedor.com/wp-content/uploads/2009/11/datawarehouse.jpg"><img class="alignleft size-full wp-image-308" title="datawarehouse" src="http://www.intraemprendedor.com/wp-content/uploads/2009/11/datawarehouse.jpg" alt="" width="373" height="255" /></a>No creo ser la persona más capacitada para hablar de las vistas materializadas (<em>materialized views</em>), pero como me llamó la atención el tema lo haré, con el apoyo de algunos artículos y quizá mi amigo Pablo López de Guadalajara pueda complementar algo más tarde. <span id="more-307"></span></p>
<p>De manera introductoria les diré, que los tiempos como resultado de usar vistas materializadas en un proyecto donde teníamos reportes con consultas (queries) que duraban hasta más de 1 minuto, se redujeron a segundos.<br />
<script type="text/javascript"><!--
google_ad_client = "pub-9957519081964656";
google_ad_channel = "intraemprendedor.com";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al_s";
google_alternate_ad_url = "http://www.mangohosting.com/es/index.php";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "0000FF";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
En un Sistema de base de datos relacional (RDBMS) una vista es una tabla virtual que representa el resultado de un Query.  Siempre que se consulta o se actualiza una vista normal, el RDBMS convierte estas operaciones en queries o actualizaciones de las tablas usadas para definir la vista.</p>
<p>Una <strong>vista materializada</strong> utiliza una enfoque diferente, ya que el resultado de la consulta se almacena en una tabla cache real, que será actualizada de forma periódica a partir de las tablas originales. Esto proporciona un acceso mucho más eficiente, a costa de un incremento en el tamaño de la base de datos y a una posible falta de sincronía, es decir, que los datos de la vista pueden estar potencialmente desfasados con respecto a los datos reales.</p>
<p>Esto es una solución muy utilizada en entornos de Datawarehousing donde el acceso frecuente a las tablas fuente resulta demasiado lento.</p>
<p>Además, dado que la vista se almacena como una tabla real, se puede hacer con ella lo mismo que con cualquier otra tabla, siendo especialmente importante la capacidad de crear indices en cualquier columna, lo cual puede aumentar significativamente la velocidad de las consultas.</p>
<p>En una vista normal, lo más común es que sólo se permita utilizar índices sobre aquellas columnas que ya tienen definido un índice en la tabla original; a veces ni siquiera se ofrece esa posibilidad.</p>
<p>Una sentencia típica de SQL para definir una Vista materializada:</p>
<p>CREATE MATERIALIZED VIEW nombre_vista<br />
[TABLESPACE nombre_ts]<br />
[PARALELL (DEGREE n)]<br />
[BUILD {INMEDIATE|DEFERRED}]<br />
[REFRESH {FAST|COMPLETE|FORCE|NEVER}|{ON COMMIT|ON DEMAND|[START WITH fecha_inicio] NEXT intervalo}]<br />
[{ENABLE|DISABLE} QUERY REWRITE]<br />
AS SELECT &#8230; FROM &#8230; WHERE &#8230;</p>
<p align="left">Con la <em>sentencia BUILD</em> se establece la forma de carga      de datos en la vista. Con la opción <em>INMEDIATE</em> (opción      por defecto) se cargarán los datos justo después de crear la      vista, mientras que con la opción <em>DEFERRED</em> se definirá      la vista cuando se ejecute la sentencia <em>SQL</em> sin cargar ningún      dato, que se cargarán cuando se realize el primer refresh de la vista.</p>
<p align="left">Con la palabra <em>REFRESH</em> definimos el método y      la frecuencia de actualización de los datos.</p>
<p align="left">La palabra <em>QUERY REWRITE</em> establece si queremos que      el <strong>optimizador</strong> de nuestra base de datos pueda reescribir      las consultas. El optimizador, sabiendo que ya existe una determinada vista      materializada, puede modificar internamente nuestra consulta sobre una determinada      tabla, de tal forma que se mejore el rendimiento de la consulta devolviendo      los mismos datos que la consulta original.</p>
<p>En el proyecto en cuestión, la base  de datos es DB2, aunque diversos gestores de base de datos cuentan con esta funcionalidad. De hecho el RDBMS que lo introdujo fue Oracle.<script type="text/javascript"><!--
google_ad_client = "pub-9957519081964656";
google_ad_channel = "intraemprendedor.com";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al_s";
google_alternate_ad_url = "http://www.mangohosting.com/es/index.php";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "0000FF";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intraemprendedor.com/2009/11/12/vistas-materializadas-for-dummies-what-the-hell/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

