Vous êtes sur la page 1sur 19

Migrando bancos de dados do Microsoft Access para o Microsoft SQL Server 7.

As informaes contidas neste documento representam a viso atual da Microsoft Corporation sobre as questes discutidas na data da publicao. Como a Microsoft deve atender a condies de mercado mutveis, as informaes no devem ser interpretadas como um compromisso por parte da Microsoft, e a Microsoft no pode garantir a exatido das informaes aqui apresentadas aps a data da publicao. Este documento serve apenas para fins informativos. A MICROSOFT NO D NENHUMA GARANTIA, EXPRESSA OU IMPLCITA, NESTE DOCUMENTO.
1998 Microsoft Corporation. Todos os direitos reservados.

Microsoft, ActiveX, Visual Basic, Windows e Windows NT so marcas registradas ou comerciais da Microsoft Corporation nos Estados Unidos e/ou em outros pases. Outras marcas e nomes comerciais mencionados neste documento so propriedade de seus respectivos proprietrios. Os nomes de empresas, produtos, pessoas, caracteres e/ou dados mencionados neste documento so fictcios e de forma alguma representam qualquer pessoa, empresa, produto ou evento reais, salvo indicao em contrrio. Pea n 098-82594

Introduo...................................................................................................................................4

ndice

Ferramentas do SQL Server usadas em migraes................................................................ 4 SQL Server Enterprise Manager .......................................................................................... 4 Data Transformation Services (DTS) .................................................................................. 5 SQL Server Query Analyzer ................................................................................................ 5 SQL Server Profiler ............................................................................................................. 5 Movendo tabelas e dados........................................................................................................... 5 Migrando as consultas do Microsoft Access............................................................................ 6 Migrando as consultas do Microsoft Access para stored procedures e vises .....................8 Migrando as consultas do Microsoft Access para scripts de Transact-SQL ........................9 Consideraes adicionais de projeto.......................................................................................10 Usando parmetros .............................................................................................................10 Consultas aninhadas ...........................................................................................................10 Verificando sintaxe compatvel com o SQL Server ...........................................................11 Conectando seus aplicativos.................................................................................................... 12 Concluso.................................................................................................................................. 12 Apndice A: Diferenas entre a sintaxe de consulta do Microsoft SQL Server e a sintaxe de consulta do Microsoft Access...........................................................................13 Apndice B: Artigo do Knowledge Base sobre a otimizao de desempenho cliente/servidor...........................................................................15 RESUMO ........................................................................................................................... 15 Mtodos para acessar dados ...............................................................................................15 Usando consultas SQL pass-through .......................................................................... 15

Solicitar menos dados do servidor ..................................................................................... 16 Otimizando as consultas .....................................................................................................16 Configurao do TryJetAuth ..............................................................................................17 Datadores ........................................................................................................................... 17 Transaes ..........................................................................................................................18 Otimizando o Recordsets e o cdigo ..................................................................................18 Tabela MSysConf .............................................................................................................. 18 REFERNCIAS .................................................................................................................18 Obtendo mais informaes...................................................................................................... 19

Introduo
medida em que as necessidades dos clientes crescem e exigem melhorias nos bancos de dados empresariais de alto desempenho, os clientes s vezes mudam do ambiente de servidor de arquivos do Microsoft Access Jet para o ambiente cliente/servidor do Microsoft SQL Server. O Access 2000 Upsizing Wizard, disponvel com o Microsoft Office 2000, transporta as tabelas e consultas do Access para o SQL Server 7.0. Se voc est trabalhando com uma verso anterior do Access, pode migrar aplicativos do SQL Server atualizando para o Access 2000, e depois usando o Upsizing Wizard. Se preferir no usar o Access 2000 e o Upsizing Wizard para migrar, use este documento como guia para transportar um aplicativo do Access para o SQL Server. Transportar um aplicativo do Access exige transportar os dados para o SQL Server 7.0 e depois migrar as consultas do Access para o banco de dados ou para os arquivos SQL para posterior execuo. A

Ferramentas do SQL Server usadas em migraes


etapa final envolve migrar os aplicativos. Vrias ferramentas do SQL Server ajudam na migrao dos dados e aplicativos do Access.

SQL Server Enterprise Manager


