ACC2000: Ottimizzazione delle prestazioni di client/server

Traduzione articoli Traduzione articoli
Identificativo articolo: 208858 - Visualizza i prodotti a cui si riferisce l?articolo.
Avanzate: Richiede la codifica degli esperti, interoperabilitÓ e competenze multiutente.

Il contenuto di questo articolo Ŕ applicabile solo ai database Microsoft Access (mdb).

Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo sono elencati suggerimenti per ottimizzare le prestazioni di ODBC (Open Database Connectivity) di origini dati in Microsoft Access.

Nota : questo articolo si presume che conosca le architetture e ambienti client/server.

Informazioni

Metodi di accesso ai dati

Per accedere ai dati del server con un'applicazione client/server, Ŕ possibile utilizzare uno o pi¨ dei metodi descritti di seguito:

  • Tabelle collegate e visualizzazioni
  • Query pass-through SQL per inviare istruzioni SQL direttamente al server
  • Un progetto di Access

Collegato tabelle e viste

Il modo pi¨ efficiente per gestire i dati del server consiste nel collegare tabelle e viste dal server. Microsoft Access memorizza le informazioni di campo e indici per le tabelle collegate. Questo consente di migliorare le prestazioni in quando si apre le tabelle.

Nota : se si apportano modifiche ai campi o indici per il server, Ŕ necessario collegare nuovamente tabelle remote in Access.

Esecuzione di query Pass-Through SQL

In molte applicazioni, Ŕ possibile creare query di Microsoft Access basate su tabelle remote e anche creare query pass-through SQL. Query pass-through offrono i seguenti vantaggi:
  • Microsoft Access non compila una query di tipo pass-through. Invia la query direttamente al server ODBC. Questo consente di velocizzare l'applicazione.
  • Accesso invia la query pass-through al server, esattamente come immesso. Di conseguenza, maggiore elaborazione avviene sul server e un numero inferiore di dati vengono scambiate in rete.
  • Maschere, report e query di Microsoft Access pu˛ essere basata su query pass-through, utilizzo di tabelle ODBC collegate.
  • ╚ possibile utilizzare funzionalitÓ specifiche di SQL Server (ad esempio la stored procedure e funzioni intrinseche basate su server), che non dispone di alcun equivalente nel codice.
  • Aggiornare, eliminare e aggiungere l'azione di tipo pass-through query sono molto pi¨ veloci rispetto a query di azione basate su tabelle remote collegate, soprattutto se molti record sono interessati.
Le query pass-through presentano i seguenti svantaggi:
  • Una query SQL pass-through restituisce sempre uno snapshot che non pu˛ essere aggiornato. In genere, una query di Microsoft Access restituisce un dynaset che riflette le modifiche apportate dagli altri utenti e pu˛ essere aggiornata.
  • ╚ necessario digitare i comandi direttamente nella finestra query SQL Pass-Through con la sintassi che richiede al server. Non Ŕ possibile creare query pass-through nella griglia di struttura della query.
  • Se si richiede un parametro con una query pass-through, Ŕ necessario eseguire la query nel codice e modificare la proprietÓ della query SQL . Per ulteriori informazioni e un esempio di proprietÓ SQL di modifica, fare clic su articolo numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
    232493ACC2000: Come simulare parametri in una query SQL Pass-Through

Richiedere meno dati del server

Richiesta dati dal tempo di elaborazione i costi di server. Per ottimizzare le prestazioni, Ŕ possibile richiedere solo i record e campi necessari.

Ridurre il numero di controlli associati, ad esempio caselle di testo, caselle combinate, caselle di riepilogo e le sottomaschere. Quando si apre una maschera, ciascuno di questi controlli invia una query separata al server.

Se le tabelle ODBC collegate dispone di campi oggetto OLE o Memo, Ŕ possibile impostare la proprietÓ di Visible dei campi su No e aggiungere un pulsante Attiva/Disattiva per impostare la proprietÓ Visible su , in modo che gli utenti possano scegliere per la visualizzazione.

