Vsi imamo omejitve in Accessova baza podatkov ni izjema. Na primer, Accessova zbirka podatkov ima omejitev velikosti 2 GB in ne more podpirati več kot 255 sočasnih uporabnikov. Ko je čas, da Accessova zbirka podatkov preide na naslednjo raven, se lahko preselite v SQL Server. SQL Server (na mestu uporabe ali v oblaku Azure) podpira večje količine podatkov, več sočasnih uporabnikov in ima večjo zmogljivost kot mehanizem zbirke podatkov JET/ACE. Ta priročnik vam omogoča nemoten začetek potovanja v strežnik SQL Server, pomaga ohraniti Accessove rešitve za pripravni sistem, ki ste jih ustvarili, in vas motivira za uporabo Accessa za prihodnje rešitve zbirk podatkov. Uporabite pomočnika za selitev strežnika Microsoft SQL Server (SSMA) za uspešno selitev, sledite tem korakom.
Preden začnete
V spodnjih razdelkih so na voljo osnovne in druge informacije, ki vam bodo pomagale začeti.
O razdeljenih zbirkah podatkov
Vsi predmeti Accessove zbirke podatkov so lahko v eni datoteki zbirke podatkov ali pa so shranjeni v dveh datotekah zbirke podatkov: ospredje zbirke podatkov in zaledni zbirki podatkov. To se imenuje razdelitev zbirke podatkov in je zasnovano tako, da olajša skupno rabo v omrežnem okolju. Datoteka zaledne zbirke podatkov mora vsebovati le tabele in relacije. Sprednja datoteka mora vsebovati le vse druge predmete, vključno z obrazci, poročili, poizvedbami, makri, moduli VBA in povezanimi tabelami z zaledno zbirko podatkov. Ko preselite Accessovo zbirko podatkov, je podobna razdeljeni zbirki podatkov, saj SQL Server deluje kot novo zaledje za podatke, ki so zdaj v strežniku.
Zato lahko še vedno vzdržujete Accessovo zbirko podatkov s povezanimi tabelami s tabelami strežnika SQL Server. Učinkovito lahko izkoristite prednosti hitrega razvoja aplikacij, ki jih ponuja Accessova zbirka podatkov, skupaj z razširljivostjo strežnika SQL Server.
Prednosti SQL Server
Še vedno potrebujete nekaj prepričevanja za selitev na SQL Server? Tukaj je nekaj dodatnih prednosti, o katerih morate razmisliti:
- Več sočasnih uporabnikov SQL Server lahko obravnava veliko več sočasnih uporabnikov kot Access in zmanjša zahteve po pomnilniku, ko je dodanih več uporabnikov.
- Večja razpoložljivost S strežnikom SQL Server lahko dinamično varnostno kopirate zbirko podatkov, bodisi postopno ali dokončano, medtem ko je v uporabi. Zato za varnostno kopiranje podatkov uporabnikom ni treba zapreti zbirke podatkov.
- Visoka zmogljivost in razširljivost Zbirka podatkov strežnika SQL Server običajno deluje bolje kot Accessova zbirka podatkov, zlasti z veliko terabajtno zbirko podatkov. Prav tako SQL Server obdeluje poizvedbe veliko hitreje in učinkoviteje z vzporedno obdelavo poizvedb, pri čemer uporablja več izvornih niti v enem procesu za obdelavo zahtev uporabnikov.
- Izboljšana varnost Z uporabo zaupanja vredne povezave se SQL Server integrira z varnostjo sistema Windows, da zagotovi en sam integriran dostop do omrežja in zbirke podatkov, pri čemer uporablja najboljše iz obeh varnostnih sistemov. To olajša upravljanje zapletenih varnostnih shem. SQL Server je idealen prostor za shranjevanje občutljivih informacij, kot so številke socialnega zavarovanja, podatki o kreditnih karticah in naslovi, ki so zaupni.
- Takojšnja obnovljivost Če se operacijski sistem zruši ali izpade napajanja, lahko SQL Server samodejno obnovi zbirko podatkov v dosledno stanje v nekaj minutah in brez posredovanja skrbnika zbirke podatkov.
- Uporaba VPN Dostop in navidezna zasebna omrežja (VPN) se ne razumejo. Toda s strežnikom SQL Server lahko oddaljeni uporabniki še vedno uporabljajo Accessovo zbirko podatkov na namizju in zaledje strežnika SQL Server, ki se nahaja za požarnim zidom VPN.
- Azure SQL Server Poleg prednosti SQL Server ponuja dinamično razširljivost brez izpadov, inteligentno optimizacijo, globalno razširljivost in razpoložljivost, odpravo stroškov strojne opreme in zmanjšano administracijo.
Izberite najboljšo možnost Azure SQL Server
Če se selite na Azure SQL Server, lahko izbirate med tremi možnostmi, od katerih ima vsaka različne prednosti:
- Enotna zbirka podatkov/elastične skupine Ta možnost ima svoj nabor virov, ki se upravljajo prek strežnika zbirke podatkov SQL. Posamezna baza podatkov je kot baza podatkov v strežniku SQL Server. Dodate lahko tudi elastično skupino, ki je zbirka zbirk zbirk podatkov z naborom virov v skupni rabi, ki se upravljajo prek strežnika zbirke podatkov SQL. Najpogosteje uporabljene funkcije strežnika SQL Server so na voljo z vgrajenimi varnostnimi kopijami, popravljanjem in obnovitvijo. Vendar ni zagotovljenega natančnega časa vzdrževanja in migracija iz SQL Server je lahko težka.
- Upravljani primerek Ta možnost je zbirka sistemskih in uporabniških zbirk podatkov z naborom virov v skupni rabi. Upravljani primerek je podoben primerku zbirke podatkov strežnika SQL Server, ki je zelo združljiv s strežnikom SQL Server na mestu uporabe. Upravljani primerek ima vgrajene varnostne kopije, popravljanje, obnovitev in ga je enostavno preseliti iz strežnika SQL Server. Vendar pa obstaja majhno število funkcij strežnika SQL Server, ki niso na voljo, in ni zagotovljenega natančnega časa vzdrževanja.
- Azure Virtual Machine Ta možnost vam omogoča, da zaženete SQL Server v navideznem računalniku v oblaku Azure. Imate popoln nadzor nad mehanizmom SQL Server in enostavno selitveno pot. Vendar morate upravljati varnostne kopije, popravke in obnovitve.
Če želite več informacij, glejte Izbira poti selitve zbirke podatkov v Azure in Kaj je Azure SQL?.
Prvi koraki
Obstaja nekaj težav, ki jih lahko odpravite vnaprej, da lahko poenostavite postopek selitve, preden zaženete SSMA:
- Dodajanje indeksov tabel in primarnih ključev Prepričajte se, da ima vsaka Accessova tabela indeks in primarni ključ. SQL Server zahteva, da imajo vse tabele vsaj en indeks, povezana tabela pa mora imeti primarni ključ, če je tabelo mogoče posodobiti.
- Preverjanje relacij primarnega/tujega ključa Prepričajte se, da te relacije temeljijo na poljih z doslednimi podatkovnimi tipi in velikostmi. SQL Server ne podpira združenih stolpcev z različnimi podatkovnimi tipi in velikostmi v omejitvah tujega ključa.
- Odstranjevanje stolpca »Priloga« SSMA ne seli tabel, ki vsebujejo stolpec Priloga.
Preden zaženete SSMA, izvedite naslednje prve korake.
- Zaprite Accessovo zbirko podatkov.
- Prepričajte se, da trenutni uporabniki, povezani z zbirko podatkov, zaprejo tudi zbirko podatkov.
- Če je zbirka podatkov v .mdb obliki zapisa datoteke, odstrani varnost na ravni uporabnika.
- Varnostno kopirajte zbirko podatkov. Če želite več informacij, glejte Zaščita podatkov s postopki varnostnega kopiranja in obnovitve.
Nasvet Razmislite o namestitvi izdaje Microsoft SQL Server Express na namizje, ki podpira do 10 GB in je brezplačen in preprostejši način za izvedbo in preverjanje selitve. Ko vzpostavite povezavo, uporabite LocalDB kot primerek zbirke podatkov.
Nasvet Če je mogoče, uporabite samostojno različico Accessa.
Zaženite SSMA
Microsoft ponuja pomočnika za selitev strežnika Microsoft SQL Server (SSMA) za lažjo selitev. SSMA v glavnem seli tabele in izbere poizvedbe brez parametrov. Obrazci, poročila, makri in moduli VBA se ne pretvorijo. Raziskovalec metapodatkov strežnika SQL Server prikaže predmete Accessove zbirke podatkov in predmete SQL Server, kar vam omogoča pregled trenutne vsebine obeh zbirk podatkov. Ti dve povezavi sta shranjeni v selitveni datoteki, če se v prihodnosti odločite za prenos dodatnih predmetov.
Opomba Postopek selitve lahko traja nekaj časa, odvisno od velikosti predmetov zbirke podatkov in količine podatkov, ki jih je treba prenesti.
- Če želite preseliti zbirko podatkov s SSMA, najprej prenesite in namestite programsko opremo z dvoklikom prenesene datoteke MSI. Prepričajte se, da ste namestili ustrezno 32- ali 64-bitno različico za računalnik.
- Ko namestite SSMA, ga odprite na namizju, po možnosti iz računalnika z datoteko Accessove zbirke podatkov.
Odprete ga lahko tudi v računalniku, ki ima dostop do Accessove zbirke podatkov iz omrežja v mapi v skupni rabi. - Sledite začetnim navodilom v SSMA, da vnesete osnovne informacije, kot so mesto strežnika SQL Server, Accessova zbirka podatkov in predmeti, ki jih želite preseliti, informacije o povezavi in ali želite ustvariti povezane tabele.
- Če se selite na SQL Server 2016 ali novejšo različico in želite posodobiti povezano tabelo, dodajte stolpec rowversion, tako da izberete Orodja za pregled Splošne>nastavitve> projekta.
Polje rowversion pomaga preprečiti spore zapisov. Access uporabi to polje rowversion v povezani tabeli strežnika SQL Server, da določi, kdaj je bil zapis nazadnje posodobljen. Če v poizvedbo dodate polje rowversion, ga Access uporabi za vnovično izbiro vrstice po postopku posodabljanja. To izboljša učinkovitost tako, da se izognete napakam pri sporu pri pisanju in scenarijih brisanja zapisov, ki se lahko zgodijo, ko Access zazna drugačne rezultate od prvotne predložitve, kot se lahko zgodi pri podatkovnih vrstah in sprožilcih s plavajočo vejico, ki spreminjajo stolpce. Vendar se izogibajte uporabi polja rowversion v obrazcih, poročilih ali kodi VBA. Če želite več informacij, glejte rowversion.
Opomba Izogibajte se zamenjavi rowversion s časovnimi žigi. Čeprav je časovni žig ključne besede sinonim za rowversion v strežniku SQL Server, rowversion ne morete uporabiti kot način za časovni žig vnosa podatkov. - Če želite nastaviti natančne podatkovne tipe, izberite Orodja za pregled Nastavitve>>projektaPreslikava vrste. Če na primer shranjujete samo besedilo v angleščini, lahko uporabite podatkovni tip varchar namesto nvarchar .
Pretvarjanje predmetov
SSMA pretvori Accessove predmete v predmete SQL Server, vendar jih ne kopira takoj. SSMA ponuja seznam teh predmetov, ki jih želite preseliti, tako da se lahko odločite, ali jih želite premakniti v zbirko podatkov strežnika SQL Server:
- Tabele in stolpci
- Izberite Poizvedbe brez parametrov.
- Primarni in tuji ključi
- Indeksi in privzete vrednosti
- Preverite omejitve (dovoli lastnost stolpca ničelne dolžine, veljavnostno pravilo stolpca, preverjanje veljavnosti tabele)
Kot najboljšo prakso uporabite poročilo o oceni SSMA, v katerem so prikazani rezultati konverzije, vključno z napakami, opozorili, informativnimi sporočili, ocenami časa za izvedbo selitve in posameznimi koraki za odpravljanje napak, ki jih je treba izvesti, preden dejansko premaknete predmete.
Pretvorba predmetov zbirke podatkov vzame definicije predmetov iz Accessovih metapodatkov, jih pretvori v enakovredno sintakso Transact-SQL (T-SQL) in nato naloži te informacije v projekt. Nato si lahko ogledate predmete SQL Server ali SQL Azure in njihove lastnosti s strežnikom SQL Server ali SQL Azure Metadata Explorer.
Če želite pretvoriti, naložiti ali preseliti predmete v SQL Server, upoštevajte ta navodila.
Namig Ko uspešno preselite Accessovo zbirko podatkov, shranite datoteko projekta za poznejšo uporabo, da boste lahko znova preselili podatke za preskušanje ali končno selitev.
Povezovanje tabel
Namesto uporabe izvornih gonilnikov SQL Server, ki so priloženi sistemu Windows, razmislite o namestitvi najnovejše različice gonilnikov SQL Server OLE DB in ODBC. Ne samo, da so novejši gonilniki hitrejši, ampak podpirajo nove funkcije v Azure SQL, ki jih prejšnji gonilniki nimajo. Gonilnike lahko namestite v vsak računalnik, v katerem se uporablja pretvorjena zbirka podatkov. Če želite več informacij, glejte gonilnik Microsoft OLE DB 18 za SQL Server in gonilnik Microsoft ODBC 17 za SQL Server.
Ko Accessove tabele preselite, se lahko povežete s tabelami v strežniku SQL Server, v katerem gostujejo vaši podatki. Povezovanje neposredno iz Accessa vam omogoča tudi preprostejši način ogleda podatkov namesto uporabe bolj zapletenih orodij za upravljanje strežnika SQL Server. Povezane podatke lahko poizvedujete in jih urejate, odvisno od dovoljenj, ki jih je nastavil skrbnik zbirke podatkov v strežniku SQL Server.
Opomba Če ustvarite ODBC DSN, ko med postopkom povezave ustvarite povezavo do zbirke podatkov SQL Server, ustvarite isti DSN v vseh računalnikih, ki uporabljajo novo aplikacijo, ali pa programsko uporabite niz povezave, ki je shranjen v datoteki DSN.
Če želite več informacij, glejte »Povezovanje s podatki ali uvoz podatkov iz zbirke podatkov Azure SQL Server« in »Uvoz ali povezovanje podatkov v zbirki podatkov SQL Server«.
Namig Ne pozabite uporabiti upravitelja povezanih tabel v Accessu za preprosto osveževanje in ponovno povezovanje tabel. Če želite več informacij, glejte »Upravljanje povezanih tabel«.
Preskus in revizija
V nadaljevanju so opisane pogoste težave, na katere lahko naletite med selitvijo, in kako se jih spopasti.
Poizvedbe
Pretvorjene so le poizvedbe za izbiranje. Druge poizvedbe niso, vključno s poizvedbami za izbiranje, ki imajo parametre. Nekatere poizvedbe morda ne bodo v celoti pretvorbene, SSMA pa med pretvorbo poroča o napakah poizvedb. Predmete, ki jih ni mogoče pretvoriti, lahko ročno uredite s sintakso T-SQL. Napake v sintaksi bodo morda zahtevale tudi ročno pretvorbo funkcij in podatkovnih tipov, značilnih za Access, v funkcije in tipe SQL Server. Če želite več informacij, glejte Primerjava strežnika Access SQL s strežnikom SQL Server TSQL.
Podatkovni tipi
Access in SQL Server imata podobne vrste podatkov, vendar bodite pozorni na te morebitne težave.
Velika številka Podatkovni tip »velika številka« shranjuje številske vrednosti, ki niso denarne, in je združljiv s podatkovnim tipom bigint SQL. Ta podatkovni tip lahko uporabite za učinkovito računanje velikih števil, vendar morate uporabiti obliko zapisa datoteke zbirke podatkov programa Access 16 (16.0.7812 ali novejšo) .accdb, deluje pa bolje v 64-bitni različici Accessa. Če želite več informacij, glejte Uporaba podatkovnega tipa »velika številka « in Izberite 64- ali 32-bitno različico Officea.
Da/Ne Accessov stolpec »Da/ne« je privzeto pretvorjen v bitno polje SQL Server. Če se želite izogniti zaklepanju zapisa, se prepričajte, da je bitno polje nastavljeno tako, da ne dovoli ničelnih vrednosti. V SSMA lahko izberete stolpec bit, če želite lastnost »Dovoli ničle « nastaviti na »NE«. V TSQL uporabite izjavo CREATE TABLE ali ALTER TABLE .
Datum in ura Upoštevati morate več opomb o datumu in uri:
Če je raven združljivosti zbirke podatkov 130 (SQL Server 2016) ali višja in če povezana tabela vsebuje enega ali več stolpcev »datetime« ali »datetime2«, tabela morda vrne sporočilo #deleted v rezultatih. Če želite več informacij, glejte Accessova povezana tabela z SQL-Server zbirko podatkov vrne #deleted.
Z Accessovim podatkovnim tipom »Datum/čas« se lahko preslikate v podatkovni tip »Datetime«. Razširjeni podatkovni tip »Access« »Datum/čas« uporabite za preslikavo v podatkovni tip »Datetime2 « z večjim datumskim in časovnim obsegom. Če želite več informacij, glejte Uporaba razširjenega podatkovnega tipa »Datum/čas«.
Ko iščete poizvedbe za datume v strežniku SQL Server, upoštevajte tako čas kot tudi datum. Primer:
- 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 23:59:59 PM does includes all orders.
Priloga Podatkovni tip »Priloga« shrani datoteko v Accessovo zbirko podatkov. V strežniku SQL Server je na voljo več možnosti, na katere morate razmisliti. Datoteke lahko ekstrahirate iz Accessove zbirke podatkov in nato razmislite o shranjevanju povezav do datotek v zbirki podatkov strežnika SQL Server. Lahko pa uporabite tudi DATOEČNI tok, Datotečne tabele ali oddaljeno shrambo zbirk dvojiških podatkov (RBS), da ohranite priloge shranjene v zbirki podatkov strežnika SQL Server.
Hiperpovezava Accessove tabele vsebujejo stolpce s hiperpovezavami, ki jih SQL Server ne podpira. Ti stolpci bodo privzeto pretvorjeni v stolpce nvarchar(max) v strežniku SQL Server, vendar lahko prilagodite preslikavo tako, da izberete manjši podatkovni tip. V Accessovi rešitvi lahko še vedno uporabljate delovanje hiperpovezave v obrazcih in poročilih, če nastavite lastnost »Hiperpovezava « za kontrolnik na »true«.
Polje z več vrednostmi Accessovo polje z več vrednostmi je pretvorjeno v SQL Server kot polje »ntext«, v katerem je nabor vrednosti, med seboj ločenimi z vejico. Ker strežnik SQL Server ne podpira vrste podatkov z več vrednostmi, ki deluje po relaciji »mnogo proti mnogo«, boste morali morda izvesti dodatno načrtovanje in pretvorbo.
Če želite več informacij o preslikavi podatkovnih tipov v Accessu in strežniku SQL Server, glejte »Primerjava podatkovnih tipov«.
Opomba Polja z več vrednostmi niso pretvorjena.
Če želite več informacij, glejte datumske in časovne tipe, nize in dvojiške tipe ter številske tipe.
Visual Basic
Čeprav strežnik SQL Server ne podpira kode VBA, bodite pozorni na te morebitne težave:
Funkcije VBA v poizvedbah Accessove poizvedbe podpirajo funkcije VBA za podatke v stolpcu poizvedbe. Vendar pa Accessovih poizvedb, ki uporabljajo funkcije VBA, ni mogoče zagnati v strežniku SQL Server, zato so vsi zahtevani podatki posredovani v Microsoft Access v obdelavo. V večini primerov je treba te poizvedbe pretvoriti v prepustne poizvedbe.
Uporabniško določene funkcije v poizvedbah Microsoft Accessove poizvedbe podpirajo uporabo funkcij, določenih v modulih VBA, za obdelavo podatkov, ki so jim posredovani. Poizvedbe so lahko samostojne poizvedbe, izjave SQL v virih zapisov obrazcev/poročil, viri podatkov kombiniranih polj in polj s seznamom v obrazcih, poročilih in poljih tabel ter privzeti izrazi ali izrazi veljavnostnih pravil. SQL Server ne more izvajati teh uporabniško določenih funkcij. Morda boste morali ročno preoblikovati te funkcije in jih pretvoriti v shranjene procedure v strežniku SQL Server.
Optimiziranje učinkovitosti delovanja
Daleč najpomembnejši način za optimizacijo učinkovitosti delovanja z novim, zalednim strežnikom SQL Server je odločitev, kdaj uporabiti lokalne ali oddaljene poizvedbe. Ko podatke preselite v SQL Server, selite tudi iz računalniškega modela datotečnega strežnika v računalniški model zbirke podatkov odjemalec – strežnik. Upoštevajte ta splošna navodila:
- V odjemalcu zaženite majhne poizvedbe samo za branje za najhitrejši dostop.
- V strežniku izvajajte dolge poizvedbe za branje/pisanje, da izkoristite večjo procesorsko moč.
- Zmanjšajte omrežni promet s filtri in združevanjem ter prenesite le podatke, ki jih potrebujete.
Če želite več informacij, glejte Ustvarjanje prepustne poizvedbe.
V nadaljevanju so dodatna priporočena navodila.
Nastavitev logike v strežnik Vaša aplikacija lahko uporablja tudi poglede, uporabniško določene funkcije, shranjene procedure, izračunana polja in sprožilce za centralizacijo in skupno rabo logike aplikacije, poslovnih pravil in pravilnikov, zapletenih poizvedb, preverjanja veljavnosti podatkov in referenčne kode celovitosti v strežniku namesto v odjemalcu. Vprašajte se, ali je to poizvedbo ali opravilo mogoče v strežniku izvesti bolje in hitreje? Na koncu preskusite vsako poizvedbo, da zagotovite optimalno učinkovitost delovanja.
Uporaba pogledov v obrazcih in poročilih V Accessu naredite to:
- Za obrazce uporabite pogled SQL za obrazec, ki je samo za branje, in pogled s kazalom SQL za obrazec za branje/pisanje kot vir zapisa.
- Za poročila uporabite pogled SQL kot vir zapisov. Vendar ustvarite ločen pogled za vsako poročilo, da boste lahko lažje posodobili določeno poročilo, ne da bi pri tem vplivali na druga poročila.
Zmanjšanje nalaganja podatkov v obrazcu ali poročilu Ne prikažite podatkov, dokler jih uporabnik ne zahteva. Lastnost recordsource naj bo na primer prazna, uporabniki naj v obrazcu izberejo filter in nato lastnost recordsource vnesete s filtrom. Lahko pa uporabite stavek Where DoCmd.OpenForm in DoCmd.OpenReport, da prikažete natančne zapise, ki jih uporabnik potrebuje. Priporočamo vam, da izklopite krmarjenje po zapisih.
Bodite previdni pri heterogenih poizvedbah Izogibajte se zagonu poizvedbe, ki združuje lokalno Accessovo tabelo in povezano tabelo strežnika SQL Server, ki se včasih imenuje hibridna poizvedba. Ta vrsta poizvedbe še vedno zahteva, da Access prenese vse podatke SQL Server v lokalni računalnik in nato zažene poizvedbo, ne zažene poizvedbe v SQL Server.
Kdaj uporabiti lokalne tabele Priporočamo, da za podatke, ki se redko spremenijo, uporabite lokalne tabele, na primer seznam zveznih držav ali provinc v državi ali regiji. Statične tabele se pogosto uporabljajo za filtriranje in so učinkovitejše v osprednji zbirki Accessa.
Če želite več informacij, glejte Pomočnik za optimizacijo pogona zbirke podatkov, Analizator učinkovitost delovanja za optimizacijo Accessove zbirke podatkov in Optimizacija Microsoft Office Accessovih programov, povezanih s strežnikom SQL Server.
Glejte tudi
Vodnik po selitvi zbirke podatkov v Azure
Microsoftov spletni dnevnik o selitvi podatkov
Microsoft Access to SQL Server Selitev, pretvorba in nadgradnja velikosti