O SQL Server Enterprise Manager possibilita a configurao e o gerenciamento do SQL Server e dos objetos do SQL Server em toda a empresa. O SQL Server Enterprise Manager fornece um poderoso mecanismo de agendamento, recursos de alerta administrativos e uma interface interna de gerenciamento de replicao. Pode-se tambm usar o SQL Server Enterprise Manager para: Gerenciar logons e permisses de usurio. Criar scripts Gerenciar o backup de objetos do SQL Server. Efetuar backup de bancos de dados e de registros de transaes. Gerenciar tabelas, vises, stored procedures, triggers, ndices, regras, padres e tipos de dados definidos pelo usurio. Criar ndices full-text, diagramas de banco de dados e planos de manuteno de banco de dados. Importar e exportar dados. Transformar dados. Desempenhar vrias tarefas de administrao da Web.

Como padro, o SQL Server Enterprise Manager instalado pelo Programa de Instalao do SQL Server como parte do software do servidor em computadores executando o sistema operacional Microsoft Windows NT e como parte do software do cliente em computadores executando Windows NT com o sistema operacional Microsoft Windows 95. Provavelmente, voc iniciar o Data Transformation Services (DTS, servios de transformao de dados) na interface do SQL Server Enterprise Manager.

Data Transformation Services (DTS)


O Data Transformation Services (DTS) permite que se importe e exporte dados de diversas fontes heterogneas que usam arquitetura baseada no OLE DB, como as planilhas eletrnicas do Microsoft Excel, e permitem transferir banco de dados e objetos de banco de dados (por exemplo, ndices e stored procedures) para vrios computadores executando o SQL Server 7.0. Pode-se tambm usar o DTS para transformar os dados de forma que eles possam ser usados para criar data warehouses e data marts a partir de um sistema de processamento de transaes on-line (OLTP). O DTS Import Wizard e o DTS Export Wizard permitem que voc crie interativamente pacotes de DTS que usam o OLE DB e o ODBC para importar, exportar, validar e transformar dados heterogneos. Os assistentes tambm permitem que voc copie esquemas e dados de bancos de dados relacionais.

SQL Server Query Analyzer


O SQL Server Query Analyzer uma ferramenta de consulta grfica que permite analisar visualmente o plano de uma consulta, executar vrias consultas simultaneamente, exibir dados e obter recomendaes de ndice. O SQL Server Query Analyzer oferece a opo SHOWPLAN, que usada para apresentar os mtodos de recuperao dos dados escolhidos pelo SQL Server Query Optimizer.

SQL Server Profiler


O SQL Server Profiler captura os registros contnuos das atividades de um servidor em tempo real. O SQL Server Profiler permite monitorar os eventos produzidos atravs do SQL Server, filtrar eventos com base em critrios especificados pelo usurio e enviar o resultado do rastreio para a tela, um arquivo ou uma tabela. Usando o SQL Server Profiler, pode-se repetir rastreios previamente capturados. Essa ferramenta ajuda os desenvolvedores de aplicativos a identificar transaes que podem estar deteriorando o desempenho de um aplicativo. Isso pode ser til ao se migrar um aplicativo de uma arquitetura baseada em arquivos para uma arquitetura cliente/servidor, porque a ltima etapa envolve a otimizao do aplicativo para seu novo ambiente cliente/servidor. Para usar o DTS Import Wizard para transferir seus dados do Access para o SQL Server, voc pode seguir as seguintes etapas:

Movendo tabelas e dados

1. No SQL Server Enterprise Manager, no menu Tools, aponte para Data Transformation Services, e depois clique em Import Data.

2. Na caixa de dilogo Choose a Data Source, selecione Microsoft Access as the Source e depois digite o nome de seu arquivo de banco de dados .mdb (extenso de arquivo .mdb) ou procure o seu arquivo. 3. Na caixa de dilogo Choose a Destination, selecione Microsoft OLE DB Provider for SQL Server, selecione o servidor do banco de dados e depois clique no modo de autenticao requerido. 4. Na caixa de dilogo Specify Table Copy or Query, clique em Copy tables. 5. Na caixa de dilogo Select Source Tables, clique em Select All.

Migrando as consultas do Microsoft Access

