Všetci máme obmedzenia a accessová databáza nie je výnimkou. Accessová databáza má napríklad limit veľkosti 2 GB a nemôže podporovať viac ako 255 súbežných používateľov. Ak teda potrebujete prejsť na vyššiu úroveň databázy Accessu, môžete migrovať na SQL Server. SQL Server (či už lokálne alebo v cloude Azure) podporuje väčšie množstvo údajov, viac súbežných používateľov a má väčšiu kapacitu ako databázový stroj JET/ACE. Táto príručka vám poskytuje bezproblémový začiatok cesty k SQL Serveru, pomáha zachovať klientske riešenia Accessu, ktoré ste vytvorili, a dúfame, že vás motivuje k používaniu Accessu pre budúce databázové riešenia. Na úspešnú migráciu použite nástroj Microsoft SQL Server Migration Assistant (SSMA), postupujte podľa týchto fáz.
Skôr než začnete
Nasledujúce časti poskytujú základné a ďalšie informácie, ktoré vám pomôžu začať.
Informácie o rozdelených databázach
Všetky databázové objekty Accessu môžu byť buď v jednom databázovom súbore, alebo môžu byť uložené v dvoch databázových súboroch: klientskej databáze a serverovej databáze. Nazýva sa to rozdelenie databázy a je určené na uľahčenie zdieľania v sieťovom prostredí. Serverový databázový súbor musí obsahovať iba tabuľky a vzťahy. Klientsky súbor musí obsahovať iba všetky ostatné objekty vrátane formulárov, zostáv, dotazov, makier, modulov VBA a prepojených tabuliek so serverovými databázami. Pri migrácii accessovej databázy je to podobné ako rozdelená databáza v tom, že SQL Server pracuje ako nový server pre údaje, ktoré sa teraz nachádzajú na serveri.
V dôsledku toho môžete udržiavať klientsku accessovú databázu s prepojenými tabuľkami s tabuľkami SQL Servera. Efektívne môžete odvodiť výhody rýchleho vývoja aplikácií, ktoré poskytuje databáza Accessu, spolu so škálovateľnosťou SQL Servera.
Výhody SQL Servera
Ešte potrebujete nejaké presvedčivé migrovať na SQL Server? Tu je niekoľko ďalších výhod, na ktoré môžete myslieť:
-
Viac súbežných používateľov SQL Server dokáže spracovať oveľa viac súbežných používateľov ako Access a minimalizuje požiadavky na pamäť pri pridaní väčšieho počtu používateľov.
-
Zvýšená dostupnosť S SQL Serverom môžete dynamicky zálohovať databázu, či už prírastkovú alebo dokončenú, kým sa používa. Znamená to, že nemusíte nútiť používateľov, aby zatvorili databázy a aby ste mohli zálohovať údaje.
-
Vysoký výkon a škálovateľnosť Databáza SQL Servera zvyčajne funguje lepšie ako databáza Accessu, najmä s veľkou databázou s veľkosťou terabajtu. SQL Server tiež spracúva dotazy oveľa rýchlejšie a efektívne paralelne spracúvaním dotazov pomocou viacerých natívnych vlákien v rámci jedného procesu na spracovanie používateľských požiadaviek.
-
Vylepšené zabezpečenie Pomocou dôveryhodného pripojenia sa SQL Server integruje so zabezpečením systému Windows, aby poskytol jeden integrovaný prístup k sieti a databáze, pričom využíva to najlepšie z oboch systémov zabezpečenia. Vďaka tomu je spravovanie zložitých schém zabezpečenia oveľa jednoduchšie. SQL Server je ideálny ukladací priestor pre citlivé informácie, ako sú napríklad čísla sociálneho zabezpečenia, údaje kreditnej karty a adresy, ktoré sú dôverné.
-
Okamžitá obnoviteľnosť Ak operačný systém zlyhá alebo dôjde k výpadku napájania, SQL Server môže automaticky obnoviť databázu do konzistentného stavu v priebehu niekoľkých minút a bez zásahu správcu databázy.
-
Používanie siete VPN Prístup a virtuálne súkromné siete (VPN) spolu nevyjdú. V prípade SQL Servera však môžu vzdialení používatelia používať klientsku databázu Accessu na pracovnej ploche a serverový server SQL Server, ktorý sa nachádza za bránou VPN firewall.
-
SQL Server Azure Okrem výhod SQL Servera ponúka dynamickú škálovateľnosť bez výpadkov, inteligentnú optimalizáciu, globálnu škálovateľnosť a dostupnosť, elimináciu nákladov na hardvér a zníženie spravovania.
Výber najlepšej možnosti sql servera Azure
Ak migrujete na Azure SQL Server, môžete si vybrať z troch možností, z ktorých každá má rôzne výhody:
-
Jednoduchá databáza/elastické bazény Táto možnosť má vlastnú množinu prostriedkov spravovaných prostredníctvom servera databázy SQL. Jedna databáza sa podobá obsiahnutej databáze na SQL Serveri. Môžete tiež pridať elastický fond, ktorý je kolekciou databáz so zdieľanou množinou prostriedkov spravovaných prostredníctvom servera databázy SQL. Najbežnejšie používané funkcie SQL Servera sú k dispozícii so vstavanými zálohami, opravami a obnovením. Nie je však zaručená presná doba údržby a migrácia z SQL Servera môže byť náročná.
-
Spravovaná inštancia Táto možnosť je kolekciou systémových a používateľských databáz so zdieľanou množinou prostriedkov. Spravovaná inštancia je ako inštancia databázy SQL Servera, ktorá je vysoko kompabilná s lokálnym SQL Serverom. Spravovaná inštancia obsahuje vstavané zálohy, opravy, obnovenie a z SQL Servera sa dá jednoducho migrovať. Existuje však malý počet funkcií SQL Servera, ktoré nie sú k dispozícii a nie je zaručená presná doba údržby.
-
Virtuálny počítač Azure Táto možnosť umožňuje spustiť SQL Server vo virtuálnom počítači v cloude Azure. Máte úplnú kontrolu nad nástrojom SQL Server a jednoduchou cestou migrácie. Musíte však spravovať zálohy, opravy a obnovenie.
Ďalšie informácie nájdete v téme Výber cesty migrácie databázy do azure a čo je Azure SQL?.
Prvé kroky
Existuje niekoľko problémov, ktoré môžete riešiť dopredu a ktoré môžu pomôcť zjednodušiť proces migrácie pred spustením nástroja SSMA:
-
Pridanie indexov tabuliek a primárnych kľúčov Skontrolujte, či každá accessová tabuľka obsahuje index a hlavný kľúč. SQL Server vyžaduje, aby všetky tabuľky mali aspoň jeden index, a ak je možné aktualizovať tabuľku, vyžaduje, aby prepojená tabuľka mala primárny kľúč.
-
Kontrola vzťahov primárneho alebo cudzieho kľúča Skontrolujte, či sú tieto vzťahy založené na poliach s konzistentnými typmi údajov a veľkosťami. SQL Server nepodporuje spojené stĺpce s rôznymi typmi údajov a veľkosťami v obmedzeniach cudzích kľúčov.
-
Odstránenie stĺpca Príloha SSMA nemigruje tabuľky, ktoré obsahujú stĺpec Príloha.
Pred spustením SSMA vykonajte nasledujúce prvé kroky.
-
Zavrite accessovú databázu.
-
Uistite sa, že aktuálni používatelia pripojení k databáze tiež zavrú databázu.
-
Ak je databáza vo formáte súboru .mdb, odstráňte zabezpečenie na úrovni používateľa.
-
Zálohujte databázu. Ďalšie informácie nájdete v téme Ochrana údajov pomocou procesov zálohovania a obnovenia.
Tip Zvážte inštaláciu vydania Microsoft SQL Server Express na pracovnej ploche, ktorá podporuje až 10 GB a predstavuje bezplatný a jednoduchší spôsob na spustenie a kontrolu migrácie. Po pripojení použite ako inštanciu databázy lokálnu databázu.
Tip Ak je to možné, použite samostatnú verziu Accessu.
Spustiť SSMA
Spoločnosť Microsoft poskytuje nástroj Microsoft SQL Server Migration Assistant (SSMA) na zjednodušenie migrácie. SSMA migruje hlavne tabuľky a výberové dotazy bez parametrov. Formuláre, zostavy, makrá a moduly VBA sa neskonvertujú. Prieskumník metaúdajov SQL Servera zobrazuje databázové objekty Accessu a objekty SQL Servera, vďaka čomu môžete skontrolovať aktuálny obsah oboch databáz. Ak sa v budúcnosti rozhodnete pre prenos ďalších objektov, tieto dve pripojenia sa uložia do súboru migrácie.
Poznámka: Proces migrácie môže určitý čas trvať v závislosti od veľkosti databázových objektov a množstva údajov, ktoré je potrebné preniesť.
-
Ak chcete migrovať databázu pomocou nástroja SSMA, najskôr stiahnite a nainštalujte softvér dvojitým kliknutím na stiahnutý súbor MSI. Skontrolujte, či máte v počítači nainštalovanú príslušnú 32 alebo 64-bitová verzia.
-
Po inštalácii nástroja SSMA ho otvorte na pracovnej ploche, najlepšie z počítača s databázovým súborom Accessu.
Môžete ho otvoriť aj v počítači, ktorý má prístup k accessovej databáze zo siete v zdieľanom priečinku.
-
Postupujte podľa počiatočných pokynov v nástroji SSMA a poskytnite základné informácie, ako je napríklad umiestnenie SQL Servera, databáza Accessu a objekty na migráciu, informácie o pripojení a informácie o tom, či chcete vytvoriť prepojené tabuľky.
-
Ak migrujete na SQL Server 2016 alebo novšiu verziu a chcete aktualizovať prepojenú tabuľku, pridajte stĺpec rowversion výberom položky Nástroje na revíziu > nastavenia projectu > Všeobecné.
Pole rowversion pomáha predchádzať konfliktom záznamov. Program Access používa toto pole rowversion v prepojenej tabuľke SQL Servera na určenie času poslednej aktualizácie záznamu. Ak pridáte pole rowversion do dotazu, Access ho použije na opätovné výber riadka po operácii aktualizácie. Zvyšuje sa tým efektivita tým, že sa vyhnete chybám konfliktov pri zápise a scenárom odstraňovania záznamov, ktoré sa môžu vyskytnúť, keď Access zistí rôzne výsledky z pôvodného odoslania, napríklad pri typoch údajov s číslom s pohyblivou desatinnou čiarkou a spúšťačmi, ktoré upravujú stĺpce. Nepoužívajte však pole rowversion vo formulároch, zostavách alebo kódoch VBA. Ďalšie informácie nájdete v téme Rowversion.
Poznámka: Vyhnite sa mätúce rowversion s časovými pečiatkmi. Hoci časová pečiatka kľúčového slova je synonymom pre rowversion v SQL Serveri, nie je možné použiť rowversion ako spôsob časovej pečiatky zadávania údajov.
-
Ak chcete nastaviť presné typy údajov, vyberte položku Nástroje na revíziu > Nastavenia projektu > Priradenie typov. Ak napríklad ukladáte len anglický text, môžete použiť varchar a nie nvarchar .
Konvertovanie objektov
SSMA konvertuje objekty Accessu na objekty SQL Servera, ale neskopíruje objekty okamžite. SSMA poskytuje zoznam nasledujúcich objektov na migráciu, aby ste sa mohli rozhodnúť, či ich chcete premiestniť do databázy SQL Servera:
-
Tabuľky a stĺpce
-
Výber dotazov bez parametrov.
-
Primárne a cudzie kľúče
-
Indexy a predvolené hodnoty
-
Obmedzenia kontroly (povoliť vlastnosť stĺpca s nulovou dĺžkou, overovacie pravidlo stĺpca, overenie tabuľky)
Najvhodnejším postupom je použiť správu hodnotenia SSMA, ktorá zobrazuje výsledky konverzie vrátane chýb, upozornení, informačných správ, odhadu času vykonania migrácie a jednotlivých krokov na opravu chýb, ktoré je potrebné vykonať pred premiestnením objektov.
Konvertovanie databázových objektov prevezme definície objektov z metaúdajov Accessu, skonvertuje ich na ekvivalentnú syntax transact-SQL (T-SQL) a potom načíta tieto informácie do projektu. Potom môžete zobraziť objekty SQL Server alebo SQL Azure a ich vlastnosti pomocou SQL Servera alebo Prieskumníka metaúdajov SQL Azure.
Ak chcete konvertovať, načítať a migrovať objekty na SQL Server, postupujte podľa tejto príručky.
Tip Po úspešnej migrácii accessovej databázy uložte súbor projektu na neskoršie použitie, aby ste mohli údaje znova migrovať na testovanie alebo konečnú migráciu.
Prepojenie tabuliek
Zvážte inštaláciu najnovšej verzie ovládačov SQL Server OLE DB a ODBC namiesto použitia natívnych ovládačov SQL Servera, ktoré sa dodávajú s Windowsom. Nielenže sú novšie ovládače rýchlejšie, ale podporujú nové funkcie v Azure SQL, ktoré predchádzajúce ovládače nepodporujú. Ovládače môžete nainštalovať do každého počítača, v ktorom sa používa konvertovaná databáza. Ďalšie informácie nájdete v témach Microsoft OLE DB Driver 18 pre SQL Server a Ovládač Microsoft ODBC 17 pre SQL Server.
Po migrácii accessových tabuliek môžete vytvoriť prepojenie na tabuľky v SQL Serveri, ktorý teraz hosťuje vaše údaje. Prepojenie priamo z Accessu tiež poskytuje jednoduchší spôsob zobrazenia údajov namiesto použitia zložitejších nástrojov na správu SQL Servera. Prepojené údaje môžete dotazovať a upravovať v závislosti od povolení nastavených správcom databázy SQL Servera.
Poznámka: Ak vytvoríte DSN ODBC pri prepojení na databázu SQL Servera počas procesu prepojenia, vytvorte rovnaký názov DSN vo všetkých počítačoch, ktoré používajú novú aplikáciu, alebo programovo použite reťazec pripojenia uložený v súbore DSN.
Ďalšie informácie nájdete v téme Prepojenie alebo import údajov z databázy SQL Servera Azure a import údajov alebo prepojenie na údaje v databáze SQL Servera.
Tip Nezabudnite použiť správcu prepojených tabuliek v Accesse na pohodlné obnovenie a opätovné prepojenie tabuliek. Ďalšie informácie nájdete v téme Spravovanie prepojených tabuliek.
Testovanie a revízia
Nasledujúce časti popisujú bežné problémy, s ktorými sa môžete stretnúť počas migrácie, a spôsob ich riešenia.
Dotazy
Skonvertujú sa iba výberové dotazy. iné dotazy nie sú vrátane výberových dotazov, ktoré používajú parametre. Niektoré dotazy sa nemusia úplne skonvertovať a SSMA hlási chyby dotazu počas procesu konverzie. Objekty, ktoré sa neskonvertujú, môžete upraviť manuálne pomocou syntaxe T-SQL. Syntaktické chyby môžu tiež vyžadovať manuálnu konverziu funkcií a typov údajov špecifických pre Access na tie SQL Server. Ďalšie informácie nájdete v téme Access SQL a SQL Server TSQL – porovnanie.
Typy údajov
Access a SQL Server majú podobné typy údajov, ale majte na pamäti nasledujúce potenciálne problémy.
Veľké číslo Typ údajov Veľké číslo ukladá nepeňažný číselný údaj a je kompatibilný s typom údajov BIGINT SQL. Tento typ údajov môžete použiť na efektívne vypočítavanie veľkých čísel, ale vyžaduje sa použitie formátu databázového súboru .accdb Accessu 16 (16.0.7812 alebo novšia verzia) a zlepšenie výkonu so 64-bitovou verziou Accessu. Ďalšie informácie nájdete v téme Používanie typu údajov Veľké číslo a Výber medzi 64-bitovou alebo 32-bitovou verziou balíka Office.
Áno/Nie Predvolene sa stĺpec Accessu Yes/No skonvertuje na bitové pole SQL Servera. Ak sa chcete vyhnúť uzamknutiu záznamov, uistite sa, že bitové pole je nastavené na zakázanie hodnôt NULL. V SSMA môžete vybrať bitový stĺpec a nastaviť vlastnosť Povoliť hodnoty Null na HODNOTU NO. V TSQL použite príkazy CREATE TABLE alebo ALTER TABLE .
Dátum a čas Existuje niekoľko úvah o dátume a čase:
-
Ak je úroveň kompatibility databázy 130 (SQL Server 2016) alebo vyššia a prepojená tabuľka obsahuje jeden alebo viacero stĺpcov datetime alebo datetime2, tabuľka môže vrátiť správu #deleted vo výsledkoch. Ďalšie informácie nájdete v accessovej prepojenej tabuľke s vrátenou SQL-Server databázou #deleted.
-
Typ údajov Dátum a čas accessu sa používa na priradenie k typu údajov datetime. Typ údajov Access Date/Time Extended sa používa na priradenie k typu údajov Datetime2 , ktorý má väčší rozsah dátumu a času. Ďalšie informácie nájdete v téme Používanie typu údajov Date/Time Extended.
-
Pri dotazovaní dátumov na SQL Serveri zohľadnite čas aj dátum. Príklad:
-
DateOrdered Between 1/1/19 and 1/31/19 may not include all orders.
-
DateOrdered Between 1/1/19 00:00:00 AM And 1/31/19 11:59:59 PM does include all orders.
-
Príloha Typ údajov Príloha ukladá súbor v accessovej databáze. V SQL Serveri máte niekoľko možností, ktoré je potrebné zvážiť. Súbory môžete extrahovať z accessovej databázy a potom zvážiť uloženie prepojení na súbory v databáze SQL Servera. Prípadne môžete použiť FILESTREAM, FileTables alebo remote BLOB store (RBS) a zachovať prílohy uložené v databáze SQL Servera.
Hypertextové prepojenie Accessové tabuľky obsahujú stĺpce hypertextových prepojení, ktoré SQL Server nepodporuje. Predvolene sa tieto stĺpce na SQL Serveri skonvertujú na stĺpce nvarchar(max), ale priradenie môžete prispôsobiť tak, aby vybralo menší typ údajov. V accessovom riešení môžete naďalej používať správanie hypertextového prepojenia vo formulároch a zostavách, ak nastavíte vlastnosť Hypertextové prepojenie pre ovládací prvok na hodnotu true.
Pole s viacerými hodnotami Pole s viacerými hodnotami Accessu sa skonvertuje na SQL Server ako ntextové pole, ktoré obsahuje množinu hodnôt s oddeľovačmi. Keďže SQL Server nepodporuje typ údajov s viacerými hodnotami, ktorý modeluje vzťah many-to-many, môže sa vyžadovať dodatočný návrh a konverzia.
Ďalšie informácie o mapovaní typov údajov Accessu a SQL Servera nájdete v téme Porovnanie typov údajov.
Poznámka: Polia s viacerými hodnotami sa neskonvertujú.
Ďalšie informácie nájdete v téme Typy dátumu a času, typy reťazcov a binárnych údajov a číselné typy.
Visual Basic
Hoci SQL Server nepodporuje jazyk VBA, všimnite si nasledujúce možné problémy:
Funkcie VBA v dotazoch Accessové dotazy podporujú funkcie VBA v údajoch v stĺpci dotazu. Dotazy Accessu, ktoré používajú funkcie VBA, však nie je možné spustiť na SQL Serveri, takže všetky požadované údaje sa odovzdajú do programu Microsoft Access na spracovanie. Vo väčšine prípadov by sa tieto dotazy mali skonvertovať na odovzdávajúce dotazy.
Funkcie definované používateľom v dotazoch Dotazy programu Microsoft Access podporujú používanie funkcií definovaných v moduloch VBA na spracovanie údajov, ktoré im boli odovzdané. Dotazy môžu byť samostatné dotazy, príkazy SQL v zdrojoch záznamov formulárov/zostáv, zdroje údajov rozbaľovacích polí a zoznamov vo formulároch, zostavy a polia tabuliek a výrazy predvoleného alebo overovacieho pravidla. SQL Server nemôže spustiť tieto funkcie definované používateľom. Možno budete musieť manuálne prepracovať tieto funkcie a skonvertovať ich na uložené procedúry na SQL Serveri.
Optimalizácia výkonu
Zďaleka najdôležitejší spôsob optimalizácie výkonu pomocou nového serverového servera SQL Server je rozhodnúť sa, kedy použiť lokálne alebo vzdialené dotazy. Pri migrácii údajov na SQL Server sa tiež presúvate zo súborového servera na model databázy klient-server výpočtovej techniky. Postupujte podľa týchto všeobecných pokynov:
-
Spustite v klientovi malé dotazy určené iba na čítanie, aby ste k nim mali najrýchlejší prístup.
-
Spustite dlhé dotazy na čítanie a zapisovanie na serveri, aby ste mohli využiť väčší výpočtový výkon.
-
Minimalizujte sieťový prenos s filtrami a agregáciou tak, aby sa prenášali len údaje, ktoré potrebujete.
Ďalšie informácie nájdete v téme Vytvorenie odovzdávajúceho dotazu.
Nižšie sú uvedené ďalšie odporúčané pokyny.
Vloženie logiky na server Vaša aplikácia môže používať aj zobrazenia, používateľom definované funkcie, uložené procedúry, vypočítavané polia a spúšťače na centralizáciu a zdieľanie logiky aplikácie, obchodných pravidiel a politík, zložitých dotazov, overenia údajov a kódu referenčnej integrity na serveri, a nie na klientovi. Položte si otázku, či je možné tento dotaz alebo úlohu vykonať na serveri lepšie a rýchlejšie? Nakoniec otestujte každý dotaz a zabezpečte optimálny výkon.
Používanie zobrazení vo formulároch a zostavách V Accesse postupujte takto:
-
Vo formulároch použite zobrazenie SQL pre formulár iba na čítanie a indexované zobrazenie SQL pre formulár na čítanie a zapisovanie ako zdroj záznamov.
-
V prípade zostáv použite ako zdroj záznamov zobrazenie SQL. Pre každú zostavu však vytvorte samostatné zobrazenie, aby ste mohli jednoduchšie aktualizovať konkrétnu zostavu bez toho, aby to ovplyvnilo ostatné zostavy.
Minimalizovanie načítavania údajov vo formulári alebo zostave Nezobrazovať údaje, kým o ne používateľ požiada. Ponechajte napríklad vlastnosť zdroja záznamov prázdnu, nastavte používateľov, aby vo formulári vybrali filter a potom vyplnili vlastnosť zdrojzáznamov vaším filtrom. Alebo použite klauzulu Where v poliach DoCmd.OpenForm a DoCmd.OpenReport na zobrazenie presných záznamov potrebných používateľom. Zvážte vypnutie navigácie v záznamoch.
Pri heterogénnych dotazoch buďte opatrní Nepoužívajte dotaz, ktorý kombinuje lokálnu accessovú tabuľku a prepojenú tabuľku SQL Servera, ktorá sa niekedy nazýva hybridný dotaz. Tento typ dotazu stále vyžaduje, aby access stiahol všetky údaje SQL Servera do lokálneho počítača a potom spustil dotaz, ale nespustí dotaz na SQL Serveri.
Kedy použiť lokálne tabuľky Zvážte použitie lokálnych tabuliek pre údaje, ktoré sa zriedkavo menia, napríklad zoznam štátov alebo provincií v krajine alebo oblasti. Statické tabuľky sa často používajú na filtrovanie a v accessovom klientskom rozhraní môžu fungovať lepšie.
Ďalšie informácie nájdete v téme Poradca pre optimalizáciu databázového stroja, optimalizáciu accessovej databázy pomocou Analyzátora výkonu a optimalizáciu aplikácií programu Microsoft Office Access prepojených na SQL Server.
Pozrite tiež
Príručka migrácie databázy Azure
Blog o migrácii údajov spoločnosti Microsoft
Microsoft Access na migráciu, konverziu a zmenu veľkosti SQL Servera