Microsoft Office Access
uređuje Branislav Mihaljev, MVP

 Office Praktikum | Mapa sajta 

 
Bookmark and Share
Matična strana sajta
Novo na sajtu
Mapa sajta
Beleške
Knjiga posetilaca
Kontakt

Prethodna stranica
Pretraga sajta
Pretraga MSKB

Blog Praktikuma
RSS feed 
 
Office Praktikum

Još o Accessu
 


Skoro svakodnevno slušamo
  Radio Paradise:
  eklektični muzički online radio bez reklama!
 

   

Sponzori sajta

  Connectivity by SBB
 
Connectivity by SBB

 

Informacije

NOVOSTI
Novi prilog o Wordu
Tri nova autorska članka
Četiri priloga o Accessu
Opis i uputstvo za alatku YuCirLat '08 (Word)

SADRŽAJ ZA PREUZIMANJE
YuCirLat '08 unapređena alatka za konverziju kodnih rasporeda u Wordu

SKREĆEMO PAŽNJU
Beleške: B(l)oga li ti tvoga!- prilog koji će nekog možda čak i da naljuti
Kako pretraživati MSKB
* a pronaći ćete i još mnogo novih sadržaja...

USKORO SERIJA ČLANAKA O OFFICEU 2010

POZIVAMO VAS
* i prenesite svoja iskustva. Najbolji prilozi će biti objavljeni.



  (C) 2000-2009 Praktikum na Webu
 

Optimizacije

Nivo:  NIVO 3 - klinite za objašnjenje


U nekoliko navrata pisali smo o raznim metodama optimizacije baza podataka sa ciljem ubrzanja njenog rada. Ovom prilikom opisaćemo nekoliko manje poznatih, gotovo "čudnih" metoda za ubrzavanje pristupa bazi...


Raniji prilog na temu tehnika optimizacije baze podataka
pročitajte ovde.

U mrežnom okruženju baza se deli na tzv. BackEnd i FrontEnd delove. Prvi deo se postavlja na server ili na neki drugi pouzdan računar i sadrži samo podatke. Drugi deo predstavlja korisnički interfejs, koji se instalira na radnim stanicama.

Ubrzavanje pristupa bazi uz zadržavanje strukture diska može se ubrzati proglašavanjem fascikle gde se nalazi BackEnd deo za virtuelni mrežni disk naredbom:

Subst C:\putanja\...\backend.mdb X:

Virtuelni disk X: zatim treba proglasiti deljivim na mreži i FrontEnd delove povezati sa bazom. U ovoj operaciji pomoći će vam čarobnjak Linked Table Manager koji se nalazi u meniju Tools. Access, naime, šalje naziv putanje i naziv baze kroz mrežu zajedno sa mnogim svojim komandama - npr. sa SQL komandama upita za popunjavanje padajućih lista i kreiranje izveštaja. Skraćivanje dužine komandi smanjuje gustinu saobraćaja i ubrzava rad.

Međutim, pravo povećanje performansi se dobija postavljanjem BackEnd dela baze u korenu fasciklu servera. Što je BackEnd dublje na disku, sigurnosni sistemi servera treba da proveravaju veći broj fascikli kako se krećete po njima. Na starim NT4 serverima sličnih problema nije bilo, problem se ispoljava prelaskom na Windows 2000 Server (krivo je svojstvo bezbednosti Traverse). Ponekad nije moguće bazu postaviti u korenu fasciklu servera, ali se preporučuje da se baza nađe odmah na prvom nivou fascikli. Kada smo našu test bazu prebacili iz četvrtog nivoa u korenu fasciklu servera, smanjili smo vreme učitavanja baze sa 45 na 14 sekundi!

Dodatno ubrzavanje se postiže skraćivanjem naziva BackEnd dela baze na manji broj karaktera i to na osam ili manje. Razloge ovome nismo uspeli da pronađemo, ali pretpostavljamo da ima veze sa starom konvencijom naziva datoteka 8+3.