Alcune tabelle collegate non vengono modificati frequentemente. Ad esempio, una tabella contenente i nomi e le abbreviazioni dei 50 stati sarebbe non modificato spesso. ╚ possibile velocizzare il caricamento del modulo e ridurre il carico server memorizzando una copia locale di queste tabelle. ╚ possibile fornire un modo per aggiornare la copia locale con i dati pi¨ recenti dal server.

Ottimizzazione delle query

Il metodo principale per l'ottimizzazione delle query (dopo l'aggiunta degli indici appropriati sul server) consiste nel garantire che l'elaborazione avviene sul server. ╚ consigliabile evitare di funzionalitÓ che non Ŕ supportata dal server, ad esempio le funzioni specifiche di Microsoft Access o funzioni definite dall'utente. Per informazioni dettagliate su cosa deve essere elaborato localmente, vedere il white paper di connettivitÓ ODBC di Microsoft Jet Database Engine (per ulteriori informazioni su questo white paper, vedere la sezione "Microsoft Jet Database Engine ODBC connettivitÓ white paper" pi¨ avanti in questo articolo).

Per visualizzare l'istruzione SELECT inviata al server, Ŕ possibile impostare il TraceSQLMode impostazione. Per impostare questo, attenersi alla seguente procedura:
  1. Fare clic su Start e quindi fare clic su Esegui .
  2. Nella finestra di dialogo Apri digitare Regedit .
  3. Espandere la sottostruttura HKEY_LOCAL_MACHINE fino a individuare la sottochiave SOFTWARE\Microsoft\Jet\4.0\Engines.
  4. Fare clic su moduli .
  5. Se il valore TraceSQLMode non viene visualizzato nel riquadro di destra, scegliere Nuovo dal menu Modifica , quindi Valore DWORD .
  6. Nella casella nome nel riquadro di destra digitare TraceSQLMode per il nuovo valore.
  7. Con il nuovo valore ancora selezionato, scegliere Modifica dal menu Modifica .
  8. In base , selezionare decimale . Nella casella dati valore digitare 1 e quindi fare clic su OK .
Per ulteriori informazioni sull'impostazione TraceSQLMode, scegliere Guida in linea di Access dal menu della Guida, digitare "TraceSQLMode" nell'Assistente di Office o nella ricerca libera e quindi scegliere Cerca per visualizzare l'argomento.

Impostazione TryJetAuth

TryJetAuth permette di controllare se Microsoft Access prima tenta di accedere al server con l'ID di accesso di Microsoft Access e la password. (Per impostazione predefinita, l'ID di accesso di Microsoft Access Ŕ "admin" e la password Ŕ vuota). In questo caso, verrÓ richiesto di specificare un ID di accesso e una password. Se non Ŕ stata impostata verrÓ per utilizzare l'ID di accesso stesso e la password come il server ODBC, aggiungere la riga "TryJetAuth = 0" alla HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\ODBC\TryJetAuth chiave del Registro di sistema. Che Microsoft Access tenti di accedere con l'ID non valido. Per effettuare questa operazione, attenersi alla seguente procedura:
  1. Fare clic su Start e quindi fare clic su Esegui .
  2. Nella finestra di dialogo Apri digitare Regedit .
  3. Individuare la sottostruttura HKEY_LOCAL_MACHINE.
  4. Espandere la sottostruttura HKEY_LOCAL_MACHINE fino a individuare la seguente sottochiave:
    SOFTWARE\Microsoft\Jet\4.0\ODBC\TryJetAuth
  5. Fare clic su moduli .
  6. Se il valore TryJetAuth non Ŕ disponibile, scegliere Nuovo dal menu Modifica , quindi Valore DWORD .
  7. Nella casella nome nel riquadro di destra digitare TryJetAuth per il nuovo valore.
  8. Con il nuovo valore ancora selezionato, scegliere Modifica dal menu Modifica .
  9. In base , selezionare decimale . Nella casella dati valore digitare 1 e quindi fare clic su OK .

Timestamp

Nei server che li supportano, ad esempio Microsoft SQL Server, campi data e ora rendere pi¨ efficiente l'aggiornamento del record. I campi di timestamp vengono gestiti dal server e vengono aggiornati ogni volta che viene aggiornato il record.

