miércoles, 25 de mayo de 2011

Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack

Se han topado alguna vez con este engorroso error??

Esto aparece cuando utilizamos los métodos Response.End, Response.Redirect o Server.Transfers, en estos métodos se produce una excepción de tipo ThreadAbortException que puede ser capturada con un try-catch.

Solución:

Para Response.End utilizar HttpContext.Current.ApplicationInstance.CompleteRequest en lugar de Response.End.

Para Response.Redirect llamarlo de la siguiente forma Response.Redirect(String url, bool endResponse) enviando false en el parámetro endResponse, por ejemplo:

Response.Redirect("siguientePagina.aspx", false);

Para Server.Transfer usar en lugar de este método, este otro: Server.Execute.

Espero esta información pueda serles de utilidad.

Como crear un indice en oracle increiblemente rapido

Esto aplica mas que todo en un datawarehouse, si quiere que un indice en una tabla que contiene millones de filas se cree mucho mas rapido ejecuten este comando antes de crear el indice:
alter session set sort_area_size=400000
Luego ejecuten el indice, en las veces que he utilizado el comando el indice se crea hasta 5 veces mas rapido que sin utilizar el comando. Adicionalmente asegurense de utilizar paralelismo para crear el indice. El paralelismo solo funciona en la version enterprise de oracle.