Académique Documents
Professionnel Documents
Culture Documents
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
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.
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.
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.
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
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.
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];
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
procedure:
11
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
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.
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.
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.
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.
19