Cache Externo com CData ADO.NET

O armazenamento em cache de dados em um banco de dados de cache externo aumenta o desempenho e fornece recursos adicionais de consulta. Este artigo explica como especificar um banco de dados de cache externo a ser usado pelos Provedores ADO.NET da CData.

Devido a algumas fontes de dados serem lentas para consultar, o Provedor ADO.NET da CData suporta um modelo de cache simples que pode melhorar o desempenho das consultas de dados.

Armazenamento em Cache de Dados

Trabalhar com dados em cache irá aumentar a velocidade de recuperação de dados e o seu software irá funcionar mais rápido. Mas há outros benefícios também; habilitar os mecanismos de cache da CData permite que a conexão seja usada em um modo offline quando o acesso à fonte de dados não for possível. Isso também habilita consultas SQL avançadas que de outra forma não são suportadas pela própria fonte de dados subjacente.

Arquivo de Dados de Cache Interno

Por padrão, um banco de dados baseado em sistema de arquivos armazena os dados de cache. Este arquivo de banco de dados (internamente o Provedor da CData usa SQLite para isso) será localizado no valor para Localização ou no caminho explicitamente definido para CacheLocation especificado na string de conexão. Se nenhuma dessas propriedades de conexão for especificada, o provedor usará um local padrão dependente da plataforma.

Provedor de Cache Externo

É possível também armazenar dados de cache em um banco de dados externo separado de sua escolha. O banco de dados é um repositório persistente que pode ser compartilhado por vários objetos de conexão ao longo do tempo. Você pode selecionar um banco de dados e configurá-lo usando as opções de configuração do provedor de cache. Os provedores de cache externos oficialmente testados incluem SQL Server, MySQL, Oracle e Access.

O banco de dados de cache pode conter cada tabela exposta pelo Modelo de Dados do Provedor ADO.NET da CData com tipos de colunas mapeados da fonte de dados para o tipo de dados correspondente disponível no banco de dados de cache escolhido. Colunas do tipo string podem ser mapeadas para diferentes tipos de dados dependendo do seu comprimento. As tabelas são criadas automaticamente pelo Provedor ADO.NET da CData.

Para usar esse recurso, duas propriedades precisam ser especificadas na string de conexão. Cache Provider define qual provedor o Provedor ADO.NET da CData deve usar para conectar ao banco de dados de cache externo e o Cache Connection define a string de conexão a ser usada para a conexão com o banco de dados de cache.

Exemplos

Estes exemplos mostram os acréscimos à string de conexão para especificar o uso de cache externo em cada um dos sistemas de banco de dados oficialmente testados disponíveis.

//MySQL
Cache Provider=MySql.Data.MySqlClient;Cache Connection='Server=localhost;Port=3306;Database=BancoDeDados;Uid=Usuario;Pwd=Senha;'

//SQL Server
Cache Provider=System.Data.SqlClient;Cache Connection='Server=Servidor;Database=BancoDeDados;User Id=Usuario;Password=Senha;'

//Access
Cache Provider=Microsoft.ACE.OLEDB.12.0;Cache Connection='Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\\Diretorio\\Arquivo.accdb'

//Oracle
Cache Provider=Oracle.DataAccess.Client;Cache Connection='Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));User Id=SYSTEM;Password=Senha;'

Outras opções para o Cache Connection estão disponíveis e baseadas nas opções de strings de conexão do sistema de destino. Consulte a página de string de conexão do provedor de cache respectivo para obter detalhes sobre essas opções.