Compartilhar via


Armazenamento em ASP.NET com a Classe SqlCacheDependency

ASP.NET permite que você use a classe SqlCacheDependency para criar uma dependência de item de cache em uma tabela ou linha em uma base de dados.Quando uma mudança ocorre na tabela ou em uma linha específica, o item que possui a dependência é invalidado e removido do cache.Você pode conjunto uma dependência em uma tabela no Microsoft SQL servidor 7.0, SQL servidor 2000 e SQL servidor 2005.Se você estiver usando o SQL servidor 2005, você também pode conjunto uma dependência em um registro específico.

Usar armazenamento com uma dependência SQL pode aumentar drasticamente a performance do aplicativo em certos cenários.Por exemplo, imagine que você está fazendo um aplicativo e-commerce que exibe informações de produtos a partir de uma base de dados.Sem o armazenamento em cache, seu aplicativo tem que recuperar os dados a partir da base de dados cada vez que o usuário quiser ver um produto.Você poderia armazenar a informação dos produtos para um dia de uma vez, assegurando tempos de resposta rápidos porque a informação dos produtos já está na memória.No entanto, se a informação dos produtos mudar, a informação armazenada então poderá estar fora de sincronia com os dados para mais de um dia.

Usando dependência de cache SQL, você poderia armazenar suas informações dos produtos e criar uma dependência em uma tabela da base de dados ou mudança de linha.Quando os dados mudam - e somente então - os itens de cache baseados naqueles dados são invalidados e removidos do cache.Da próxima vez que você requisitar tal item do cache, se este não estiver armazenado, você pode readicionar a versão atualizada para o cache e assegurar-se que você possui os últimos dados.

Dependência de cache SQL é também disponível para o cache de saída da página.Por exemplo, você pode criar uma página chamada VisualizarProduto.aspx que mostra informações sobre determinado produto.Você pode definir a política de cache dessa página para ser uma dependência SQL, como você definiria para um item que você tenha adicionado manualmente ao cache.A página então será armazenada no cache até a tabela ou linha da qual é dependente mude.Quando os dados mudarem, a página será recriada e armazenada no cache de saída novamente.

Para obter mais informações, consulte: Visão geral do cache no ASP.NET.

Recursos

Dependência de cache ASP.NET SQL oferece os seguintes recursos:

  • Você pode usar dependência de cache SQL tanto para o cache de aplicativo quanto para o cache de saída de página.

  • Você pode usar dependência de cache SQL com o SQL Server 7.0 e versões posteriores.

  • Você pode usar dependência de cache SQL em um jardim Web (múltiplos processadores em um servidor) ou em uma fazenda Web (múltiplos servidores executando o mesmo aplicativo).

  • As operações em base de dados associadas com dependência de cache SQL são simples e, portanto, não incorrem um custo pesado de processamento no servidor

  • Você não precisa de um vasto conhecimento em SQL para configurar uma dependência de cache SQL no seu aplicativo e no SQL Server.ASP.NET inclui ferramentas que automatizam a configuração.Adicionalmente, você pode usar a classe SqlCacheDependencyAdmin para configurar a dependência de cache SQL programavelmente.

Implementação SQL Server 7.0 e SQL Server 2000

ASP.NET implementa um modelo de votação para a dependência de cache do SQL Server 7.0 e do SQL Server 2000.Um encadeamento dentro do qual o processo ASP.NET vota a base de dados SQL Server em um intervalo de tempo especificado para determinar se os dados mudaram.Neste caso, itens de cache dependentes são invalidados e removidos do cache.Você pode especificar o intervalo de votação no seu aplicativo declaradamente no arquivo Web.config ou programavelmente usando a classe SqlCacheDependency.

Dependência de cache do SQL é limitada às alterações de dados no nível de tabela do SQL servidor 7.0 e SQL servidor 2000.Você pode configurar ASP.NET para pesquisar o banco de dados para as alterações em uma tabela, mas não em uma linha específica.

Habilitando SQL Caching

Para utilizar dependência de cache SQL no SQL Server 7.0 e no SQL Server 2000, você deve configurar o SQL Server para suportá-la.ASP.NET oferece utilidades para configurar SQL caching no SQL Server, incluindo uma ferramenta chamada Aspnet_regsql.exe e a classe SqlCacheDependencyAdmin.Para obter mais informações sobre como habilitar a dependência de cache SQL com o SQL Server, veja Como: Cache de saída de uma página com dependências de chave de cache.

Implementação SQL Server 2005

O SQL servidor 2005 implementa um modelo diferente para dependência de cache de SQL servidor 7.0 e SQL servidor 2000.Você não precisará percorrer etapas qualquer configuração especial para ativar a dependência de cache do SQL no SQL servidor 2005.Além disso, o SQL servidor 2005 implementa um modelo de notificação de alterar onde as notificações são enviadas para inscrever-se servidores de aplicativos, em vez de contar com o modelo de sondagem necessárias em versões anteriores do SQL servidor.

A dependência de cache do SQL Server 2005 é mais flexível nos tipos de mudanças que recebem notificação.SQL Server 2005 monitora mudanças no conjunto de resultados de um determinado comando SQL.Se uma mudança ocorre na base de dados, que modificaria o conjunto de resultados daquele comando, a dependência faz com que o item de cache seja invalidado.Isto permite que o SQL Server 2005 forneça notificação a nível de linha.

Existem alguns requisitos para a consulta utilizada para testar se houveram mudanças.Você deve fornecer nomes de tabela totalmente qualificados, incluindo o nome do proprietário (por exemplo, dbo.authors).Em geral, a notificação SQL 2005 suporta consultas Select, bem como procedimentos armazenados, e suporta consultas múltiplas e aninhadas, mas não suporta operações agregadas como COUNT(*).Para obter mais informações sobre quais consultas são suportadas e as regras para notificação no SQL Server 2005, veja o tópico SQL Books Online chamado "Criando uma consulta para notificação."

Configurando SQL Caching em aplicativo ASP.NET

Uma vez que você tenha configurado o SQL Server 7.0 ou o SQL Server 2000 para dependências de cache, ou tenha criado a dependência de comando apropriada no SQL Server 2005, você pode configurar seu aplicativo para usar dependência de cache SQL assim como você configuraria qualquer outra dependência de cache.Por exemplo, você pode criar um perfil de cache no arquivo Web.config e então referenciar este perfil em cada página que seria interessante usar a dependência de cache SQL.Você também pode usar dependência de cache SQL habilitando-a programavelmente usando a classe SqlCacheDependency.Para obter mais informações, consulte Como: Cache de saída de uma página com dependências de chave de cache.

Consulte também

Tarefas

Como: Cache de saída de página com dependências de arquivo

Conceitos

Visão geral do cache no ASP.NET

Configuração de cache no ASP.NET