2009-07-25 14 views
5

Qualcuno ha esperienza sull'utilizzo di Access 2007 con le versioni precedenti di Access (ovvero i file mdb).accdb vs mdb. Quale è più veloce/migliore?

Siamo stati aggiornati, ma stiamo ancora utilizzando il formato mdb. Alcuni dei nostri codici (in particolare Docmd.TransferDatabase acImportReport) sono ora incredibilmente lenti.

Ho provato un test iniziale e convertito il nostro client mdb in accdb e il suddetto TransferDatabase sembrava funzionare meglio.

Ora mi chiedo se dovremmo mordere il proiettile e convertire tutti gli altri file che compongono l'applicazione. Non è necessario per la replica o la sicurezza a livello di utente che sembrano essere le uniche limitazioni della nuova versione dal vecchio. Abbiamo un client mdb, tre database di backend e quindi 3000 mdbs ciascuno contenente un singolo report (non chiedere!).

La nuova versione è più veloce di quella precedente, in particolare su una rete già in difficoltà?

+0

MDB è un formato nativo in Access 2007, quindi un file MDB non è affatto un file di "versione precedente" Gli MDB in formato 2000, 2002, 2003 e 2007 sono tutti nativi per Access 2007. –

+0

La mia ipotesi è che il miglioramento delle prestazioni sia venuto dalla creazione di un nuovo file. Prova a creare un nuovo MDB e importare tutto in esso, e la mia scommessa è che si esibirà più velocemente del tuo vecchio MDB f ront end. –

+0

Creato un nuovo MDB nel 2007 e importa il lotto. Ancora più veloce utilizzando il file accdb .... –

risposta

2

Fare qualcosa di nuovo in accdb (interfaccia saggia); qualsiasi nuovo database creato in MS SQL Server.

Lascia gli elementi esistenti in mdb; se sta funzionando ora, perché pasticciarlo. Gli aggiornamenti hardware compenseranno eventuali peggioramenti delle prestazioni che si verificano.

Prima o poi MS comunicherà che smetteranno di supportare mdb nella loro attuale versione di MS Access; a quel punto vale la pena di triage e iniziare la conversione nel nuovo formato. Ma non rendere il database accdb. Spostalo in qualcosa come MS SQL Server.

Il motivo per cui aspetterò fino a quando non sarai costretto dalla SM è che è improbabile che tu possa ottenere l'approvazione dai detentori di cordoni della borsa per apportare tali modifiche ora; ma quando hai forzato troppo, le corde della borsa si allentano.

+0

Aaah. Ci piacerebbe passare a SQL Server, ma stiamo lavorando all'interno dell'area aziendale piuttosto che nell'area della tecnologia. Sviluppo RAD, se lo desideri, siamo limitati a strumenti desktop come Excel e Access ... 50+ utenti su un mdb da 500 MB su una rete scioccante - Sono contento di non essere uno degli utenti finali! –

+1

Dico uso ACCDB se ACCDB ha caratteristiche di cui hai veramente bisogno (come integrazione Sharepoint). In caso contrario, resta con MDB anche per i nuovi progetti, perché puoi eseguirlo su tutte le versioni precedenti di Access fino al 2000, piuttosto che preoccuparti di far aggiornare le workstation a A2007. –

+0

Grazie David (e ri "nativo" vs "precedente"). Tutti sono stati aggiornati ... e ora stanno cercando forse di avere più RAM per tutti i PC. –

1

Dubito molto che ci sia un sacco di miglioramento delle prestazioni in ACCDB vs MDB anche se suppongo che le singole funzioni potrebbero essere meglio o peggio. Dico questo perché il collo di bottiglia più grande è solitamente collegato alla rete.

Suggerirei comunque di eseguire prove di temporizzazione. Confronta i due. Assicurati che l'MDB sia in formato A2007. Chiudere MDB/ACCDB tra i test, altrimenti l'accesso potrebbe memorizzare nella cache i dati. Esegui il test più volte e se eventuali differenze importanti continuano a eseguirlo di nuovo fino a ottenere tre cicli con circa la stessa ora.

Solo per curioso. Perchè la gente fa Docmd.TransferDatabase acImportReport così tanto? O è quella parte dei 3000 MDB con report in essi?

+0

Spot on. Fa parte dei nostri 3000 mdbs. Abbiamo un'applicazione che supporta molti report diversi per diversi client.Questi vengono importati in fase di esecuzione a seconda del report che viene eseguito. Originariamente questi erano tutti in un unico grande mdb, ma importare quelli era ridicolmente lento una volta che si aveva più di una connessione a quel database. Avere database separati per ogni rpt era molto più veloce. –

+0

Penso che uno dei ragazzi abbia giocato con la creazione di una biblioteca/mda per tutti i report, ma senza molta fortuna. Questi report devono essere ottimizzati abbastanza, quindi è sufficiente modificare il report sulla rete e il client preleva il nuovo. Personalmente non sono un grande fan dell'attuale set-up in quanto non possiamo usare un mde, o anche sapere che tutto il nostro codice viene compilato. –

0

Un test rapido su un database con 187 riferimenti bibliografici di media lunghezza ha mostrato una riduzione delle dimensioni da 1.671.168 byte a 1.306.624.

Ecco un articolo con alcuni pro & contro:

Access File Formats: ACCDB vs MDB

Essi sottolineano con.ACCDB di, è possibile:

  • Includi allegati nel database
  • Usa campi
  • accettano SharePoint e Outlook a fidarsi di questi file, a causa di più valori "[i] mprovements nel modello di sicurezza del database [che] permettono per la convalida di protezione dei file di database"
  • hanno supposto miglioramenti crittografia dovuti all'uso delle API di Windows Cryptographic

Ecco un articolo $ M che racconta come fare allegati come dat umiliare campi dei record:

Attach files and graphics to the records in your database

Il primo articolo dice anche: "Ci sono anche due limitazioni che si dovrebbero prendere in considerazione quando si utilizza ACCDB. I database ACCDB non supportano la sicurezza o la replica a livello utente. "Ho creato una copia di un database e l'ho aperta, senza problemi, anche in una directory diversa, quindi non so cosa ti stai perdendo in termini di replica .

Nota:.. sono stato in grado di Salva con nome per convertirlo in un file con estensione accdb, come indicato nel primo articolo che ho fatto File | Save & pubblicare e Fammi