Categorias
banco de dados desempenho dicas sql server

Problemas de cache no SQL Server

Se voc?? estiver recebendo uma mensagem do tipo:

O SQL Server encontrou %d ocorr??ncia(s) de libera????o de armazenamento em cache para o cache ‘%s’ (parte do cache do esquema) devido ?? manuten????o do banco de dados ou opera????es de reconfigura????o.

ou

SQL Server has encountered %d occurrence(s) of cachestore flush for the ‘%s’ cachestore (part of plan cache) due to some database maintenance or reconfigure operations.

?? porque, segundo a MSDN, ao limpar o cache do plano gera uma recompila????o de todos os planos de execu????o subseq??entes e pode provocar uma queda repentina e tempor??ria no desempenho da consulta. Para cada armazenamento em cache limpo no cache do plano, aparece a mensagem supracitada.

Para resolver isso, basta ir no banco correspondente, clicar com o direito sobre ele e escolher Properties (Propriedades). Entre em Options (Op????es) e configure o Auto-Close (Fechamento Autom??tico) para False.

Categorias
desempenho dicas dll iis

Diferen??as entre Aplica????es Compiladas e N??o-Compiladas

Quando program??vamos (ou programamos) com aquelas linguagens do tipo PHP ou ASP Cl??ssico apenas peg??vamos o que foi implementado e jog??vamos no servidor web para uso. Com a inova????o das tecnologias e tipos de linguagens (compiladas, interpretadas, h??bridas) algumas d??vidas nos cercam quando estamos publicando um certo projeto. Nesse caso, falemos do ASP.NET para as vers??es acima da 2.0.

Antes de mais nada, o ASP.NET ?? compilado. Mesmo que voc?? jogue os fontes no IIS ele ?? compilado na primeira vez que ?? acessado (e/ou alterado). Voc?? n??o v??, mas por tr??s ?? feito isso. Para quem nunca compilou uma aplica????o web, h?? diversas formas para uma dada finalidade. Geralmente ?? usada a fun????o Publish Web Site (compila e publica).

Mas o que muitos perguntam ??: existe diferen??a de desempenho? N??o! Muitos dizem que h?? um pouco, mas j?? trabalhei com v??rias aplica????es e n??o notei qualquer diferen??a. Li v??rios artigos por a?? na net e n??o achei qualquer um que demonstrasse e/ou notasse diferen??a brusca de desempenho. Ent??o, elaborei a seguinte tabelinha abaixo com um pequeno resumo. Se tiver mais, favor avisar-me que atualizo:

Compilada
N??o-Compilada
 Desempenho
 Normal
Normal
 C??digo-fonte
 Protegido em DLL’s
Vis??vel 
 HTML
 Sem mudan??a
Sem mudan??a 
 Atualiza????oCorre????o
 Precisa compilar todo o projeto e public??-lo (c??digo-fonte) enquanto no design pode alterar normalmente
Pode alterar diretamente no problema (p??gina)
 Primeiro Acesso
 Normal
Lento 

??bvio que toda regra tem sua exce????o, ent??o a depender dos casos supra-citados pode haver pequenos detalhes que mudam uma coisinha ou outra mas nada de t??o dr??stico (de acordo com a tabela – exemplo, na compila????o FULL voc?? n??o altera sequer o HTML). Se quiserem conhecer mais sobre os tipos de compila????o (Full, Pr?? ou Sob-Demanda) visite os links da MSDN e de Dennes Torres.

Categorias
ajax desempenho dicas web.config

Melhorando o desempenho de aplica????es ASP.NET que usam AJAX

Alguns dias atr??s estava lendo alguns artigos sobre desempenho e achei um artigo interessante de LanceZhang na qual ele fez uma bateria de testes em um website que possuia controles ASP.NET AJAX. O artigo voc?? l?? na ??ntegra aqui. Mas, como se diz na web, “?? old mas ?? gold!”, aproveitei o artigo dele para resumir (tirar o quente) das configura????es que ele aplicou e os colocarei aqui. Para quem sabe ingl??s o artigo ?? indispens??vel a leitura, pois l?? ele mostra com detalhes os testes realizados bem como os gr??ficos de desempenho.

Bem, o que ele fez? Encheu uma p??gina de controles AJAX e primeiramente mediu o tr??fego na rede averiguando a quantidade de bytes que s??o carregados quando feito uma requisi????o, sendo ela quando dado um PostBack ou apenas no Load da p??gina. Quem tem o Firefox, com certeza deve ter o plugin Firebug instalado. No Firebug tem uma sess??o de monitoramento de Rede que analisa as chamadas realizadas.

A primeira coisa notada ?? o tamanho da p??gina que estava muito grande. O uso do cache reduzia bruscamente o tamanho da p??gina sem fazer novos carregamentos desnecess??rios. Juntamente com a compress??o do ScriptResource que reduz ainda mais o tamanho dos scripts gerados.  Ent??o, no web.config, devemos aplicar a seguinte configura????o:

<system.web.extensions>
<scripting>
<scriptResourceHandler enableCompression=true enableCaching=true />
</scripting>
</system.web.extensions>

Fa??a um novo teste e notar?? a diferen??a! Outro aplica????o de desempenho ?? a forma como o ScriptManager do AJAX ?? trabalhado. Ent??o ?? sugerido us??-lo com a seguinte configura????o:

<asp:ScriptManager ID=ScriptManagerAjax runat=server EnablePartialRendering=false ScriptMode=Release LoadScriptsBeforeUI=false>
</asp:ScriptManager>

Cuidado com o EnablePartialRendering! Fa??a o teste em sua aplica????o com os valores false ou true porque a depender do que voc?? usa em seu sistema isso muda muito no comportamento dos scripts. Por ??ltimo, voc?? pode usar o CompositeScript dentro do ScriptManager para agregar v??rias chamadas de scripts em uma s??. Veja l?? no site de LanceZhang como fazer, caso tenha interesse nessa parte e se isso ainda n??o foi o suficiente.

Agregado a isso, e fora do escopo, voc?? pode usar a compress??o/compacta????o do ViewState para minimizar o tamanho da p??gina. Voc?? pode encontrar artigos relacionados por a?? na net, mas aconselho dar uma lida nesse aqui ou esse a depender de como queira utilizar. Muitas vezes eu prefiro desabilitar o ViewState… Mais r??pido, s?? que com cautela!