<?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>MetodoPHP</title>
	<atom:link href="http://metodophp.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://metodophp.com</link>
	<description>Tips de programación y base de datos</description>
	<lastBuildDate>Thu, 12 Jul 2012 14:00:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Tips de Optimización para Transact SQL</title>
		<link>http://metodophp.com/tips-de-optimizacion-para-transact-sql/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tips-de-optimizacion-para-transact-sql</link>
		<comments>http://metodophp.com/tips-de-optimizacion-para-transact-sql/#comments</comments>
		<pubDate>Thu, 12 Jul 2012 14:00:37 +0000</pubDate>
		<dc:creator>luebsgrafic</dc:creator>
				<category><![CDATA[Transact-SQL]]></category>
		<category><![CDATA[procedimiento almacenado]]></category>
		<category><![CDATA[procedure storage]]></category>
		<category><![CDATA[sp]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://metodophp.com/?p=42</guid>
		<description><![CDATA[Incluir siempre la sentencia SET NOCOUNT ON en los procedimientos almacenados. Así evitamos los mensajes de registros afectados por la instrucción SQL, reduciendo el tráfico de la Red. Llamar a los procedimientos almacenados usando su identificador completo, que consiste en &#8230; <a href="http://metodophp.com/tips-de-optimizacion-para-transact-sql/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_43" class="wp-caption alignleft" style="width: 85px"><a href="http://metodophp.com/wp-content/uploads/2012/07/transact-SQL.gif"><img class="size-full wp-image-43" title="transact-SQL" src="http://metodophp.com/wp-content/uploads/2012/07/transact-SQL.gif" alt="transact-SQL" width="75" height="75" /></a><p class="wp-caption-text">Logo Transact-SQL</p></div>
<p><strong>Incluir siempre la sentencia</strong> <strong>SET NOCOUNT ON en los procedimientos almacenados</strong>. Así evitamos los mensajes de registros afectados por la instrucción SQL, reduciendo el tráfico de la Red.</p>
<p><strong>Llamar a los procedimientos almacenados usando su identificador completo, </strong>que consiste en 4 indentificadores: nombre del servidor, nombre de la base de datos, nombre del esquema y nombre del objeto.</p>
<p><strong>Dividir un procedimiento almacenado muy largo, en varios sub-procedimientos, y llamarlos desde el procedimiento principal. </strong>Los procedimientos son recompilados cuando hay un cambio en la estructura de una tabla o vista que es referenciada por el procedimiento, o cuando un numero largo de INSERTS, UPDATES o DELETES son hechos para una tabla referenciada por el procedimiento. Pero si tu dividiste el procedimiento grande en varios sub-procedimientos, cuando haya un cambio solo se recompilara el sub-procedimiento que hace referencia al objeto cambiado, en cambio los otros sub-procedimientos no seran recompilados.</p>
<p><strong>Usar alias para identificar las tablas usadas en los procedimientos,</strong> así también agregar siempre el nombre de esquema al que pertenecen los objetos de base de datos usados en el procedimiento almacenado.</p>
<p><strong> </strong><strong>Evitar usar cursores dentro de un procedimiento almacenado. </strong>SQL Server no esta pensado y optimizado para trabajar con cursores, sino para trabajar con conjuntos de datos, usando variables de tabla temporal el rendimiento mejora notablemente.</p>
<p><strong>Evitar el uso de tablas temporales dentro de los procedimientos almacenados. </strong>Al crear una tabla temporal se obtienen bloqueos sobre la tempdb, bloqueos que afectan a todo el servidor, además al crear una tabla temporal se tiene acceso de escritura al disco, lo mismo sucede cuando se inserta datos en la tabla o cuando la eliminamos, reduciendo drásticamente el rendimiento del procedimiento.</p>
<p><strong>Utilizar variables de tabla en lugar de tablas temporales. </strong>Además de lo ya mencionado, las variables de tabla producen menos recompilaciones de los procedimientos almacenados, las variables de tabla no necesitan de bloqueos ni de tantos recursos como las tablas temporales ademas de que las variables de tabla apuntan a estructuras de memoria no necesitando operaciones de escritura en disco.</p>
<div class="twttr_button">
				<a href="http://twitter.com/share?url=http://metodophp.com/tips-de-optimizacion-para-transact-sql/&text=Tips de Optimización para Transact SQL" target="_blank" title="Click here if you liked this article.">
					<img src="http://metodophp.com/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
				</a>
			</div>]]></content:encoded>
			<wfw:commentRss>http://metodophp.com/tips-de-optimizacion-para-transact-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tips, trucos CakePHP</title>
		<link>http://metodophp.com/tips-trucos-cakephp/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tips-trucos-cakephp</link>
		<comments>http://metodophp.com/tips-trucos-cakephp/#comments</comments>
		<pubDate>Wed, 11 Jul 2012 17:15:27 +0000</pubDate>
		<dc:creator>luebsgrafic</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[paginate]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[trucos]]></category>

		<guid isPermaLink="false">http://metodophp.com/?p=25</guid>
		<description><![CDATA[Aquí pongo algunos Tips para recordar al programar con CakePHP. &#160; &#160; &#160; &#160; Desde un controlador: Cambiar el layout $this-&#62;layout = 'nombre_del_layout'; Cambiar la cantidad de resultados del paginador // Definirlo como atributo del controlador y no dentro de &#8230; <a href="http://metodophp.com/tips-trucos-cakephp/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_35" class="wp-caption alignleft" style="width: 160px"><a href="http://metodophp.com/wp-content/uploads/2012/07/cakephp_logo.png"><img class="size-thumbnail wp-image-35" title="cakephp_logo" src="http://metodophp.com/wp-content/uploads/2012/07/cakephp_logo-150x150.png" alt="Logo CakePHP" width="150" height="150" /></a><p class="wp-caption-text">Logo CakePHP</p></div>
<p>Aquí pongo algunos Tips para recordar al programar con CakePHP.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Desde un controlador:</strong></p>
<p>Cambiar el layout</p>
<pre>$this-&gt;layout = 'nombre_del_layout';</pre>
<p><strong>Cambiar la cantidad de resultados del paginador</strong></p>
<pre>// Definirlo como atributo del controlador y no dentro de un metodo.
var $paginate = array('limit'=&gt; 1000);</pre>
<p><strong>Obtener uno o todos los parametros que vienen por la URL</strong></p>
<pre>echo $this-&gt;params['nombre-del-parametro'];
//La funcion pr es similar a print_r aunque con mas estilo
pr($this-&gt;params);</pre>
<p><strong>Activar el conector con la base de datos</strong></p>
<p><span style="text-decoration: underline; color: #ff0000;"><strong>Esta práctica atenta contra el modelo MVC, por lo cual, si lo usas debe ser en casos muy aislados.</strong></span></p>
<pre>// Agregarlo antes de la definicion de Class...
uses('model/connection_manager'); 

// dentro de un modelo del controlador
$db = &amp; ConnectionManager::getDataSource('default');
$db-&gt;query('Select * from X');</pre>
<p><strong>Redireccion a X lugar</strong></p>
<p>Para mantener el controlador y solo redireccionar el metodo:</p>
<pre>$this-&gt;redirect(array('action'=&gt;'index'));</pre>
<p><strong>Para cambiar el controlador y el metodo</strong></p>
<pre>$this-&gt;redirect(array('controller' =&gt; 'users','action'=&gt;'index'));</pre>
<p>Al utilizar el array como parametro, se aplica la Inversa del ROUTES, por ende, si defines que el users/index sea usuarios.html, entonces, la redireccion va a ser contra usuarios.html.</p>
<div class="twttr_button">
				<a href="http://twitter.com/share?url=http://metodophp.com/tips-trucos-cakephp/&text=Tips, trucos CakePHP" target="_blank" title="Click here if you liked this article.">
					<img src="http://metodophp.com/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
				</a>
			</div>]]></content:encoded>
			<wfw:commentRss>http://metodophp.com/tips-trucos-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Url amigables Drupal 7 en hosting 1and1</title>
		<link>http://metodophp.com/url-amigables-drupal-7-en-hosting-1and1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=url-amigables-drupal-7-en-hosting-1and1</link>
		<comments>http://metodophp.com/url-amigables-drupal-7-en-hosting-1and1/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 16:20:43 +0000</pubDate>
		<dc:creator>luebsgrafic</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[1and1]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[drupal 7]]></category>
		<category><![CDATA[problemas]]></category>
		<category><![CDATA[url amigables]]></category>

		<guid isPermaLink="false">http://metodophp.com/?p=1</guid>
		<description><![CDATA[Esta entrada es por el problema que tuve con las url amigables que no funcionaban  al subir un proyecto en Drupal 7 en un hosting de 1and1 . Despues de darle vueltas encontré la solución, está en descomentar una linea &#8230; <a href="http://metodophp.com/url-amigables-drupal-7-en-hosting-1and1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Esta entrada es por el problema que tuve <strong>con las url amigables que no funcionaban</strong>  al subir un proyecto en <a title="Drupal 7" href="http://drupal.org" target="_blank">Drupal 7</a> en un hosting de <a title="1and1" href="http://www.1and1.es" target="_blank">1and1</a> .</p>
<p>Despues de darle vueltas encontré la solución, está en descomentar una linea del fichero .htaccess</p>
<p>Codigo original de la linea 104:</p>
<pre># RewriteBase /</pre>
<p>La sustituimos por esta, que simplemente es descomentar la linea:</p>
<pre>RewriteBase /</pre>
<p>Con esto solucionamos el problema de las url amigables en <strong>Drupal 7</strong> con <strong>1and1</strong></p>
<div class="twttr_button">
				<a href="http://twitter.com/share?url=http://metodophp.com/url-amigables-drupal-7-en-hosting-1and1/&text=Url amigables Drupal 7 en hosting 1and1" target="_blank" title="Click here if you liked this article.">
					<img src="http://metodophp.com/wp-content/plugins/twitter-plugin/images/twitt.gif" alt="Twitt" />
				</a>
			</div>]]></content:encoded>
			<wfw:commentRss>http://metodophp.com/url-amigables-drupal-7-en-hosting-1and1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
