Nu u de verschillende beschikbare architecturen en databasemotoropties hebt gezien, wilt u de beslissingspunten en parameters voor het maken van de upsizing-beslissing verkennen.
het belangrijkste onderdeel in dit proces is begrijpen dat niet alle Accessdatabases moeten worden vergroot. In feite zou een meerderheid van de toegangstoepassingen niet moeten worden verhoogd—de kosten en verstoring van het bedrijfsleven zijn gewoon geen kosteneffectief gebruik van uw middelen. Deze databases werken prima op een dagelijkse basis en hebben geen kenmerken nodig zoals schaalbaarheid, veiligheid en 100% betrouwbaarheid. Van alle Access databases in uw organisatie, slechts een paar zijn kandidaten voor upsizing.
bovendien kan uit de lijst met kandidaten voor upsizing een meerderheid worden geüpized met behulp van een kosteneffectief proces waarbij alleen de gegevens naar SQL Server worden verplaatst. Alle functionaliteit van de applicatie in termen van formulieren en rapporten wordt bewaard in Access. Slechts het kleinste percentage van de opwaartse projecten omvat het herschrijven van de Access Application in een nieuwe omgeving zoals .NET.
de volgende paragraaf onderzoekt elk van de belangrijkste gebieden die betrokken zijn bij databaseplanning en bespreekt hoe Access presteert in elk gebied.
beveiliging
Microsoft Access biedt drie verschillende beveiligingsmechanismen.
- Databasewachtwoorden: Wijs een wachtwoord toe aan een database. Alleen gebruikers die het wachtwoord kennen, kunnen de database openen.
- Jet Workgroup Security: gebruikers, groepen en objectrechten kunnen worden gedefinieerd om te beperken wie gegevens kan bekijken/bewerken en wat ze kunnen uitvoeren. Workgroup security is beschikbaar voor MDB databases, maar niet ACCDB databases.
- bestandsversleuteling: de inhoud van de database kan op bestandsniveau worden versleuteld. ACCDB encryptie is aanzienlijk beter dan encryptie voor MDB ‘ s.
helaas zijn deze mechanismen niet robuust noch betrouwbaar. Database wachtwoorden maken gebruik van een zeer eenvoudige encryptie mechanisme. In feite, het verwijderen van een Access database wachtwoord is eenvoudig zaak gezien het feit dat gratis en commerciële wachtwoord “removers” zijn gemakkelijk te vinden op het web. Terwijl Access gebruikers kunnen niet bezorgd over dergelijke vervalt, IT-managers zeker zou moeten zijn.
hoewel de beveiliging van Jet Workgroup robuuster is, laat het de inhoud van de gehele MDB-database open vanuit het bestandssysteem. Aangezien alle tabelgegevens en code in duidelijke weergave worden opgeslagen, is het een triviale zaak om een mdb-bestand in een string-compatibele editor te openen en code, wachtwoorden en tabelgegevens te bekijken.
ten slotte, omdat Toegang volledige leesrechten vereist voor alle gebruikers tot het eigenlijke databasebestand, kan iedereen die een gedeelde netwerkschijf kan zien met de database op een schijf of CDR lopen of het buiten uw organisatie e-mailen.
als beveiliging van belang is, is SQL Server veel veiliger dan Microsoft Access, Excel, Word of elk ander programma dat zijn bestanden direct opslaat op de harde schijf die toegankelijk is voor de gebruiker.
betrouwbaarheid en onderhoud
betrouwbaarheid is een van de belangrijkste benchmarks om te onderzoeken bij het overwegen van opwaardering. Voor veel bedrijfskritische toepassingen is betrouwbaarheid de belangrijkste overweging. Microsoft Access is om verschillende redenen niet zo betrouwbaar als SQL Server.
Databasecorruptie
wanneer Microsoft Access / Jet-databases een onverwachte interne fout of verbindingsprobleem tegenkomen, kunnen ze beschadigd raken. Een corrupte database over het algemeen vergrendelt alle gebruikers van de database en resulteert in verlies van gegevens en verstoring van het bedrijfsleven.
Microsoft Access / Jet-databases zijn om een aantal redenen meer vatbaar voor corruptie dan SQL Server. Aangezien Access / Jet een model voor bestandsdeling gebruikt, houden alle gebruikers tegelijkertijd actieve verbindingen met gegevens. Als een van deze gebruikers onverwacht de verbinding verliest, kan de database corrupt worden. Verbindingsverlies kan optreden als de netwerkverbinding van de gebruiker intermitterend is, stuurprogrammaversies zijn geen huidige of conflicterende versies van de Jet DLL ‘ s worden gebruikt om hetzelfde databasebestand te lezen.
Microsoft Access bevat een Compact / reparatie programma, maar ernstige database corruptie wordt niet opgelost door dit programma. Reparatie diensten van derden zijn beschikbaar, maar dit vereist het verzenden van de getroffen database uit naar een andere locatie, het betalen van een vergoeding, en wachten op het te worden geretourneerd met gemengde resultaten.
onderhoudsproblemen
Windows staat het kopiëren van een Microsoft Access-database toe, zelfs als mensen deze geopend hebben, zodat u een back-up kunt maken, maar dat kan een probleem zijn als iemand de gegevens wijzigt op het moment dat het bestand wordt gekopieerd.
het comprimeren van een Microsoft Access-database vereist dat alle gebruikers uit de database verwijderd zijn, wat problematisch is voor oplossingen die 24/7 draaien. Er wordt een slot geplaatst op de database op bestandsniveau (*.ldb of *.laccdb bestanden) zodra het wordt geopend door de eerste gebruiker.
in een multi-user omgeving vertelt Microsoft Access u niet wie er momenteel in de database zit, dus het kan een administratieve hoofdpijn zijn om mensen van het systeem te halen. Met ons Total Access Admin-programma kunt u de gebruikers die in en uit de database gaan in real-time controleren, wat helpt en de database kan comprimeren nadat iedereen afsluit, maar het is geen ingebouwde functie van Microsoft Access.
het is vaak moeilijk om het proces te coördineren om ervoor te zorgen dat alle gebruikers zich afmelden bij een Toegangstoepassing voordat ze een back-up maken.Typische scenario ‘ s betrekken gebruikers verlaten hun computers op wanneer ze het kantoor verlaten voor de dag. Dit laat de database open en back-upsoftware zal niet beable om betrouwbaar te kopiëren van het databasebestand. Vaak wordt dit alleen gedetecteerd nadat de back-up mislukt, waardoor de systeembeheerder het probleem kan opsporen en hopen dat het is opgelost voordat de volgende back-up wordt uitgevoerd.
bovendien is Microsoft Access geen self-tuning zoals SQL Server. Het is niet automatisch terug te vorderen verloren database ruimte of het optimaliseren van indexen en queries. Dit onderhoud wordt uitgevoerd door het uitvoeren van de reparatie / compact functie. Met ons Total Visual Agent-programma kunt u dit automatiseren op een schema dat u opgeeft en een audittrail onderhouden, maar het is geen ingebouwde functie van Microsoft Access.
als een organisatie niet regelmatig back-ups maakt van individuele desktopdatabases, kunnen mensen Toegangsbases maken op hun pc ‘ s die nooit geback-upt of onderhouden worden. Organisaties kunnen ze behandelen als gebruikersgegevens die verloren kunnen gaan alsof het een Excel-spreadsheet of Word-document is, maar beter beleid moet op zijn plaats zijn, zodat gebruikers hun databases kunnen opslaan waar basis systeembeheer wordt geboden.
Microsoft Access-databases moeten worden geback-upt voor noodherstel en periodiek worden gecomprimeerd om gezond te blijven. Er moet een geautomatiseerd systeem worden ingevoerd om dat te regelen voor de vele Toegangsdatabases die vandaag bestaan en die in de toekomst worden gecreëerd. SQL Server upsizing moet worden overwogen voor de databases waar dergelijke geautomatiseerde processen niet kunnen worden geïmplementeerd als gevolg van continu gebruik van de database of de kosten van het verliezen van gegevens hoog zijn.
schaalbaarheid
schaalbaarheid wordt gedefinieerd als het vermogen van een toepassing om op een aanvaardbare manier te werken naarmate het aantal gebruikers of processen dat de toepassing oproept toeneemt. In sommige situaties kan Microsoft Access / Jet niet schalen om de vraag in de database te ondersteunen.
Databasearchitectuur splitsen
voordat upsizing wordt uitgevoerd, moet uw Access-database een Databasearchitectuur splitsen. Dit scheidt de gebruikersapplicatie database van de back-end gedeelde data database. De front-end applicatie database links naar de gedeelde database en upgrades zijn gemakkelijker omdat de gegevens niet hoeft te worden gewijzigd voor nieuwe releases (mits tabellen structuren niet worden gewijzigd). Zie voor meer informatie onze paper over Microsoft Access Split-Databasearchitectuur om multi-Useromgevingen te ondersteunen, de prestaties te verbeteren en onderhoudbaarheid te vereenvoudigen. De gesplitste database-architectuur zal ook helpen bij een upsizing poging om de bestaande toegang front-end te behouden.
als een enkele kopie van een Microsoft Access-database zich op een netwerkstation bevindt en tegelijkertijd door meerdere gebruikers wordt geopend, kan er een probleem zijn met de schaalbaarheid. Maar dat moet worden aangepakt met behulp van een gesplitste database architectuur in plaats van upsizing naar SQL Server.
aantal gelijktijdige gebruikers
er zijn mythes over Microsoft Access-databases die niet meer dan 20 gebruikers kunnen ondersteunen. Dat was misschien het geval toen Microsoft Access in 1992 werd geïntroduceerd, maar dat is al geruime tijd niet het geval.
Microsoft Access maakt technisch tot 255 verbindingen per database mogelijk. Dat betekent dat het kan worden gebruikt voor applicaties voor teams vele malen dat als ze niet allemaal nodig hebben om het te gebruiken op hetzelfde moment.
het aantal verbindingen / gebruikers dat een Toegangsdatabase kan ondersteunen, wordt bepaald door hoe goed de applicatie is ontworpen en geïmplementeerd. Een goed ontworpen Access applicatie kan 100+ gelijktijdige gebruikers ondersteunen met fatsoenlijke prestaties. Aan de andere kant, een slecht ontworpen Access applicatie kan draaien op een crawl met twee gebruikers. Of sommige processen zijn gewoon tijdrovend en zal langzaam zijn, ongeacht welke database wordt gebruikt. Het gaat niet om de technologie, maar om de implementatie.
helaas zijn veel Toegangsdatabases niet goed ontworpen of geïmplementeerd met beste praktijken. Dit komt omdat de meeste Access databases worden gemaakt door gebruikers die simpelweg niet de ervaring of kennis hebben om professionele databasetoepassingen te maken. Ze zijn in de loop van de tijd gebouwd en nieuwe functies en datamodellen worden aangekoppeld als de behoefte zich voordoet. Het resultaat is een totaaloplossing die niet meer dan een paar gebruikers op betrouwbare wijze kan ondersteunen.
vergroot Microsoft Access-toepassingen niet om redenen van aantal gebruikers als het aantal gelijktijdige gebruikers relatief laag is. Upsizing moet worden overwogen als men nodig heeft om 100+ gelijktijdige gebruikers en meer in de toekomst te ondersteunen.
maximale databasegrootte
elke Microsoft Access-databases heeft een maximale grootte van 2 GB. Dat is veel tekst en numerieke gegevens, maar kan gemakkelijk worden overschreden als bestanden en afbeeldingen worden opgeslagen. Voor de overgrote meerderheid van Microsoft Access databases, dat is veel groter dan de database ooit zal krijgen. Soms worden databases groot, maar een compact reduceert het meestal tot een meer redelijke grootte. Zorg ervoor dat u ook decompileren uw Microsoft Access-databases van tijd tot tijd bij het verdichten.
met een gesplitste databasearchitectuur kan een Microsoft Access-toepassing linken naar gegevens uit meerdere Microsoft Access-databases die samen meer dan 2 GB bevatten. Dat is natuurlijk geen goed ontwerp als gegevens niet over meerdere tabellen of databases moeten worden verdeeld.
opschalen moet worden overwogen als de database meer dan 1 GB of in de nabije toekomst meer dan 2 GB zal bedragen.
verschillende versies van Microsoft Access en Jet
er zijn vele versies van Microsoft Access. Een Access database oplossing kan afhankelijk zijn van een bepaalde versie van een Access database formaat, vertrouwen op functies die alleen beschikbaar zijn op bepaalde versies van Access, componenten zoals ADO en DAO, enz. Hoewel het gemakkelijk is om een Access-database te distribueren naar gebruikers die al toegang op hun PC hebben geïnstalleerd, is het niet zo gemakkelijk om te bepalen welke versie van Access wordt geopend om het uit te voeren.
op een PC kunnen meerdere versies van Access geïnstalleerd zijn. Het openen van een ACCDB of MDB-bestand direct start de toegang versie die is gekoppeld aan die bestandsextensie (meestal de laatste Toegang versie die werd geopend).
bovendien, toen Access 2000 werd geïntroduceerd, was het nieuwe MDB-bestandsformaat niet compatibel met de versie van prior Access 97. Het openen van de database in Access 2000 (of later) kan de database upgraden naar het nieuwe formaat en voorkomen dat gebruikers van de oude versie het openen, wat een probleem was in multi-user omgevingen. Dit probleem heeft zich sinds de versie van 2000 niet meer voorgedaan.
ons Total Access opstartprogramma helpt organisaties om Microsoft Access-databases centraal te beheren en te implementeren op het bureaublad van elke gebruiker en te bepalen welke versie van Access hiervoor wordt gestart. Dit maakt het gemakkelijk om uw toegangstoepassingen te distribueren met een snelkoppeling, en de nieuwste versie van uw database wordt altijd geïnstalleerd op de machine van elke gebruiker. Het maakt het ook eenvoudig om uw applicatie te upgraden van de ene versie van Access naar de andere.
problemen met het beheren van verschillende versies van Microsoft Access of het verspreiden van updates van Microsoft Access-databases worden niet opgelost door te migreren naar SQL Server als u de front-end van de toegang van uw database behoudt. Het kan alleen worden aangepakt door Microsoft Access volledig te vervangen. Dat kan het onmiddellijke probleem oplossen, maar het voorkomt dat gebruikers hun werk gedaan krijgen. We hebben gezien organisaties verbieden Microsoft Access alleen voor werknemers om slechtere database producten te kopen in plaats daarvan, omdat de database probleem niet verdwenen. Voor de meeste organisaties is het onpraktisch om professionele ontwikkelaars te gebruiken om elke database te maken die nodig is wanneer de meeste door eindgebruikers kunnen worden afgehandeld.
Performance
Performance is een veel voorkomende reden dat mensen hun Microsoft Access-databases willen upgraden naar SQL Server. Er is een aanname dat SQL Server sneller zal draaien dan een Microsoft Access-database. SQL Server wordt immers beheerd door een aparte server die alleen de gevraagde records verzendt en meerdere CPU ‘ s en machines kan gebruiken om enorme datasets te beheren.
Microsoft Access, dat gebaseerd is op een bestand, verzendt de volledige database, tabel of index, afhankelijk van het verzoek dat de client (PC) moet verwerken.
hoewel dit de rand aan de server benadering zou geven, hebben we ontdekt dat de prestaties in veel situaties niet verbeterd zijn. Hier zijn enkele redenen:
- veel toegangsdatabases zijn relatief klein (minder dan 100 MB). Met de huidige hardware en netwerkconnectiviteit, de hoeveelheden gegevens die worden doorgegeven is bijna onmiddellijk of het nu een paar records of de hele tabel.
- SQL Server voert extra werk uit dat toegang geeft tot databases niet. SQL Server kan bijvoorbeeld een transactielogboek bijhouden en continu onderhoud uitvoeren dat overhead toevoegt. We hebben gezien dalingen in prestaties wanneer kleine databases worden opgewaardeerd naar SQL Server.
- SQL Server is ontworpen voor het verwerken van zeer grote databases tot ver buiten de 2 GB limiet van toegang. Het is niet geoptimaliseerd voor wat het zou beschouwen kleine databases.
- het uitvoeren van query ‘ s uit verschillende gekoppelde tabelbronnen kan niet profiteren van SQL Server optimalisatie omdat het werk nog steeds wordt gedaan door Access
- Data caching door Microsoft Access voor Access tables bestaat omdat het weet of de gegevens zijn veranderd. Voor SQL Server-gegevens is caching in het geheugen niet mogelijk omdat de gegevens mogelijk zijn veranderd sinds de laatste aanvraag.
- een slecht ontworpen set tabellen, queries of VBA-code zal langzaam draaien, ongeacht of de gegevens zich in Access of SQL Server bevinden.
voordat u naar SQL Server gaat om prestatieredenen, moet u ervoor zorgen dat uw Access database geoptimaliseerd is zodat deze zo goed mogelijk in Access draait. Gaan naar SQL Server zal niet ernstige database en query ontwerp problemen op te lossen. Het repareren van deze in toegang is eigenlijk gemakkelijker dan dit later in SQL Server te doen, dus de tijd en moeite die je hiervoor besteedt wordt bewaard als je later opschuift.
om ervoor te zorgen dat uw Microsoft Access-database geen ernstige problemen heeft, gebruikt u ons Total Access Analyzer-programma om uw database te documenteren en te analyseren. Het detecteert meer dan 300 soorten fouten, ontwerpsuggesties en prestatieproblemen die u kunnen helpen uw Toegangsdatabase te optimaliseren.
voor relatief kleine Microsoft Access-databases, upsize niet naar SQL Server alleen om prestatieredenen. Er kan een vermindering van de prestaties na het vergroten van de grootte. Zoek naar manieren om de problemen in de toegang te optimaliseren voordat u de investering te vergroten. Prestatieproblemen kunnen geen verband houden met de gegevensopslag.