Se si dispone di un campo di tipo timestamp, necessario controllare solo l'indice univoco e il campo di timestamp per verificare se il record ha subito modifiche dall'ultimo recuperati dal server. In caso contrario, Microsoft Access deve controllare tutti i campi del record. Se si aggiunge un campo di tipo timestamp a una tabella collegata, ricollegare la tabella per informare di Microsoft Access del nuovo campo.

Transazioni

Utilizzo le transazioni in Visual Basic, Applications Edition (VBA) quando si aggiorna o inserire record in tabelle collegate pu˛ migliorare le prestazioni. Le transazioni consentono di database Microsoft Jet riunire pi¨ aggiornamenti vengono scritte come singolo batch. Con Microsoft SQL Server, Ŕ necessario mantenere le transazioni brevi poichÚ generano blocchi che impediscono ad altri utenti di leggere i dati interessati dalla transazione corrente. Anche se Ŕ possibile nidificare le transazioni con VBA, Ŕ possibile che la maggior parte dei server non supportano le transazioni nidificate. Microsoft Access invia solo la transazione di primo livello al server.

Ottimizzazione di codice e Recordset

╚ possibile memorizzare tutti o parte dei dati contenuti negli oggetti Recordset di tipo Dynaset in memoria locale impostando la proprietÓ CacheSize e CacheStart .

La dimensione della cache pu˛ essere tra i record di 5 e 1200. Se la dimensione della cache supera la memoria disponibile, i record in eccesso confluiscono in un file temporaneo sul disco. L'applicazione del metodo FillCache riempie la cache con i dati del server. Per recuperare la memoria cache, impostare la proprietÓ di proprietÓ CacheSize su zero.

Con le variabili di oggetto Recordset, Ŕ necessario implementare solo la funzionalitÓ che Ŕ necessario. Ad esempio, aggiungere l'opzione dbAppendOnly con il metodo OpenRecordset se si desidera aggiungere nuovi record a un recordset. Se la modifica o la possibilitÓ di aggiornamento non Ŕ necessario, Ŕ possibile basare i recordset in SQL query pass-through. Il metodo pi¨ veloce per inserire e aggiornare record consiste nell'utilizzare query pass-through SQL nel codice.

Tabella MSysConf

╚ possibile creare una tabella MSysConf del server per la popolazione di sfondo del controllo (la frequenza con cui verranno letti i record dal server durante l'inattivitÓ). Con questa tabella, Ŕ possibile impostare il numero di righe di dati che vengono recuperati in una sola volta e il numero di secondi di ritardo tra ciascun recupero. Se si verifica eccessivo lettura-blocco sul server, Ŕ possibile modificare le impostazioni di tabella per aumentare la velocitÓ di popolazione di sfondo. Se troppo traffico di rete viene generato dalla compilazione in background, Ŕ possibile modificare le impostazioni per rallentare.

White paper di Microsoft Jet Database Engine ODBC connettivitÓ

Un'origine importante per ulteriori informazioni Ŕ il white paper "Jet Database Engine ODBC Connectivity". Questo documento Ŕ stato scritto per Jet 3.0, tuttavia, queste informazioni viene comunque applicano a Jet 4.0. Questo documento vengono illustrati il motore di database Microsoft Jet 3.0 e come utilizza ODBC. Il white paper pu˛ essere scaricato dal seguente sito Web Microsoft:
http://download.microsoft.com/download/access95/whitep5/1/W98/EN-US/Rjwpv3.exe

Un progetto di Access

Un progetto di Access viene utilizzato OLEDB per collegare a Microsoft SQL Server 6.5 o 7.0. Se tutte le tabelle del database Access sono tabelle collegate a SQL Server, per migliorare le prestazioni Ŕ invece possibile creare un progetto di Access. Tuttavia, se il database contiene le tabelle di Access, questa opzione non Ŕ possibile.

ProprietÓ

Identificativo articolo: 208858 - Ultima modifica: giovedý 29 marzo 2007 - Revisione: 3.3
Le informazioni in questo articolo si applicano a:
  • Microsoft Access 2000 Standard Edition
Chiavi:á
kbmt kbdownload kbhowto kbusage KB208858 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 208858
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com