Novidades do .NET 2.0: SQL Cache Dependency

No ASP.NET 1.X, era possível criar dependências para valores armazenados no objeto Cache do namespace System.Web.Caching. A invalidação do Cache poderia ficar associada a vários eventos, como após um determinado período de tempo, mudança em um ou mais arquivos e/ou diretórios ou mudança em um valor de outra chave de cache. Sempre que um desses eventos ocorresse, o cache seria inutilizado. Era possível até mesmo informar um delegate que deveria ser chamado quando o evento de invalidação do cache ocorresse.

Uma grande melhoria do ASP.NET 2.0 nesse campo foi a introdução da possibilidade de se criar uma dependência do Cache com o banco de dados SQL Server. Assim, sempre que algum dado for alterado no banco de dados, o cache é invalidado. Deste modo, é possível ter os benefícios de performance que o uso de cache propricia juntamente com dados sempre atualizados.

Referências
Improved Caching in ASP.NET 2.0
SqlCacheDependency Class (System.Web.Caching)
Walkthrough: Using ASP.NET Output Caching with SQL Server

Ricardo Oneda

Comments (3) -

  • Juliano Nunes

    11/10/2005 11:16:43 PM | Reply

    Isso realmente é uma mão na roda....mas como funciona o armazenamento em cache? Fica guardado no servidor os resultados das consultas ou no banco de dados?

    Ele utiliza o esquema de Notificações do banco de dados para isso (pelo menos no SQL 2005 me parece que ele aproveita este recurso do SQL Server 2005)?

  • Ricardo Oneda

    11/11/2005 10:25:24 AM | Reply

    Juliano, os dados do objeto Cache ficam armazenados no servidor web, assim como ocorria no ASP.NET 1.X

    Sobre sua segunda dúvida, pelo que li, quando se utiliza o SQL Server 2005 é o BD que notifica a aplicação que houve alteração nos dados. Em versões anteriores do SQL Server, é o ASP.NET que fica consultando de tempos em tempos (isso é configurável) o BD e verificando se houve alteração.

Loading