Poznato je da Access 2000, za razliku od verzije 97, pati od problema brzog porasta veličine baze koji degradiraju performanse. Uzrok ovome je novi način čuvanja objekata projekta. Projekat čine formulari, izveštaji, moduli i makroi. U prethodnoj verziji svaki objekat je imao svoj zapis u sistemskoj tabeli. Kada bi se promenio jedan objekat, ažurirao bi se samo njegov zapis u sistemskoj tabeli.

Integracija Visual Basica u Office 2000 je zahtevala da se u Accessu promeni arhitektura skladištenja VBA projekata. Novo okruženje traži da se projekti čitaju i smeštaju odjednom. Projekat zapravo čini veliki binarni objekat (BLOB - Binary Large Object Block) koji se smešta u sistemsku tabelu. Prilikom snimanja izmena, Access snima kompletan projekat, umesto da prepiše samo modul u kome su načinjene izmene. Ovo praktično znači da što su veći projekti sa svojim modulima, snimanje je sporije. Izmenom npr. modula forme od 10 KB u projektu od 1 MB, Access 97 će snimiti samo ovaj modul, dok će novija verzija snimiti kompletan projekat. Ovakvo usporenje ima smisla jer pruža neuporedivo veću sigurnost objekata baze i pruža nezavisnost bazi od mehanizma Jet Database Engine. Obratite pažnju da će se pri svakoj izmeni projekta baza narasti za ukupnu veličinu projekta, pa vam preporučujemo da nakon izmena objekata obavezno primenite opciju Compact And Repair. Izmene na bazi uvek radite na lokalnoj bazi kako biste rasteretili mrežni saobraćaj.

Verovatno ste već primetili da se povezane tabele otvaraju sporije nego one u samoj bazi. Usporenje se naročito primećuje kada se stariji format baze konvertuje u noviji, mada postoje i dodatni razlozi. Access 2000 donosi novu mogućnost pregleda vezanih tabela podataka u relacijama jedan prema više. Svaki zapis u tabeli na strani "jedan" sadrži identifikator povezanih podataka druge tabele sa strane "više" sa kojim se vizuelno mogu pregledati povezani podaci. Problem naglog usporavanja rada prelaskom na noviju verziju se rešava isključenjem opcije Subdatasheet Name. Otvorite tabelu u režimu izmena dizajna. U meniju View odaberite Properties i na kartici osobina tabele vrednost [Auto] promenite u None. Za izmenu osobina svih tabela BackEnd dela baze upotrebite priloženu funkciju, koju ćete pokrenuti upisom IskljuciSDS u oknu Immediate. Za rad funkcije neophodno je da uključite biblioteku DAO 3.6.

Function IskljuciSDS()
Dim MyDB As DAO.Database
Dim MyProperty As DAO.Property
Dim propName As String, propVal As String
Dim propType As Integer, i As Integer

Set MyDB = CurrentDb
propName = "SubDataSheetName"
propType = 10
propVal = "[NONE]"

For i = 0 To MyDB.TableDefs.Count - 1
  If (MyDB.TableDefs(i).Attributes And dbSystemObject) = 0 Then

    If MyDB.TableDefs(i).Properties(propName).Value <> propVal Then
      MyDB.TableDefs(i).Properties(propName).Value = propVal
    End If

    If Err.Number = 3270 Then
      Set MyProperty = MyDB.TableDefs(i).CreateProperty(propName)
      MyProperty.Type = propType
      MyProperty.Value = propVal
      MyDB.TableDefs(i).Properties.Append MyProperty
    Else
      If Err.Number <> 0 Then
        MyDB.Close
        Exit Function
      End If
    End If
  End If
Next i

MyDB.Close

End Function

 

  (C) 2000-2009 Praktikum na Webu

Branislav Mihaljev, Access bajtovi, PC 91


 
 

Vrh stranice  Prethodna stranica  Naslovna strana  Mapa sajta  Pretraga

AFORIZAM ZA DANAS OVIH DANA SLUŠAMO...

Copyright © Praktikum na Webu, 2000-2009; Valinor Design; sva prava pridržana.