Voc deve mover suas consultas do Access para o SQL Server em um dos seguintes formatos: Scripts de transaes SQL As instrues de transaes SQL so geralmente chamadas dos programas de banco de dados, mas voc pode usar o SQL Server Query Analyzer includo no SQL Server 7.0 para executar essas instrues diretamente do banco de dados. O SQL Server Query Analyzer ajuda os desenvolvedores a testar instrues de transaes SQL nos bancos de dados de desenvolvimento, ou a executar instrues de transaes SQL que faam consultas, manipulao de dados (INSERT, UPDATE, DELETE), ou definio de dados (CREATE TABLE). Stored procedures Os desenvolvedores podem mover a maioria das instrues de transaes SQL originrias das consultas do Access (SELECT, INSERT, UPDATE e DELETE) para dentro de stored procedures. Os stored procedures escritos nas transaes SQL podem ser usados para encapsular e padronizar o acesso aos dados, e so de fato armazenados dentro do banco de dados. Stored procedures podem ser executados com ou sem parmetros e so chamados dos programas do banco de dados ou manualmente, do SQL Server Query Analyzer. Vises As vises so usadas como tabelas virtuais que exibem linhas e colunas especficas de uma ou mais tabelas. Elas permitem que os usurios criem consultas sem implementar diretamente as junes complexas que so subjacentes consulta. As vises no oferecem suporte ao uso de parmetros. As vises que associam mais de uma tabela no podem ser modificadas usando-se as instrues INSERT, UPDATE ou DELETE. As vises so chamadas das instrues de transaes SQL, e tambm podem ser usadas nos *.scripts que so executados no SQL Server Query Analyzer. As vises do SQL Server e o padro do SQL-92 no oferecem suporte s clusulas ORDER BY em vises. Para obter mais informaes sobre transaes SQL, stored procedures ou vises, consulte os manuais on-line do SQL Server.

Tipo de consulta do Access


SELECT

Opes de migrao do SQL Server e comentrios


Uma instruo SELECT pode ser armazenada em um arquivo de transaes SQL, em uma stored procedure ou em uma viso. Criar stored procedures a melhor forma de separar o desenvolvimento dos aplicativos de banco de dados da implementao fsica da estrutura do banco de dados. Os stored procedures so criados em um nico lugar, e so chamados do aplicativo. Chamadas para os stored procedures no sero interrompidas se o banco de dados subjacente se alterar e a stored procedure for cuidadosamente modificado para refletir as alteraes. Crosstabs so freqentemente usadas para relatrios de resumo. Uma instruo CROSSTAB do Access pode ser implementada como uma instruo SELECT de Transact-SQL em um script SQL, uma stored procedure ou uma viso. A juno de dados reexecutada cada vez que a consulta emitida, assegurando que os ltimos dados sejam sempre usados. Dependendo do aplicativo, pode ser adequado armazenar dados de uma crosstab como tabela temporria (veja MAKE TABLE na prxima linha). A tabela temporria requer menos recursos, mas oferece apenas uma rpida viso dos dados no momento em que criada. Uma instruo MAKE TABLE do Access pode ser implementada como uma instruo CREATE TABLE de Transact-SQL em um script de Transact-SQL ou em uma stored procedure. A seguir, a sintaxe:

CROSSTAB

MAKE TABLE

