Access
Microsoft Access Imbunatatirea performantei - imbunatatirea performantei unei baze de date AccessImbunatatirea performantei unei baze de date AccessIn functie de configuratia computerului dumneavoastra si de meniul de lucru, exista cateva lucruri care se pot face pentru a imbunatati performanta Microsoft Access sau a bazei de date Microsoft Access (baza de date: O colectie de date relative la un anumit subiect sau scop. Intr-o baza de date, informatiile despre o anumita entitate, cum ar fi un angajat sau o comanda, este aranjata in tabele, inregistrari si campuri.). Daca optimizati performanta unei baze de date Access, cel mai bun loc de inceput este cu Analizatorul de performanta. Se poate folosi Analizatorul de performanta pentru a analiza o baza de date intreaga sau doar obiectele selectate dintr-o baza de date. De asemenea, Analizatorul de performanta poate face cateva modificari propuse daca se doreste. Executia Analizatorului de performanta Aveti posibilitatea sa utilizati Analizatorul de performanta pentru optimizarea performantei unei baze de date Microsoft Access (baza de date: O colectie de date relative la un anumit subiect sau scop. Intr-o baza de date, informatiile despre o anumita entitate, cum ar fi un angajat sau o comanda, este aranjata in tabele, inregistrari si campuri.). Analizatorul de performanta nu este disponibil intr-un proiect Access (proiect Microsoft Access: Un fisier Access care se conecteaza la o baza de date Microsoft SQL Server si se utilizeaza pentru a crea aplicatii client/server. Un fisier proiect nu' contine date sau obiecte bazate pe definitii de date, precum tabele si vizualizari.). Deschideti baza de date Access pentru care doriti optimizare. In meniul Instrumente, indicati spre Analiza, apoi faceti clic pe Performanta. Faceti clic pe fila pentru tipul de obiect al bazei de date (obiecte baza de date: O baza de date Access contine obiecte ca tabele, interogari, formulare, rapoarte, pagini, macrocomenzi si module. Un proiect Access contine obiecte ca formulare, rapoarte, pagini, macrocomenzi si module.) pentru care doriti optimizare. Faceti clic pe fila Toate tipurile de obiecte pentru vizualizarea unei liste cu toate obiectele bazei de date deodata. Selectati numele obiectelor bazei de date pentru care doriti optimizare. Faceti clic pe Selectare totala pentru a selecta toate obiectele bazei de date din lista. Repetati pasii 3 si 4 pana la selectarea tuturor obiectelor pentru optimizare, si apoi faceti clic pe OK. Analizatorul de performanta listeaza trei tipuri de rezultate de analiza: Recomandare, Sugestie, si Idee. Cand faceti clic pe un element din lista Rezultate analiza, sunt afisate informatii despre optimizarea propusa in caseta Note analiza aflata sub lista. Optimizarile Sugestie contin posibile tradeoffs de care trebuie tinut cont inainte de a fi efectuate. Pentru vizualizarea unei descrieri a tradeoffs, faceti clic pe o Sugestie din lista si apoi cititi informatiile din caseta Note analiza. Access poate efectua optimizarile Recomandare si Sugestie in locul utilizatorului. Optimizarea Idee trebuie efectuata doar de utilizator. Faceti clic pe una sau mai multe optimizari Recomandare sau Sugestie pe care doriti sa le efectuati, si apoi faceti clic pe Optimizare. Analizatorul de performanta va efectua optimizarile si apoi le va marca Fixate. Continuati procesul pana cand Analizatorul de performanta a incheiat toate optimizarile Recomandare si Sugestie pe care doriti sa le efectuati. Pentru a executa optimizarile Recomandare si Sugestie, faceti clic pe Select All, iar apoi faceti clic pe Optimizare. Pentru efectuarea unei optimizari Idee, faceti clic pe optimizare, si apoi urmati instructiunile afisate in caseta Note analiza. Nota Analizatorul de performanta nu furnizeaza sugestii despre modul de imbunatatire a performantei Microsoft Access sau a sistemului sub care lucreaza. Imbunatatirea performantei Microsoft Access si a sistemului dumneavoastra Urmatoarele indicatii va pot ajuta la optimizarea performantelor Microsoft Access pe calculator: Daca utilizati baze de date pe care alti utilizatori nu au nevoie sa le partajeze, instalati Microsoft Access si toate bazele de date pe discul dumneavoastra fix in locul unui server din retea. Daca sunteti singura persoana care utilizeaza o baza de date, deschideti baza de date pentru utilizare exclusiva; in caseta de dialog Deschidere faceti clic pe sageata de langa butonul Deschidere, apoi faceti clic pe Deschidere exclusiva. Disponibilizati mai multa memorie inchizand aplicatiile neutilizate. Mariti memoria RAM a computerului. Se recomanda 40 MB de memorie— 32 MB de memorie plus 8 MB pentru memorie suplimentara Microsoft Access. Nu utilizati memorie RAM pentru un disc RAM. Stergeti periodic fisierele care nu mai sunt necesare si goliti Cosul de reciclare, compactati bazele de date, apoi defragmentati discul fix cu programul Defragmentare disc din Microsoft Windows. Pentru a rula programul Defragmentare disc faceti clic pe butonul Start din Windows, indicati spre Programe, indicati spre Accesorii, indicati spre Instrumente de sistem, apoi faceti clic pe Program Defragmentare disc. In cele mai multe cazuri setarea memoriei virtuale utilizata de Windows ar trebui sa functioneze optim. Cu toate acestea, in unele situatii ajustarea parametrilor memoriei virtuale poate imbunatati performantele. Daca ati incercat deja stergerea fisierelor nenecesare si inca mai aveti probleme cu performantele, incercati modificarea setarii implicite a memoriei virtuale in urmatoarele cazuri: Nu aveti mult spatiu disc disponibil pe discul care este utilizat in prezent pentru memoria virtuala si este disponibil un alt disc local cu spatiu suficient. Un alt disc local este disponibil si este mai rapid decat discul curent (in afara cazului in care acel disc este utilizat intensiv). In aceste cazuri ati obtine performante mai bune specificand un disc diferit pentru memoria virtuala. De asemenea ati obtine performante mai bune specificand spatiul disc disponibil pentru memoria virtuala ca fiind 25 MB minus RAM disponibil. De exemplu, daca aveti 12 MB de RAM pe calculator, ar trebui sa precizati cel putin 13 MB de memorie virtuala. Specificati mai mult daca lucrati cu mai multe aplicatii mari. Pentru a modifica parametrii memoriei virtuale a Windows, in Panoul de control din Windows faceti dublu clic pe pictograma Sistem, faceti clic pe Optiuni performanta din fila Complex, faceti clic pe butonul Modificare din sectiunea Memorie virtuala, apoi specificati un disc fix diferit sau introduceti o valoare in caseta Dimensiune initiala care este cel putin egala cu 25 minus RAM disponibil. Daca aveti un wallpaper (fundal pe
intregul ecran) bitmap pe suprafata de lucru Windows, inlocuiti-l cu
un bitmap culoare
Daca utilizati un economizor de ecran, utilizati unul necompletat sau nu utilizati nici unul. Eliminati programele de compresie ale discului sau ganditi-va la mutarea bazelor de date pe o unitate necomprimata. Pentru a asigura performante optime utilizati fonturi subsituite doar daca aveti nevoie de suport fonturi duale pentru afisarea tuturor datelor. Imbunatatirea performantei tabelului Utilizati Analizatorul de performanta pentru analiza anumitor tabele in baza de date. Proiectati tabele fara date suplimentare. O baza de date bine proiectata este o conditie esentiala pentru preluarea si actualizarea rapida a datelor. Daca tabele existente contin date suplimentare, aveti posibilitatea utilizarii Expertului Analizator de tabel pentru scindarea acestora in tabele in relatie pentru memorarea mai eficienta a datelor. Alegeti tipurile de date (tip de date: Caracteristica unui camp care determina ce tip de date poate contine. Tipurile de date includ Boolean, Intreg, Lung, Simbol monetar, cu simpla precizie, cu dubla precizie, Sir de caractere si Variant (implicit).) corespunzatoare pentru campuri; astfel se poate salva spatiu in baza de date si imbunatati operatiile de asociere (asociere: O unire dintre un camp dintr-un tabel sau o interogare si un camp continand acelasi tip de date din alt tabel sau interogare. Asocierile spun programului cum sunt legate datele. Inregistrarile care nu sunt potrivite pot fi incluse sau excluse, in functie de tipul de asociere.). La definirea unui camp, alegeti cea mai mica dimensiune a tipului de date sau de camp care corespunde datelor din camp. Creati indexuri (index: Facilitate care accelereaza cautarea si sortarea intr-un tabel bazat pe valori cheie si poate impune unicitatea pentru randurile dintr-un tabel. Cheia primara a unui tabel este automat indexata. Anumite campuri nu pot fi indexate datorita tipului lor de date.) pentru campurile pe care le sortati, uniti, sau pentru care stabiliti criterii. Aveti posibilitatea efectuarii de imbunatatiri substantiale referitor la viteza interogarii prin indexarea campurilor in ambele zone ale tipurilor de asociere, sau prin crearea unei relatii (relatie: Asociatie care se stabileste intre campurile (coloanele) a doua tabele. Relatia poate fi unu la unu, unu la mai multi sau multi la mai multi.) intre campurile respective si indexarea oricarui camp utilizat la setarea criteriilor pentru interogare. Gasirea inregistrarilor prin intermediul casetei de dialog Gasire devine de asemenea mai rapida daca se efectueaza cautarea intr-un camp indexat. Totusi, indexurile nu reprezinta o solutie pentru toate situatiile. Indexurile cresc dimensiunea fisierului .mdb, reduc simultaneitatea (posibilitatea ca mai multi utilizatori sa modifice o pagina in acelasi timp) in aplicatii multiutilizator si scad performanta la actualizarea datelor in campuri indexate sau la adaugarea sau stergerea inregistrarilor. Este de preferat sa se efectueze un test pentru determinarea campurilor ce trebuie indexate. Adaugarea unui index poate accelera interogarea cu o secunda, dar poate incetini adaugarea unui rand de date cu doua secunde si poate cauza probleme de blocare. Sau poate aduce castiguri nesemnificative in functie de campurile care sunt indexate. De exemplu, adaugarea unui index la un camp CodPostal poate furniza un castig foarte redus al performantei daca in tabel campurile NumeCompanie si NumeFamilie sunt deja indexate. Indiferent de tipurile de interogari create, trebuie indexate doar campurile care au numai valori unice. Intr-un index dupa campuri multiple, utilizati doar atat de multe campuri cate sunt necesare in index. Imbunatatirea performantei tabelelor legate Nota Aveti posibilitatea de a lega (legare (pentru tabele): O actiune care stabileste o conexiune la datele din alta aplicatie, astfel incat sa fie posibila vizualizarea si editarea datelor, atat in aplicatia initiala cat si in Access.) un tabel numai intr-o baza de date Microsoft Access (baza de date Microsoft Access: O colectie de date si obiecte (cum ar fi tabele, interogari sau formulare) care sunt corelate cu un anumit subiect sau scop. Motorul baza de date Microsoft Jet gestioneaza datele.), nu si intr-un proiect Microsoft Access (proiect Microsoft Access: Un fisier Access care se conecteaza la o baza de date Microsoft SQL Server si se utilizeaza pentru a crea aplicatii client/server. Un fisier proiect nu' contine date sau obiecte bazate pe definitii de date, precum tabele si vizualizari.). Desi este posibil sa utilizati tabelele legate ca si cum ar fi tabele obisnuite din baza de date Microsoft Access, este important sa retineti ca ele nu se afla de fapt in baza de date Access. De fiecare data cand vizualizati datele dintr-un tabel legat, Microsoft Access trebuie sa preia inregistrarile din alt fisier. Aceasta preluare poate dura ceva timp, in special daca tabelul legat este in retea sau intr-o baza de date SQL (baza de date SQL: Baza de date care este bazata pe limbajul SQL - Limbaj structurat de interogare.). Daca utilizati un tabel legat intr-o retea sau intr-o baza de date SQL, urmati aceste indicatii pentru a obtine rezultate bune: Aveti posibilitatea sa imbunatatiti mult functionalitatea cand deschideti baza de date principala, precum si tabelele si formularele impunand ca baza de date legata sa ramana deschisa. Pentru aceasta, creati un tabel necompletat in baza de date legata si legati tabelul la baza de date principala. Apoi utilizati metoda OpenRecordset pentru a deschide tabelul legat. Acest fapt impiedica motorul baza de date Microsoft Jet sa inchida si sa deschida in mod repetat baza de date legata si sa creeze si sa stearga de fiecare data fisierul .ldb asociat. Vizualizati numai datele de care aveti nevoie. Nu va deplasati printre pagini in foaia de date, daca nu este necesar. Evitati saltul la ultima inregistrare dintr-un tabel mare. Daca doriti sa adaugati noi inregistrari la un tabel mare, utilizati comanda Intrare date din meniul Inregistrari pentru a evita incarcarea inregistrarilor existente in memorie. Utilizati filtre sau interogari pentru a limita numarul de inregistrari pe care le vizualizati intr-un formular sau intr-o foaie de date. Astfel, Microsoft Access transfera mai putine date prin retea. In interogari care implica tabele legate, evitati utilizarea functiilor in criteriile de interogare. In special, evitati utilizarea functiilor agregate de domeniu (functie agregata de domeniu: O functie, cum ar fi <b>DAvg</b> sau <b>DMax</b>, care se utilizeaza pentru a calcula statistici pentru un set de inregistrari (un domeniu).), cum ar fi Dsum, oriunde in interogari. Cand utilizati o functie agregata de domeniu, Microsoft Access preia toate datele din tabelul legat pentru a executa interogarea. Daca adaugati frecvent inregistrari unui tabel legat, creati un formular pentru adaugarea de inregistrari care sa aiba proprietatea Intrare date setata la Da. Cand deschideti formularul pentru a introduce noi date, Microsoft Access nu afiseaza nici una dintre inregistrarile existente. Aceasta setare a proprietatii economiseste timp pentru ca Microsoft Access nu mai trebuie sa preia inregistrarile din tabelul legat. Amintiti-va ca si alti utilizatori pot incerca sa utilizeze un tabel extern timp ce va aflati in el. Cand o baza de date Microsoft Access este in retea, evitati blocarea inregistrarilor mai mult timp decat este necesar. Imbunatatirea performantei tabelelor legate de SQL server Daca datele din aplicatia front-end/back-end (aplicatii front-end/back-end: Aplicatie constand dintr-un fisier baza de date 'back-end' care contine tabele si copii ale unui fisier baza de date 'front-end' care contine toate celelalte obiecte baza de date cu legaturi la tabelele “back-end”.) constau doar din tabele Microsoft SQL Server, aveti posibilitatea sa utilizati fie un proiect Microsoft Access fie o baza de date Microsoft Access drept componenta front end a aplicatiei. Cu toate acestea, utilizand un proiect Access veti beneficia de avantajele proiectelor cum ar fi un numar mai mare de tabele si o domensiune mai mare a bazei de date. Daca doriti ca datele din aplicatia front-end/back-end sa constea in tabele Microsoft Access si tabele Microsoft SQL server, trebuie sa utilizati o baza de date Access drept front end. Daca va conectati la un tabel dintr-o baza de date SQL externa, aveti posibilitatea de a obtine cele mai bune rezultate prin legarea (legare (pentru tabele): O actiune care stabileste o conexiune la datele din alta aplicatie, astfel incat sa fie posibila vizualizarea si editarea datelor, atat in aplicatia initiala cat si in Access.) la tabele SQL in loc de a deschide direct tabelele. Aveti posibilitatea sa deschideti tabele SQL externe in mod direct doar utilizand cod Microsoft Visual Basic. Tabelele legate sunt in mod considerabil mai rapide, mai puternice si mai eficiente decat cele deschise in mod direct. Sfaturi performanta suplimentare Preluati doar datele necesare. Proiectati-va interogarile pentru a limita numarul inregistrarilor preluate si selectati doar campurile necesare astfel incat Microsoft Access sa transfere cat mai putine date prin retea. Nu utilizati seturi de rezultate actualizabile (dinamice) daca nu preluati multe inregistrari si daca nu actualizati datele si daca nu aveti nevoie sa vedeti modificarile aduse de alti utilizatori. Pentru a preveni seturile rezultat de la a fi actualizate intr-un formular, setati proprietatea RecordSetType a formularului cu valoarea Snapshot. Instantaneele sunt mai rapide la deschidere si la defilare decat seturile dinamice. Daca nu aveti nevoie sa preluati un numar mare de inregistrari, un set dinamic este mai rapid si mai eficient decat un instantaneu. De exemplu mutarea la sfarsitul unui instantaneu solicita ca intreg setul rezultat sa fie descarcat pe calculatorul local, dar cu un set dinamic doar ultimul ecran de date este adus pe calculatorul local. In plus, cel mai rapid mod de a adauga inregistrari noi la un tabel, formular sau interogare este de a face clic pe Intrare date in meniul Inregistrari. (Intrare date nu este disponibila daca proprietatea RecordsetType este setata cu valoarea Snapshot). Utilizarea memoriei cache. Daca veti reutiliza cele mai recente date de pe server in timpul rularii aplicatiei, este mai rapid sa preluati un singur bloc mare de date (mult randuri) si sa il stocati intr-un cache decat sa preluati multe randuri individuale. Formularele si foile de date Microsoft Access utilizeaza cache in mod automat. Daca preluati date utilizand un obiect Recordset creat in Microsoft Visual Basic, aveti posibilitatea sa utilizati proprietatea CacheSize pentru a preciza cate inregistrari sa fie preluate odata in memoria locala. Pentru interogari actualizare masiva pe surse de date ODBC, optimizati performantele serverului setand proprietatea FailOnError cu valoarea Yes. Evitati utilizarea interogarilor care au ca efect procesarile pe calculatorul client local. La accesarea datelor externe, motorul baza de date Jet proceseaza datele local doar cand operatia nu poate fi executata de serverul baza de date extern. Operatiile interogare executate local (asa cum sunt definite de comenzile SQL utilizate pentru a le implementa) includ: operatii JOIN intre tabele din diferite surse de date la distanta. (De exemplu sa presupunem ca asocierea implica un tabel sau o interogare locale cu cateva inregistrari si un tabel la distanta cu mult mai multe inregistrari si campul de asociere al tabelului la distanta este indexat. In acest caz Access returneaza doar inregistrarile care corespund tabelului sau interogarii locale, de aceea imbunatatind mult performantele interogarii). Operatiunile JOIN bazate pe o interogare cu predicatul DISTINCT sau cu o clauza GROUP BY. Unirile externe (asociere externa: O asociere in care fiecare dintre inregistrarile corespondente din doua tabele se combina intr-o inregistrare din rezultatele interogarii si unul dintre tabele contribuie cu toate inregistrarile sale, chiar daca valorile din campul asociat nu corespund celor din celalalt tabel.) continand sintaxe neacceptate de server. Predicatele DISTINCT continand operatii care nu pot fi procesate la distanta. Operatorul LIKE utilizat cu campurile Text sau Memo (pot sa nu fie suportate de unele servere). Argumente si totaluri GROUP BY multi-nivel, cum ar fi cele utilizate in rapoarte cu niveluri multiple de grupare. Argumente GROUP BY bazate pe o interogare cu un predicat DISTINCT sau cu o clauza GROUP BY. Interogari de tip tabel incrucisat care au mai mult de un agregat, care au anteturi camp, rand sau coloana continand agregate sau care au o clauza ORDER BY definita de utilizator. Predicate TOP n sau TOP n PERCENT. Functii definite de utilizator sau operatori sau functii care nu sunt suportate de server. Combinatii complexe de operatii INNER JOIN (asociere interna: O asociere in care inregistrarile din doua tabele sunt combinate in rezultatele unei interogari numai daca valorile din campurile asociate indeplinesc o anumita conditie specificata. Intr-o interogare, asocierea implicita este o asociere interna care selecteaza inregistrarile numai daca valorile campurilor asociate coincid.), LEFT JOIN (asociere externa la stanga: Asociere externa in care toate inregistrarile din partea stanga a operatiei LEFT JOIN dintr-o instructiune SQL a unei interogari sunt adaugate la rezultatul interogarii, chiar daca nu exista valori corespondente in campurile asociate din tabelul din dreapta.) sau RIGHT JOIN (asociere externa la dreapta: O asociere externa in care toate inregistrarile din partea dreapta a operatiei RIGHT JOIN din instructiunea SQL a interogarii sunt adaugate la rezultate, chiar daca nu exista valori corespondente pentru campurile asociate din tabelul din stanga.) in interogari imbricate. Imbunatatirea performantei intr-un mediu multiutilizator Urmatoarele indicatii va ajuta sa optimizati performantele bazelor de date Microsoft Access (baza de date Microsoft Access: O colectie de date si obiecte (cum ar fi tabele, interogari sau formulare) care sunt corelate cu un anumit subiect sau scop. Motorul baza de date Microsoft Jet gestioneaza datele.) utilizate intr-un mediu multiutilizator. Puneti numai tabelele in serverul de retea si pastrati celelalte obiecte ale bazei de date in calculatoarele utilizatorilor. Functionarea bazei de date va fi mai rapida deoarece numai datele sunt trimise prin retea. Aveti posibilitatea sa separati tabelele de celelalte obiecte ale bazei de date utilizand expertul Divizare baza de date. Alegeti o strategie adecvata de blocare a inregistrarilor. Daca utilizati o blocare optimista (Fara blocare), Access nu blocheaza o inregistrare sau o pagina pana la salvarea modificarilor aduse, in consecinta datele devin mai rapid disponibile. Daca utilizati o blocare pesimista (Inregistrari editate), Access blocheaza inregistrarile imediat ce utilizatorul incepe editarea ei —- este posibil ca inregistrarile sa fie blocate pentru perioade mai lungi de timp, dar daca doi utilizatori editeaza aceeasi inregistrare simultan ei nu trebuie sa decida care dintre modificari se salveaza. Alegeti strategia corespunzatoare pentru nivelul de blocare (blocare la nivel de pagina sau la nivel de inregistrare). Evitati conflictele de blocare prin ajustarea setarilor Interval reimprospatare, Interval reincercare actualizare, Numar incercari de actualizare si Interval reimprospatare ODBC (daca se aplica). Optimizati performanta tabelelor (inclusiv a tabelelor legate la alte surse de date cum ar fi Microsoft SQL Server). Efectuati conversia fisierului cu informatiile grupului de lucru (fisier de informatii al grupului de lucru: Un fisier pe care Access il citeste la pornire care contine informatii despre utilizatorii dintr-un grup de lucru. Aceasta informatie include numele de cont ale utilizatorilor , parolele lor, si grupurile in care sunt membri.) din Access 97 sau anterior la versiunea curenta de Access. Imbunatatirea performantei interogarii
|