SELECT [ ALL | DISTINCT ] [ {TOP integer | TOP integer PERCENT} [ WITH TIES] ] <select_list> [ INTO new_table ] [ FROM {<table_source>} [,n] ] [ WHERE <search_condition> ] [ GROUP BY [ALL] group_by_expression [, n] [ WITH { CUBE | ROLLUP } ] CREATE TABLE mytable (low int, high int)
UPDATE Uma instruo UPDATE pode ser armazenada em um script de Transact-SQL; contudo, a forma recomendada para implementao de uma instruo UPDATE criar uma stored procedure. Uma instruo APPEND pode ser armazenada em um script de Transact-SQL; contudo, a forma recomendada para implementao de uma instruo APPEND criar uma stored procedure. Uma instruo DELETE pode ser armazenada em um script de Transact-SQL; contudo, a forma recomendada para implementao de uma instruo DELETE criar uma stored procedure.

APPEND

DELETE

Migrando as consultas do Microsoft Access para stored procedures e vises


CREATE PROCEDURE <NAME_HERE> AS < SELECT, UPDATE, DELETE, INSERT, CREATE TABLE statement from Microsoft Access > GO CREATE VIEW <NAME_HERE> AS <Place (SELECT only, with no parameters) Microsoft Access Query> GO

Cada uma das consultas do Access precisa ser colocada dentro deste conjunto de instrues: Para cada uma das consultas do Access: 1. Abra o Access, e depois, no SQL Server, abra o SQL Server Query Analyzer. 2. No Access, na janela Database, clique na guia Queries, e depois clique em Design.

3. No menu View, clique em SQL. 4. Cole a consulta inteira dentro do SQL Server Query Analyzer. 5. Teste a sintaxe e salve a instruo de Transact-SQL para uso posterior, ou execute a instruo no banco de dados. Voc tem a opo de salvar a Transact-SQL em um script.

Migrando as consultas do Microsoft Access para scripts de Transact-SQL


A maioria das consultas do Access deve ser traduzida para stored procedures e vises. Contudo, as instrues que so raramente executadas pelo desenvolvedor de um aplicativo podem ser armazenadas como um script de Transact-SQL, um arquivo de texto com extenso .sql. Esses arquivos podem ser executados de dentro do SQL Server Query Analyzer. Se voc planeja transferir algumas de suas consultas do Access para arquivos .sql, pense em separar as consultas de transaes SQL em diversos scripts, dependendo de como so usados. Por exemplo, voc pode agrupar em um script aquelas instrues de transaes SQL que precisam ser executadas com a mesma freqncia. Um outro script poderia conter todas as instrues de transaes SQL que so executadas apenas sob certas condies. Alm disso, as consultas de transaes SQL que precisam ser executadas em uma ordem especfica devem ser agrupadas em um script parte. Para mover uma instruo do Access para um arquivo de Transact-SQL: 1. Copie a consulta para o SQL Server Query Analyzer. 2. Use o cone azul da marca de seleo para analisar a consulta. 3. Execute a instruo, se apropriado. Os desenvolvedores com consultas MAKE TABLE do Access tm vrias opes no SQL Server. Os desenvolvedores podem criar: Uma viso. Uma viso cria o efeito de se ter uma tabela temporria dinmica e virtual que fornece as ltimas informaes. A E/S bastante intensa, porque exige uma nova juno das tabelas de dados cada vez que uma consulta emitida. Uma tabela temporria. Uma tabela temporria d uma rpida viso de dados para uma sesso de um usurio conectado. Voc pode criar tabelas temporrias locais e globais. As tabelas temporrias locais so visveis apenas na sesso atual; tabelas temporrias globais so visveis em todas as sesses. Coloque antes dos nomes da tabela local temporria sinais numricos nicos (#table_name), e antes dos nomes da tabela temporria global sinais numricos duplos (##table_name). As consultas podem ser executadas rapidamente nas tabelas temporrias porque, em geral, usam apenas uma em vez de juntar vrias tabelas dinamicamente, para obter o conjunto resultante. Para obter mais informaes sobre as tabelas temporrias, consulte os manuais on-line do SQL Server. Os Data Transformation Services (DTS) do SQL Server 7.0 permitem padronizar, automatizar e agendar a criao de tabelas temporrias atravs da criao de pacotes. Por exemplo, quando voc migra o exemplo de banco de dados do Access 2.0 Northwind , a crosstab que criada para relatar os dados do trimestre torna-se uma viso ou uma transformao de dados que gera uma tabela temporria a intervalos regulares. Para obter mais informaes sobre o DTS, consulte os manuais on-line do SQL Server.

Consideraes adicionais de projeto


Usando parmetros

A seguir, algumas das questes que voc deve levar em considerao ao migrar seu aplicativo Access para o SQL Server.

As stored procedures do SQL Server que tm parmetros precisam de uma sintaxe diferente das consultas do Access. Por exemplo: Access 2.0: Nome da consulta: Employee Sales By Country, in NWIND.mdb:

PARAMETERS [Beginning Date] DateTime, [Ending Date] DateTime; SELECT Orders.[Order ID], [Last Name] & , & [First Name] AS Salesperson, Employees.Country, Orders.[Shipped Date], [Order Subtotals].Subtotal AS [Sale Amount] FROM Employees INNER JOIN (Orders INNER JOIN [Order Subtotals] ON Orders.[Order ID] = [Order Subtotals].[Order ID]) ON Employees.[Employee ID] = Orders.[Employee ID] WHERE (((Orders.[Shipped Date]) Between [Beginning Date] And [Ending Date])) ORDER BY [Last Name] & , & [First Name], Employees.Country, Orders.[Shipped Date];

SQL Server 7.0:


CREATE PROCEDURE EMP_SALES_BY_COUNTRY @BeginningDate datetime, @EndingDate datetime AS SELECT Orders.[Order ID], [Last Name] + , + [First Name] AS Salesperson, Employees.Country, Orders.[Shipped Date], [Order Subtotals].Subtotal AS [Sale Amount] FROM Employees INNER JOIN (Orders INNER JOIN [Order Subtotals] ON Orders.[Order ID] = [Order Subtotals].[Order ID]) ON Employees.[Employee ID] = Orders.[Employee ID] WHERE (((Orders.[Shipped Date]) Between @BeginningDate And @EndingDate)) ORDER BY [Last Name] + , + [First Name], Employees.Country, Orders.[Shipped Date] GO

Para obter mais informaes, consulte os manuais on-line do SQL Server.

Consultas aninhadas
Algumas consultas do Access so criadas dentro de outras consultas, de forma aninhada. As consultas aninhadas do Access tornam-se vises aninhadas no SQL Server. As clusulas ORDER BY no podem ser parte de uma definio de uma viso, mas so acrescentadas instruo SELECT que consulta a instruo VIEW. Se voc aninhou consultas do Access, crie vrias vises e depois crie stored procedures que tanto desempenhem uma operao SELECT na viso como acrescentem uma clusula de ORDER BY instruo SELECT.

10

Por exemplo, a seguinte consulta do Access:


SELECT * FROM STUDENTS WHERE COUNTRY = USA ORDER BY LAST_NAME

Torna-se uma viso do SQL Server e uma stored


CREATE VIEW US_STUDENTS AS SELECT * FROM STUDENTS WHERE COUNTRY = USA CREATE PROCEDURE US_STUDENTS_ORDER AS SELECT * FROM US_STUDENTS ORDER BY LAST NAME

procedure:

Verificando sintaxe compatvel com o SQL Server


Voc pode usar o comando Parse no menu Query no SQL Server Query Analyzer para verificar se h uma viso ou funes de stored procedure no SQL Server. No exemplo a seguir, a consulta do Access usa a palavra DISTINCTROW. O SQL Server usa o comando de Transact-SQL DISTINCT para desempenhar a mesma operao. O comando Parse permite que os desenvolvedores isolem e modifiquem problemas de sintaxe em suas consultas do Access.

11

Conectando seus aplicativos

Muitos aplicativos do Access anteriores ao Office 2000 foram escritos usando-se o Microsoft Visual Basic for Applications ou a interface do usurio do Access do Visual Basic for Applications.

Os aplicativos que usam o Visual Basic for Applications como ambiente de desenvolvimento podem ser executados no SQL Server, usando o driver Jet ODBC. Os aplicativos que usam os formulrios e relatrios encontrados na interface do usurio do Access podem acessar o SQL Server usando tabelas vinculadas. Se seu aplicativo for usar tabelas vinculadas, assegure-se de que todas as tabelas do Access sejam movidas para o SQL Server para aumentar o desempenho. Criar consultas em uma associao do Access (Jet) com o SQL Server usando tabelas vinculadas pode exigir muitos recursos A primeira etapa da migrao de seu aplicativo de servidor de arquivos para um modelo cliente/servidor assegurar-se de que o aplicativo trabalhe no novo banco de dados. A etapa seguinte otimizar o aplicativo para o ambiente cliente/servidor, atravs da: Monitoria das instrues de transaes SQL sendo enviadas ao servidor. O SQL Server Profiler uma ferramenta til para a monitoria de como as instrues de TransactSQL so enviadas para o banco de dados. Ao executar um aplicativo no modificado do Access no SQL Server, voc deve enviar uma Transact-SQL para o banco de dados, usando o Data Access Objects (DAO) com o driver do Jet/ODBC. Por exemplo, uma instruo DELETE que usa o driver do Jet/ODBC para excluir 1.000 linhas, faz 1.000 chamadas ao banco de dados, impactando negativamente o desempenho de um banco de dados de produo. Neste exemplo, o SQL Server Profiler exibe 1.000 instrues DELETE permitindo-lhe modificar o aplicativo para usar o Microsoft ActiveX Data Objects (ADO) com o Microsoft OLE DB Provider para o SQL Server, desse modo aprimorando a eficincia do aplicativo. Implentando ndices eficientes. Depois que determinar que as instrues de transaes SQL sendo enviadas para o banco de dados so eficientes, voc pode refinar essas instrues para usar os ndices de forma mais efetiva. O Index Tuning Wizard permite que voc encontre pontos de gargalo e faz recomendaes. Suas instrues de transaes SQL no so alteradas, mas o desempenho melhora com o correto uso dos ndices. Para obter mais informaes sobre a otimizao do desempenho cliente/servidor, consulte o Apndice B neste documento. Migrar um banco de dados do Access 2000 para o SQL Server um processo que exige apenas o Upsizing Wizard. Atualizar sem o assistente exige mover os dados e transferir as consultas para o formulrio adequado (scritps, vises e stored procedures do SQL Server). Em ambos os casos, o aplicativo precisa ser refinado ou migrado, para que seja executado eficientemente no ambiente cliente/servidor.

Concluso

O SQL Server 7.0 oferece as ferramentas de que voc precisa para migrar seu banco de dados do Access.

12

Apndice A: Diferenas entre a sintaxe de consulta do Microsoft SQL Server e a sintaxe de consulta do Microsoft Access

13

Access
ORDER BY em consultas DISTINCTROW Concatenao de seqncia com & Clusulas/operadores suportados: SELECT SELECT TOP N INTO FROM WHERE GROUP BY HAVING UNION (ALL) ORDER BY WITH OWNERACCESS

SQL Server
ORDER BY em vises no suportadas DISTINCT Concatenao de seqncia com + Clusulas/operadores suportados: SELECT SELECT TOP N INTO FROM WHERE GROUP BY HAVING UNION (ALL) ORDER BY COMPUTE FOR BROWSE OPTION No suportado: WITH OWNERACCESS Funes agregadas: AVG([ALL | DISTINCT] expresso) COUNT([ALL | DISTINCT] expresso) COUNT(*) GROUPING (nome_da_coluna) MAX(expresso) MIN(expresso) STDEV, STDEVP SUM([ALL | DISTINCT] expresso) VAR, VARP No suportados: FIRST, LAST WITH ROLLUP, WITH CUBE em instrues SELECT

No suportados: COMPUTE, FOR BROWSE, OPTION Funes agregadas: AVG COUNT(coluna) COUNT(*) MIN MAX FIRST LAST STDEV, STDEVP SUM VAR, VARP TRANSFORM (Instruo SELECT) PIVOT

14

MAKE TABLE, ALTER TABLE Clusulas suportadas: CONSTRAINT ADD COLUMN DROP COLUMN DROP INDEX Tambm instrues autnomas: DROP INDEX

CREATE TABLE, ALTER TABLE Clusulas suportadas: CONSTRAINT ADD COLUMN DROP COLUMN

Instrues autnomas: DROP INDEX

ACC: Otimizao do desempenho cliente/servidor

Apndice B: Artigo do Knowledge Base sobre a otimizao de desempenh o cliente/servi dor

ltima reviso: 4 de fevereiro de 1998 Identificao do artigo: Q128808 As informaes neste artigo se aplicam s verses 2.0, 7.0 e 97 do Microsoft Access

RESUMO
Avanado: Requer codificao feita por especialista, interoperabilidade e habilidades de multiusurio. Este artigo lista dicas de otimizao de desempenho para quando se usa as fontes de dados do Open Database Connectivity (ODBC) com o Microsoft Access.

Este artigo pressupe que voc j conhea os ambientes e arquiteturas cliente/servidor.

Mtodos para acessar dados


Para acessar dados com um aplicativo cliente/servidor voc pode usar um ou mais dos mtodos seguintes: Tabelas e vises anexadas - Consultas SQL pass-through para enviar instrues SQL diretamente para o servidor Tabelas e vises anexadas- A forma mais eficiente para tratar dados do servidor anexar tabelas e vises SQL do servidor. O Microsoft Access armazena as informaes de campo e ndice para as tabelas anexadas. Isso melhora o desempenho quando voc abre as tabelas. Observe que ser necessrio reanexar tabelas remotas se voc alterar os campos e ndices no servidor.

Usando consultas SQL pass-through


Em muitos aplicativos, voc tanto pode usar consultas do Microsoft Access baseadas em tabelas remotas quanto em consultas SQL pass-through. As consultas pass-through oferecem as seguintes vantagens:

15

O Microsoft Access no compila consultas pass-through. Ele envia a consulta diretamente para o servidor ODBC, agilizando o aplicativo. O Microsoft Access envia a consulta pass-through para o servidor na forma em que voc a insere. Portanto, ocorre mais processamento no servidor e menos dados so trocados pela rede. Formulrios, relatrios e consultas do Microsoft Access podem ser baseados em consultas passthrough, usando-se as tabelas anexadas do ODBC. Voc pode usar a funcionalidade especfica do SQL Server, como os stored procedures e funes intrnsecas baseadas no servidor, que no tm equivalente em cdigo. Atualizar, excluir e acrescentar atividades de consultas pass-through muito mais rpido do que com consultas baseadas em tabelas remotas anexadas, especialmente quando muitos registros so afetados. As consultas pass-through tm as seguintes desvantagens: Uma consulta SQL pass-through sempre retorna uma viso rpida que no pode ser atualizada. Uma consulta no Microsoft Access geralmente retorna um dynaset que reflete as alteraes de outros usurios e que podem ser atualizados. Voc digita os comandos diretamente na janela de consulta de passagem SQL com a sintaxe que o seu servidor requer. Voc no pode usar a grade grfica Query By Example (QBE, consulta por exemplo). Para usar um parmetro com uma consulta pass-through, voc pode executar a consulta no cdigo e modificar a propriedade SQL da consulta. Para obter um exemplo de como modificar a propriedade SQL, veja Building Applications with Microsoft Access 97,captulo 19, Developing Client/Server Applications, pginas 550-551.

Solicitar menos dados do servidor


Solicitar dados do servidor gasta tempo de processamento. Para otimizar o desempenho, solicite apenas aqueles registros e campos de que voc precisa. Reduza o nmero de controles de limite, como caixas de texto, caixas de combinao, caixas de listagem e subformulrios que voc usa. Quando um formulrio aberto, cada um desses controles requer que uma consulta seja enviada ao servidor. Se as tabelas anexadas ODBC tm campos de objeto Memo ou OLE, voc pode definir a propriedade Visible dos campos para No e adicionar um boto de alternncia para definir a propriedade Visible para Yes para que os usurios possam optar por exibir cada campo. Algumas tabelas anexadas (por exemplo, uma tabela contendo os nomes e siglas dos estados) no se alteram com freqncia. Voc pode agilizar o carregamento dos formulrios e reduzir a carga do servidor usando uma cpia local dessas tabelas. Pode tambm providenciar uma forma de atualizar a cpia local com dados mais recentes do servidor.

Otimizando as consultas
O principal mtodo de otimizao das consultas (depois do mtodo de adicionar os ndices apropriados no servidor) se assegurar de que o processamento acontea no servidor. Voc pode evitar uma

16

funcionalidade que no seja suportada pelo servidor, como as funes especficas do Microsoft Access ou funes definidas pelo usurio. Para obter informaes detalhadas sobre o que precisa ser processado localmente, veja o documento Microsoft Jet Database Engine ODBC Connectivity (para obter mais informaes sobre esse documento, veja a sesso Microsoft Jet Database Engine ODBC Connectivitya seguir, neste artigo). Para ver a instruo Select que est sendo enviada para o servidor, voc pode configurar o TraceSQLMode. No Microsoft Access 7.0 e no 97, voc pode editar o Registro e adicionar a opo TraceSQLMode. Para obter mais informaes sobre como editar no Registro e alterar a configurao do ODBC, consulte o seguinte artigo no Microsoft Knowledge Base: Identidade do artigo: Q139044 Ttulo: ACC95: How to Add Former MSACC20.INI ODBC Section to Registry

Para obter mais informaes sobre a configurao do TraceSQLMode no Microsoft Access 97 procure por TraceSQLModeusando a opo Localizar nos tpicos de ajuda do Microsoft Access 97. Para obter mais informaes sobre a configurao do TraceSQLMode no Microsoft Access 2.0, procure por MSACC20.INI e depois Personalizando as configuraes do MSACC20.INIusando o menu de ajuda do Microsoft Access.

Configurao do TryJetAuth
A configurao do TryJetAuth controla a primeira tentativa do Microsoft Access de efetuar logon para o seu servidor, usando a identificao de logon e a senha do Microsoft Access. (Por padro, a identificao de logon do Microsoft Access admine a senha em branco). Se falhar, o Microsoft Access sugerir que voc apresente uma identificao de logon e uma senha. A menos que voc tenha definido que o Microsoft Access use a mesma identificao de logon e senha do seu servidor ODBC, adicione a linha TryJetAuth=0 chave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\8.0\Access\Jet\3.5\Engines \ODBC do Registro do Windows. Isso evita que o Microsoft Access tente efetuar o logon com a identificao errada. OBSERVAO: No Microsoft Access 2.0, adicione a linha TryJetAuth=0 ao arquivo MSACC20.INI.

Datadores
Nos servidores que oferecem suporte aos datadores, (como o Microsoft SQL Server), os campos dos datadores tornam a atualizao de registros mais eficiente. Os campos de datadores so mantidos pelo servidor e so atualizados cada vez que o registro atualizado. Se voc tem um campo de datador, o Microsoft Access precisa conferir apenas o ndice nico mais o campo de datador para ver se o registro se alterou desde a ltima vez em que foi recuperado do servidor. Do contrrio, o Microsoft Access precisa conferir todos os campos no registro. Se voc adicionar um campo de datador a uma tabela anexada, anexe a tabela outra vez para informar ao Microsoft Access do novo campo.

17

Transaes
Usar transaes quando se atualiza ou se insere registros nas tabelas anexadas no Access Basic pode melhorar o desempenho. As transaes permitem que o mecanismo de banco de dados Jet acumule vrias atualizaes e as grave em nico lote. No deixe que as transaes fiquem muito grandes no Microsoft SQL Server, porque elas geram bloqueios que impedem que outros usurios leiam os dados afetados pela transao atual. Embora voc possa aninhar transaes usando o sistema de desenvolvimento do Visual Basic, muitos servidores no oferecem suporte a transaes aninhadas. O Microsoft Access envia apenas a transao de primeiro nvel para o servidor.

Otimizando o Recordsets e o cdigo


Pode-se armazenar todos ou parte dos dados contidos em objetos Recordset do tipo dynaset na memria local, configurando as propriedades CacheSize e CacheStart. O tamanho do cache pode estar entre 5 e 1.200 registros. Quando o tamanho do cache excede a memria disponvel, os registros excedentes passam para um arquivo de disco temporrio. Aplicar o mtodo FillCache enche o cache com dados do servidor. Para recuperar a memria cache, configure a propriedade CacheSize como zero. Ao usar variveis do Recordset, use apenas a funcionalidade de que voc precisa. Por exemplo, voc pode usar a opo DB_APPENDONLY do mtodo OpenRecordset, se precisar apenas adicionar registros novos ao recordset. Se voc no precisa editar ou atualizar habilidades, baseie seu recordset em consultas SQL pass-through. O mtodo mais rpido para inserir e atualizar registros usar as consultas de SQL pass-through no cdigo.

Tabela MSysConf
Voc pode criar uma tabela denominada MSysConf em seu servidor, para controlar o preenchimento em segundo plano (a velocidade em que o Microsoft Access l registros do servidor durante o tempo ocioso). Voc pode usar essa tabela para definir o nmero de linhas de dados que so recuperadas de uma vez e o nmero de segundos entre cada recuperao. Se ocorrer excessivo bloqueio de leitura no servidor, voc poder ajustar as configuraes da tabela para aumentar a velocidade de preenchimento em segundo plano. Se for gerado excessivo trfico de rede pelo preenchimento de segundo plano, voc pode ajustar as configuraes para diminuir a velocidade. Documento do Microsoft Jet Database Engine ODBC Connectivity Uma importante fonte de informaes adicionais o documento Jet Database Engine ODBC Connectivity. Esse documento trata do mecanismo do banco de dados Microsoft Jet, verso 3.0, e de como ele usa o ODBC.

REFERNCIAS
Para obter mais informaes sobre a otimizao dos aplicativos cliente/servidor, consulte o Microsoft Access Building Applications, captulo 19, Developing Client/Server Applications, pginas 523556

18

Para informaes sobre como obter o documento Jet Database Engine ODBC Connectivity, consulte o seguinte arquivo no Microsoft Knowledge Base: IDENTIDADE DO ARTIGO: Q128385 TTULO : ACC95: Jet & ODBC Documento disponvel em MSL Voc tambm pode obter este artigo atravs das Microsoft FastTips, pedindo o item nmero 28385 do menu principal das FastTips. Palavras-chave : OdbcOthr kbusage kbfaq Verso Plataforma Hardware : 2.0 7.0 97 : WINDOWS : x86 Tipo de verso : kbhowto Voc pode usar os seguintes recursos adicionais para descobrir mais sobre como migrar para o SQL Server: Informaes sobre o desenvolvimento cliente/servidor Manuais on-line do SQL Server Microsoft Knowledge Base: support.microsoft.com Captulo 15, Developing Client-Server Applications,no Access97 Developers Handbook, de Paul Litwin, Ken Getz e Mike Gilbert.

Obtendo mais informaes

19

Vous aimerez peut-être aussi