Nasveti za avtomatizacijo. Nasveti za avtomatizacijo Viseči 1s 8.3

Uporabniki se pogosto pritožujejo, da se "1C 8.3 upočasni": obrazci za dokumente se odpirajo počasi, dokumenti se hranijo dlje časa, program se zažene, poročila se ustvarjajo dolgo časa itd.

Poleg tega lahko takšne "napake" najdemo v različnih programih:

Razlogi so lahko različni. Ni obnovljeno shranjevanje dokumentov, šibek računalnik ali strežnik, napačno konfiguriran 1C strežnik.

V tem članku želim razmisliti o enem najpreprostejših in najpogostejših razlogov za počasen program -. To navodilo bo pomembno za uporabnike zbirk datotek za 1-2 uporabnika, kjer ni konkurence za vire.

Če vas zanima resnejša optimizacija odjemalsko-strežniških možnosti sistema, obiščite razdelek spletnega mesta.

Kjer v 1C 8.3 načrtovana opravila

Preden sem imel čas za nalaganje programa, so bile v 1C izvedene številne naloge v ozadju. Ogledate si jih lahko v meniju "Administracija", nato - "Podpora in storitve":

Brezplačno preberite 267 video vadnic 1C:

Tako izgleda okno dokončanih opravil:

In tako celoten seznam vseh načrtovanih opravil, ki se zaženejo:

Med temi nalogami so "", nalaganje različnih klasifikatorjev, preverjanje ustreznosti različice programa itd. Na primer, skoraj vsa ta opravila so zame neuporabna. Ne vodim računovodstva valut, sam nadzorujem različice, po potrebi naložim klasifikatorje.

V skladu s tem je v mojem (in v večini primerov v vašem) interesu onemogočanje nepotrebnih opravil.

Onemogočanje načrtovanih in ozadnih opravil v 1C 8.3

Znana pritožba uporabnikov »1C visi«, ki jo strokovnjaki za IT dobro poznajo, ima veliko razlogov. Za oblikovanje pravilne "diagnoze" - za identifikacijo in analizo problema je potrebno njeno reprodukcijo, saj je problema, ki ga ni mogoče reproducirati, praviloma skoraj nemogoče rešiti. Ko smo odkrili simptome zmrzovanja 1C, bomo naredili prvi korak k učinkovito delujočemu sistemu.

Zelo dolg zagon sistema

Dolg začetek težke konfiguracije pod enim uporabnikom prvič po dodajanju varnosti informacij na seznam baz podatkov v računalniku je normalen pojav. Med prvim zagonom se konfiguracija predpomni. Drugi in naslednji teki bi morali biti hitrejši.

Zagon sistema, ki traja dlje časa, lahko kaže na težave pri arhitekturni izvedbi konfiguracije. Večino konfiguracije okvir prebere šele ob prvem dostopu do zahtevanega predmeta metapodatkov. Dolg zagonski čas kaže na verjetnost uporabe velikega števila objektov metapodatkov (veliko klicev na različne skupne module, obdelavo itd.).

Upoštevati je treba, da se ob prvem dostopu do besedila katerega koli modula prevede. Ta proces zahteva tudi čas, kar je še posebej opazno, če je veliko modulov. Tako je problem počasnega zagona rešen s spremembo (optimizacijo) konfiguracije, katere namen je onemogočiti izvajanje vseh izbirnih algoritmov, ki se izvajajo ob zagonu sistema.

Obstaja možnost, da konfiguracija ob zagonu poskuša prebrati podatke iz interneta. Prav tako podaljša čas zagona sistema.

Zelo dolgo odpiranje obrazcev

Dolgo odpiranje obrazcev je lahko posledica:

  1. Veliko število kontrol na obrazcu - čas se porabi za ustvarjanje obrazca in medsebojno povezovanje razporeditve elementov obrazca;
  2. Izvajanje algoritmov pri inicializaciji obrazca. Morda se pri ustvarjanju obrazca preverijo nekateri pogoji in / ali odčita sorodni predmeti iz baze podatkov.

Prva težava se "popravi" s poenostavitvijo obrazca. Nekatere kontrolnike lahko na primer postavite v ločene oblike, kar je lahko za uporabnika še bolj priročno. Na primer, če ima obrazec naslovno polje "Mesto", "Ulica", "Hiša" itd., Je bolje urejanje naslova dati v ločen obrazec.

Drugi problem je rešen z analizo dejanj, ki se izvajajo pri ustvarjanju in odpiranju obrazca, in z optimizacijo teh algoritmov. Morda so nekateri algoritmi že zastareli, nekatere pa je mogoče poenostaviti in optimizirati, na primer izključiti ali zmanjšati dostop do podatkov v zbirki podatkov.

Kot interaktivno dejanje razmislite o uporabniku, ki poskuša izbrati vrednost na elementu obrazca. V odgovor na to sistem "razmišlja o nečem". To se lahko zgodi iz naslednjih razlogov:

  1. Algoritmi, izvedeni v tem dejanju, preverijo ali izračunajo povezane podatke, ki vplivajo na način izbire vrednosti;
  2. Izbirni obrazec, ki se odpre za izbiro te vrednosti, ob inicializaciji prebere vse predmete iz baze podatkov.

Če želite rešiti prvo težavo, uporabite "Merjenje uspešnosti", poiščite algoritme, ki porabijo veliko sredstev, in jih optimizirajte.


Drugi problem je pogosto mogoče rešiti s preprosto analizo izvajanja oblike izbire. Prepričajte se na primer, da je lastnost "Dinamično branje podatkov" nastavljena za dinamični seznam, da je lastnost "Glavna tabela" pravilno nastavljena in da izvedba seznama ne uporablja očitno intenzivnih algoritmov.

Obstajajo tudi situacije, ko se pri odpiranju izbirnega obrazca iz baze podatkov preberejo nekateri povezani podatki (na primer, ko odprete izbirni obrazec »Nomenklatura«, se preberejo stanja blaga v skladiščih). To ponavadi ni najboljša rešitev. Povezane podatke je bolje odpreti po odprtju obrazca. To bo uporabniku povzročilo manj nelagodja, saj po prikazanem obrazcu bo uporabnik porabil nekaj časa za zaznavanje odprtega obrazca, ta čas pa lahko porabi za nalaganje povezanih podatkov.

Zelo dolg odziv na posodobitve

Eden od nepomembnih simptomov pa lahko pove o nekaterih sistemskih težavah: posodobitev 1C visi ob zagonu varnostne kopije. To se večinoma dogaja pri posodabljanju prek interneta in najverjetneje kaže, da konfiguracija že dolgo ni bila posodobljena in da so različice, ki so se prevrnile ena na drugo, povzročile zastoj. Takšno težavo lahko preprečite s pravočasno namestitvijo posodobitev, če pa naletite nanjo, lahko preprosto prekinete postopek varnostnega kopiranja. Po zagonu konfiguratorja se bo osnova začela s spremembami v običajnem načinu.

Treba je opozoriti, da 1C 8.3 med posodobitvami najpogosteje visi tudi zato, ker zahteva strojno opremo, ki porabi več virov, kot prejšnje različice platforme. Vredno je biti pozoren na količino RAM -a in ga po potrebi povečati - to bi načeloma moralo pomagati pri reševanju problema "1C visi pri posodobitvi konfiguracije."

Dolga evidenca predmetov / objavljanje dokumentov

V tem primeru je "obdelava s fotografijo" praktično izključena, saj so razlogi lahko zelo različni, začenši z veliko količino podatkov v objektu, končajoč s čakanjem na ključavnice.

Toda tudi v tem primeru lahko začrtate smer analize.

Odsotnost pomembnih sprememb v času snemanja zaradi časa dneva ali števila uporabnikov (glede na grobo, subjektivno oceno) kaže na težavo v kodi ali količini podatkov o objektu. V tem primeru je za analizo smiselno uporabiti orodje "Merilnik uspešnosti".

Radikalna sprememba časa snemanja z nejasnimi odvisnostmi zahteva statistično analizo videza problema, tj. analiza uspešnosti. Najlažji način je analizirati uporabo dnevnika. Dodatna prednost pri tem je podpora platforme 1C: Enterprise 8 za shranjevanje podatkov dnevnika v datoteko v obliki SQLite. To vam bo omogočilo uporabo poizvedb SQL za razčlenjevanje podatkov dnevnika. Čas snemanja objekta je povsem mogoče pridobiti iz podatkov dnevnika, glede na dejstvo, da se vsak zapis objekta izvede v transakciji in ima vsaka transakcija svojo identifikacijsko številko.


Če je rezultat statistične analize pokazal, da je čas snemanja objekta odvisen od časa dneva in ne od števila uporabnikov, je treba analizirati obremenitev strežnika 1C in strežnika baz podatkov. Možno je, da strežnik izvaja rutinske procese, ki porabijo nepotrebne vire.

Če je čas snemanja predmetov odvisen od števila uporabnikov, so težave najverjetneje v kodi (možno je čakanje na ključavnice) ali v prepustnosti opreme. Če jih želite rešiti, bi morali vključiti strokovnjaka s pristojnostjo "1C: Tehnološki strokovnjak", saj za reševanje takega problema ni enotnih pravil.

1C: Računovodstvo je eden najbolj znanih in najprimernejših računovodskih programov. Dokaz za to je njena vseprisotnost na vseh področjih dejavnosti: trgovina, proizvodnja, finance itd.

Na žalost, tako kot vsi računalniški programi v 1C: Računovodstvo, obstajajo tudi različne zrušitve in zamrznitve. Ena najpogostejših težav je počasnost sistema.

Da bi razumeli razloge za njegov nastanek in jih poskušali odpraviti, je bil napisan današnji članek.

Odprava pogostih razlogov za počasno delovanje 1C

1. Najpogostejši razlog za počasno delovanje programa je dolgotrajen dostop do osnovne datoteke 1C, ki je možen zaradi napak na trdem disku ali zaradi slabe kakovosti internetne povezave, v primeru uporabe tehnologij v oblaku . Možne so tudi težave pri nastavitvah protivirusnega sistema.

Rešitev: Izvedite skeniranje obnovitve napak in defragmentirajte trdi disk. Preizkusite hitrost dostopa do interneta. Pri nizkih cenah (manj kot 1 Mb / s) se obrnite na storitev TP ponudnika. Začasno onemogočite protivirusno zaščito in požarni zid v protivirusnem sistemu.

2. Verjetno je počasno delovanje programa posledica velike velikosti datoteke zbirke podatkov.

Za rešitev tega problema odprite 1C v načinu "Konfigurator", v sistemskem meniju izberite "Administracija", nato "Testiranje in popravilo". V oknu je treba izbrati postavko "Stiskanje tabel baze podatkov", pod postavko "Testiranje in popravilo" pa je aktivna. Kliknite "Zaženi" in počakajte, da se postopek konča.

3. Naslednji možni razlog je zastarela programska oprema ali zastarela različica programa samega.

Izhod iz te situacije: posodobite programsko opremo operacijskega sistema ali namestite najnovejšo različico programa 1C. Zaradi preventivnih ukrepov vedno posodobite na najnovejšo različico, odpravlja napake prejšnjih konfiguracij.

Če želite namestiti najnovejšo različico sistema 1C, morate vnesti program v način "Konfiguracija", nato v meniju pojdite na "Storitev" -> "Storitev" -> "Posodobitev konfiguracije", nato izberite privzete nastavitve in kliknite gumb »Posodobi«.

2. Posebnost programa. Pogosto tudi pri optimalnih nastavitvah 1C deluje zelo počasi. Uspešnost se še posebej močno zmanjša, če število sočasno delujočih zbirk podatkov presega 4-5 uporabnikov.

Kdo ste v podjetju?

Rešitev problema počasnega dela 1C je odvisna od tega, kdo ste v podjetju. Če ste tehnik, samo preberite. Če ste direktor ali računovodja, sledite posebni povezavi ↓

Pasovna širina omrežja

Praviloma z eno podatkovno bazo (IB) ne dela en, ampak več uporabnikov. Hkrati se med računalnikom, na katerem je nameščen odjemalec 1C, in računalnikom, na katerem je IB, nenehno izmenjujejo podatki. Obseg teh podatkov je precej velik. Pogosto se pojavi situacija, ko lokalno omrežje, ki deluje s hitrostjo 100 Mbit / s in je to najpogostejša hitrost, preprosto ne more obvladati obremenitve. In spet se uporabnik pritožuje nad zavorami v programu.

Vsak od teh dejavnikov posebej že bistveno zmanjšuje hitrost programa, najbolj neprijetno pa je, da se te stvari običajno povzamejo.

Zdaj pa poglejmo več rešitev problema z nizko hitrostjo 1C in njihove stroške na primeru lokalnega omrežja 10 srednje velikih računalnikov.

Rešitev ena. Posodobitev infrastrukture

To je morda najbolj očitna rešitev. Izračunajmo njegove minimalne stroške.

Vsaj za vsak računalnik potrebujemo 2 GB RAM -a, stane v povprečju 1500 rubljev, omrežna kartica s podporo za 1 Gbps stane približno 700 rubljev. Poleg tega boste potrebovali vsaj 1 usmerjevalnik, ki podpira 1 Gbps, kar bo stalo približno 4000 rubljev. Skupni stroški - 26.000 rubljev za opremo, brez dela.

Načeloma se lahko hitrost znatno poveča, vendar zdaj za pisarne ne bo mogoče kupiti poceni računalnikov. Poleg tega ta rešitev ne velja za tiste, ki uporabljajo Wi -Fi ali želijo delati prek interneta - v njihovem primeru je lahko hitrost omrežja desetkrat nižja. Pomisli se samo: "Ali je možno celotno delovanje programa izvesti na enem zmogljivem strežniku, tako da uporabniški računalnik ne sodeluje pri zapletenih izračunih, ampak služi zgolj za prenos slike?" Potem je možno delati tudi na zelo šibkih računalnikih, tudi v omrežjih z nizko pasovno širino. Seveda takšne rešitve obstajajo.

Rešitev dve. Terminalni strežnik

Veliko priljubljenost je pridobil v dneh 1C 7. Izvedeno na strežniški različici sistema Windows in se odlično spopada z našo nalogo. Vendar ima svoje pasti, in sicer stroške licenc.

Operacijski sistem bo stal približno 40.000 rubljev. Poleg tega za vse, ki nameravate delati v 1C, potrebujemo tudi licenco CAL za Windows Server v vrednosti približno 1700 rubljev in licenco CAL za storitve oddaljenega namizja Windows, ki stane približno 5900 rubljev.

Če izračunamo stroške za omrežje 10 računalnikov, dobimo 116.000 rubljev. samo za eno licenco. Če k temu prištejemo še stroške samega strežnika (najmanj 40.000 rubljev) in stroške izvedbenega dela, pa se je tudi brez tega cena licenc izkazala za impresivno.

Rešitev tretja. Storitev 1C Enterprise

1C je razvil lastno rešitev tega problema, ki lahko resno poveča hitrost programa. Toda tu je tudi odtenek.

Dejstvo je, da se stroški takšne rešitve gibljejo od 50.000 do 80.000 rubljev, odvisno od uredništva. Za podjetje z do 15 uporabniki se izkaže za drago. Veliki upi so bili položeni na "1C Enterprise mini-server", ki je po podatkih 1C osredotočen na mala podjetja in stane okoli 10.000-15.000 rubljev.

Ko pa je šel v prodajo, je bil ta izdelek veliko razočaranje. Dejstvo je, da je največje število uporabnikov, s katerimi je mogoče uporabiti mini-strežnik, le 5.

Kot je na forumu zapisal en programer 1C: »Še vedno ni jasno, zakaj je 1C izbral točno 5 povezav! Od 4 uporabnikov se težave šele začnejo, tukaj pa se vse konča pri 5 uporabnikih. Če želite povezati šesto, plačajte še 50 tisoč. Naredili bi vsaj 10 povezav ... "

Seveda je mini-strežnik našel tudi svojega potrošnika. Vendar pa se za podjetja, kjer 5 ljudi ali več dela z 1C, preprosta in poceni rešitev ni pojavila.

Poleg zgoraj opisanih načinov pospeševanja programa obstaja še ena, ki je idealna za uporabnike od 5 do 15 segmentov, in sicer spletni dostop za 1C v datotečnem načinu.

Rešitev štiri. Spletni dostop za 1C v datotečnem načinu

Načelo delovanja je naslednje: dodatna vloga spletnega strežnika se dvigne na računalniku, na katerem je objavljena varnost informacij.

Seveda mora biti to najmočnejši računalnik v omrežju ali ločen stroj, namenjen tej vlogi. Po tem lahko delate z 1C v načinu spletnega strežnika. Vse težke operacije bodo izvedene na strani strežnika, promet, ki se prenaša po omrežju, pa bo minimiziran, prav tako pa tudi obremenitev odjemalčevega računalnika.

Tako lahko celo zelo šibke stroje uporabljamo za delo v 1C in pasovna širina omrežja ne postane kritična. Naši testi so pokazali, da je možno udobno delati prek mobilnega interneta na poceni tabličnem računalniku, ne da bi pri tem prišlo do nelagodja.

Ta možnost je glede na hitrost slabša od poslovnega strežnika 1C, vendar ta razlika do 15-20 uporabnikov vizualno praktično ni opazna. Mimogrede, za uporabo spletnega strežnika lahko uporabite IIS (za Windows) in Apache (za Linux), obe rešitvi pa sta brezplačni!

Kljub očitnim prednostim ta metoda optimizacije dela 1C ni bila priljubljena.

Ne morem zagotovo reči, najverjetneje pa je to posledica dveh razlogov:

  • Precej šibek opis v tehnični dokumentaciji
  • Nahaja se na stičišču odgovornosti skrbnika sistema in programerja 1C

Običajno, ko se sistemski skrbnik obrne s težavo pri nizki hitrosti, ponudi nadgradnjo infrastrukture ali terminalski strežnik, če je strokovnjaku za 1C na voljo strežnik podjetja 1C. Če torej v vašem podjetju specialist za infrastrukturo in specialist za 1C delata "z roko v roki", potem lahko varno uporabite rešitev, ki temelji na spletnem strežniku.

Pospešimo 1C. Na daljavo, hitro in brez vaše udeležbe

Sposobni smo pospešiti 1Ski in hkrati ne trzati kupca. Poglobimo se v problem, opravimo svoje delo in odidemo. Če želite, da program deluje brezhibno, nas kontaktirajte. Ugotovili bomo.

Pustite zahtevo in se brezplačno posvetujte o pospešitvi programa.

Vpliv ključavnic na delovanje 1C: Enterprise 8

Ekipa gilev že vrsto let dela na vprašanjih uspešnosti in je bila med drugim uspešna pri odpravljanju ključavnic in zastojev.

Spodaj bomo opisali naše izkušnje pri reševanju teh težav.

Odkrivanje težav pri blokiranju v 1C

Težave z zmogljivostjo v načinu za več uporabnikov niso nujno povezane s slabo kodo ali slabo strojno opremo. Najprej moramo odgovoriti na vprašanje - kakšne težave pri delovanju obstajajo in kaj jih povzroča?

Dejavnosti več sto uporabnikov ni mogoče ročno slediti; potrebujete orodje, ki avtomatizira zbiranje takih podatkov.

Orodja je veliko, a skoraj vsa imajo eno zelo pomembno pomanjkljivost - ceno.

Obstaja pa izhod - izbiramo

Težavo bomo raziskali na strežniku MS SQL Server, zato iz tega niza potrebujemo naslednje storitve:

1. Spremljanje in analiza dolgih poizvedb(več o nastavitvi preberite tukaj) - potrebno je za oceno prisotnosti dolgih operacij za subd.

Dejansko njihova prisotnost nam omogoča, da rečemo, da obstajajo težave z zmogljivostjo, težave pa so v vrsticah konfiguracijske kode 1C, ki jo bo storitev uvrstila po pomembnosti. Najprej je treba odpraviti težave na vrhu seznama. Takšne rešitve problemskih nizov bodo imele največji učinek, t.j. bo za uporabnike sistema najbolj uporaben in smiseln.

(preberite več tukaj) nam bo omogočilo oceno, ali je čas dolgih (dolgih) zahtev dejansko posledica čakanja na zaklepanje ali obstajajo drugi razlogi (neoptimalna koda, preobremenitev strojne opreme itd.) Storitev bo pokazala razlog za zahtevo, in sicer vir, ki je bil blokiran, in kdo ga je blokiral. Tisti. razumeli bomo obstoj težav z blokiranjem in njihove vzroke.

3. Analiza zastojev v 1C in MS SQL strežniku(več o nastavitvi preberite tukaj) - nam bo omogočilo oceno bolj zapletenih situacij s čakanjem na vire, ko je več udeležencev del virov že "ujelo" z zaklepom in so zdaj prisiljeni čakati in so prisiljeni čakati na vsakega drugo zaradi dejstva, da zasedenih sredstev ne morejo sprostiti do zaključka zasega drugih virov, ki so jih blokirali sosedje.

Na splošno tako težke situacije ni mogoče razumeti ročno, potrebna je takšna storitev.

4. Nadzor nad uporabo opreme(več o nastavitvi preberite tukaj) nam pomaga odgovoriti na vprašanja - koliko uporabnikov je v sistemu, ali imajo ključavnice, koliko ključavnic, ali strojna oprema prenese obremenitev?

Storitve so zelo enostavne za nastavitev, vendar tudi če imate še vedno vprašanja, obstajajo!

S pomočjo zgornjih orodij imamo objektivne informacije o delovanju sistema. To nam omogoča, da pravilno ocenimo situacijo in predlagamo ustrezne ukrepe.

Pravzaprav dobimo informacije o vseh težavah z zmogljivostjo in lahko natančno odgovorimo na vprašanja, kot so "koliko težav je v sistemu", "kje točno nastanejo", "vsaka težava s kakšno natančnostjo se pojavi", "katere težave so pomembne in sekundarne. " Tisti. vidimo vse predpogoje, ki so bili vzrok težave.

Storitve vam omogočajo, da bistveno izboljšate razumevanje pogojev za nastanek težav, ne da bi vas morali ročno poglobiti v stvari, kot so struktura za shranjevanje podatkov v podatkovni bazi na ravni DBMS, mehanizem za uvedbo ključavnic itd.

Kot rezultat dobimo sliko uspešnosti, ki se meri

- čas povpraševanja (seveda, ko ste težavne zahteve razvrstili (čas zahteve za število klicev te zahteve);

- čakalna doba za ključavnice;

Tako smo začeli storitev Analiza pričakovanj na ključavnicah.

V zgornji tabeli storitev prikaže seznam žrtev blokiranja, pri čemer upošteva skupno težo "resnosti pričakovanj".

V spodnji tabeli so za vsako žrtev obravnavani eden ali več udeležencev "boja za visoko konkurenčen vir", kjer je čakanje nastalo na ključavnici.

V spodnji tabeli odprite analizo enega od dogodkov »timeout«. Kot na sliki.

Če označimo vrstico z "krivcem", bomo videli, da je tabela _Reference64 postala ozko grlo in prišlo je do težave z grupisanim indeksom z "neznanim" območjem. Morda ga bomo v prihodnosti preimenovali v "mizo", saj je pravzaprav to vedenje značilno za povečanje / povečanje območja blokiranja.

Vrstica z "žrtev" prikazuje, katera koda je bila talka situacije in ni mogla blokirati vse samo vrstice "po ključu" (minimalno območje blokiranja podatkov v tej tabeli).

Ta problem je mogoče rešiti "pravilno" in "enostavno".

Težje je slediti pravi poti - pravzaprav morate kodo prepisati, da zmanjšate verjetnost takšnih situacij.

Nenavadno je, da je eden od dejavnikov skrajšanje trajanja.

Trajanje transakcije lahko skrajšate:

1. prepisovanje algoritma

2. s prepisovanjem poizvedbe (hitrejša poizvedba zmanjša verjetnost zaklepanja zapletenih transakcij v tabelah, ki včasih morda sploh niso v poizvedbi!)

2.1 z dodajanjem manjkajočega pokrovnega indeksa (včasih indeks ne le pospeši poizvedbo, ampak tudi zmanjša območje branja podatkov, kar zmanjša verjetnost blokiranja)

3. z zmanjšanjem količine podatkov, obdelanih v transakciji (poleg linearne hitrosti se spomnimo tudi stopnjevanja ključavnic)

4. povečanje produktivnosti opreme v vsakem toku

Čas izvedbe zahteve

1) različni uporabniki lahko delajo vzporedno z različnimi podatki
2) različni uporabniki morajo delati strogo zaporedno z istimi podatki

Lahko pa optimizirate uporabo ključavnic in s tem zmanjšate splošno zamudo.

Kako delujejo ključavnice (ta odstavek je mogoče izpustiti)

Za zaklepanje skrbi poseben modul SQL Server - Lock Manager. Njegove naloge vključujejo:

  • izdelava in namestitev ključavnic;
  • odstranjevanje ključavnic;
  • stopnjevanje ključavnic;
  • ugotavljanje združljivosti ključavnic;
  • odprava zastojev in še veliko več.

Ko uporabnik poda zahtevo za posodobitev ali branje podatkov, upravitelj transakcij DBMS prenese nadzor na upravitelja zaklepanja DBMS, da ugotovi, ali so bili zahtevani viri zaklenjeni, in če je tako, ali je zahtevano zaklepanje združljivo s trenutnim . Če ključavnice niso združljive, se izvedba trenutne transakcije odloži, dokler se podatki ne odklenejo. Takoj, ko so podatki na voljo, upravitelj zaklepanja uporabi zahtevano zaklepanje in vrne nadzor upravljalniku transakcij.

Glavni razlog za upočasnitev delovanja so ključavnice

Čakanje na ključavnice je v načinu za več igralcev velika težava pri delovanju. In to je razumljivo, saj podaljšujejo čakalno dobo na operacije in s tem odzivni čas. Ali je mogoče reči, da čakanje na ključavnice ni pravilno in je napaka sistema za več uporabnikov? Tega ni mogoče reči, saj sam mehanizem za zaklepanje virov zagotavlja celovitost podatkov. Z zaklepnim mehanizmom so sočasni podatki NAPISANI SEKVENTNO.

Razlika med zahtevanimi in odvečnimi ključavnicami

Ko uporabnik prijavi čakalno napako na ključavnici, je to z njegovega vidika vedno napaka, ker na primer moti njegovo delo - čas izvajanja njegovega dela se podaljša.

Izkušnje kažejo na preprosto pravilo, če več kot polovica časa izvajanja poizvedbe dejansko čaka na blokiran vir, potem morate pogledati: morda je mogoče nekatere ključavnice optimizirati, čas blokiranja virov pa skrajšati.

Tu, kot po naključju, uvajam definicijo:

Čakanje na ključavnico Je situacija, do katere pride, ko dva uporabnika poskušata hkrati vzeti iste podatke. V tem primeru je eden od teh uporabnikov blokiran, torej mora počakati do konca transakcije za prvega uporabnika.

Transakcija je niz izračunov in operacij s podatki (najbolj presenetljiv primer je pri objavi dokumenta), ki se izvajajo kot celota. Če ne dokončate nobene transakcijske transakcije, se celotna transakcija prekliče.

Tako se lahko uporabniki v večoporabniških informacijskih bazah pogosto pritožujejo, da zaradi teh ključavnic ni mogoče delati, čeprav lahko v kodi res obstajajo ključavnice, ki na tem mestu niso potrebne (odvečne).
In tudi v konfiguracijski kodi sami morda nimajo ključavnic, o njih lahko preberete na primer tukaj http://kb.1c.ru/articleView.jsp?id=30 (članek je fragment knjige avtorja PS Belousov, AV. Ostroverh "1C: Podjetje: od 8,0 do 8,1".). Predlagam poenostavljen način razlage razlike med ključavnicami s preprostim primerom, kot je ta:

V konfiguraciji v načinu 1C: Enterprise ustvarite dva enaka računa z isto sestavo blaga. Vendar obvezno navedite različna skladišča potrdila.
V kodo za obdelavo transakcije dodajte vrstico s prikazom sporočila (ali drugo kodo, ki lahko za 21 sekund odloži izvedbo transakcije (do privzete parametre pride do blokade po 20 sekundah)).
Objavite dva dokumenta.
Če pride do časovne omejitve in blago logično prispe v različna skladišča, aplikacija vsebuje odvečne ključavnice. Poslovna logika (uporabite zdrav razum) ne sme imeti ključavnic.
Če zdaj v teh dveh računih naredimo enaka skladišča. Potem bodo ustvarjene ključavnice zaradi poskusa hkratne izvedbe povzročile NUJNO zaklepanje in to je DOBRO!

Tisti. medtem ko račun spremeni stanje v skladišču, mora drugi počakati.

Seveda tudi ta preprost primer pušča veliko vprašanj. Kaj na primer, če so dokumenti od enega dobavitelja in se dolg na njem "premakne". In če se ne premikajo le stanja v skladišču, ampak več registrov, ampak dokumenti različnih vrst.
Toda najpomembnejše vprašanje - KAJ TAKE POSLOVNE LOGIKE NE SME BLOKIRATI. Kdo je ta poslovna logika in kje jo predpisuje v kontekstu ključavnic? Ampak povej nam o vsem po vrsti.

Prekomerne ključavnice - nepotrebne -, ki so nepotrebne z vidika celovitosti podatkov, hkrati pa zmanjšujejo splošno delovanje sistema s povečanjem skupnega časa v prostem teku - čakajo na ključavnice.
Do potrebnega blokiranja pride, ko dva uporabnika zasežeta iste vire (podatkovne objekte). Če uporabniki delajo z viri, ki se ne prekrivajo, vendar na zaklepanje čaka, se zaklepanje šteje za odveč.

Določil bom najbolj razumljiva merila za odvečnost ključavnic:

1. Zastoji;

2. Raven (območje) blokiranja je višja, kot je potrebno (kot poseben primer povečanja stopnje blokiranja, tako imenovano stopnjevanje);

3. Čas blokiranja je daljši od časa "resnične" uporabe blokirajočega predmeta.

Ko sem prejel informacije o skupinah težav v kontekstu metapodatkov 1C: Enterprise, priporočam, da bodite najprej pozorni na predmete:

  • Konstante
  • Podrednost
  • Računovodski registri
  • Akumulacijski registri
  • Informacijski registri
  • Izračunski registri

1) Do nedavnega je veljalo dobro priporočilo, naj se v konstante ne zapisuje nič. V skrajnih primerih to storite izpod enega uporabnika, nato pa se spomni, da medtem ko uporabnik "napiše" eno konstanto, ne samo to, ampak katero koli drugo, bodo drugi uporabniki "čakali". Zato je pri obdelavi prevodnosti še posebej nevarno uporabljati konstante. Vrednosti vseh konstant so shranjene v en vir.

Slika prikazuje fizično lokacijo konfiguracijskih konstant SCP v tabeli baze podatkov MS SQL Server 2005.

To pomeni, da blokiranje ene konstante blokira vse konstante. DBMS zaklene VSE eno vrstico tabele, tj. za vse konstante.

Vendar se je v zadnjih izdajah platforme spremenilo shranjevanje konstant. Zdaj je vsaka konstanta ločena tabela. Naj vas ne zanese preveč, če ustvarite na tisoče tabel, lahko ujamete ključavnico na podlagi mojstra.

Pozor, če vaša konfiguracija obstaja že dlje časa, lahko spremenite obliko shranjevanja z "prestrukturiranjem" v Preizkušanje in popravljanje konfiguratorja.

2) Zavrnite uporabo predmeta metapodatkov "Zaporedje". Vsaj zaradi gibov med operativnim vedenjem izvajajte z neoperativnim (dodatno vedenje). Oglejte si, kako se izvaja v najnovejših različicah mehkega zaganjalnika.

3) Če sistem izvaja operativno beleženje gibanj v računovodskem registru v načinu za več uporabnikov, je priporočljivo:

  • za ta register omogočite način deljenih seštevkov;
  • med operativnim delom ne uporabljajte nadzora nad preostalim delom registra.

4) V registru kopičenja lahko, če ni potrebe po pridobivanju "operativnih" podatkov, omogočite deljenje vsot, kar bo povečalo vzporednost beleženja podatkov in pospešilo delo na splošno. Natančno sledite meritvam, da boste lahko pri "meritvah" dobili čim več "ostankov".

5) Edini način, da se znebite nekaterih odvečnih ključavnic, ki jih ustvari platforma, je. V samodejnem načinu konfiguracije platforma "prevzame" blokiranje virov. Cena brezskrbne uporabe samodejnega načina - možne so ključavnice na mejah indeksnih območij, ključavnice na prazni mizi, stopnjevanje ključavnic.

Te ključavnice popolnoma izginejo podatki v transakciji. To pomeni, da to blokiranje ne bo mogoče, če deluje v nadzorovanem načinu.

Večkrat je že rekel "kontrolirane blokade", "nadzorovani način". Morate razumeti, da obstajata dve vrsti ključavnic:
Zaklepanje DBMS se pri izvajanju poizvedb samodejno nastavi na ravni DBMS.
Zaklepanje 1C: Enterprise se samodejno nastavi pri pisanju (spreminjanju) podatkov in vedno ročno pri branju podatkov.

Natančen bralec bo rekel, da se 1C deli tudi na ključavnice objektov in objektov, vendar se tega pristopa zdaj ne bomo dotaknili.

Ugotavljam pa, da to zahteva več kvalifikacij in izkušenj specialista 1C.

6) Manjkajoči indeksi (zlasti pri zapletenih poizvedbah) so na splošno glavni dejavnik pri večji stopnji zaklepanja, kot je potrebno. Tisti. paradox, po eni strani sem rekel, da sem pred optimizacijo poizvedbe rekel, da morate najprej pogledati ključavnice, zdaj pa rečem, da optimizirate ključavnice, morate optimizirati poizvedbo. Imam izgovor, da preklop konfiguracije na upravljane ključavnice zmanjša odvečne ključavnice tudi pri pomanjkljivi poizvedbi. To je posledica zmanjšanja ravni izolacije transakcij, kar posledično daje upravitelju zaklepanja DBMS manj razlogov za nalaganje pretiranih zaklepov.

Glavni vzroki za prekomerno blokiranje (povzetek zgoraj)

- napake pri načrtovanju
(stopnja vzporednosti je določena s "kako natančno so podatki izrezani": možno je vzporedno delo z dvema vrsticama tabele, delo z eno vrstico bo potekalo le zaporedno)
(napake pri uporabi metapodatkov: pisanje konstant, zaporedij, operativno računovodstvo v računovodske registre)
- pretirano blokiranje zaradi okvare samodejnega načina (platforma - povezava DBMS).
- neoptimalno delo zahteve
(na primer pri skeniranju tabele je celotna miza zaklenjena - odvečno območje
in čas blokiranja se poveča - presežek časa, dodatno blokiranje poveča verjetnost stopnjevanja blokov)

Kot lahko vidite, je naloga optimizacije ključavnic "večplastna". Čim bolje je treba razumeti »kontekst«, ki je povzročil težavo. Kakšni viri, kakšna koda. Kako resnično je to blokiranje potrebno ali je odveč.

Otrok in odrasla oseba ima vneto grlo. Ko zdravnik postavi vprašanje: "Kaj je narobe?" Ta jasna razlika usmerja zdravnika k različnim metodam prepoznavanja težave.
Z otrokom mora zdravnik opraviti veliko preizkusi, zbirajo podatke, jih združujejo, izvajajo analize in šele nato dajejo priporočila. Medtem ko bo z odraslo osebo postavil več vprašanj in ker je število začetnih podatkov majhno, bo čas za analizo in opredelitev problema bistveno krajši. Posledično bodo priporočila izdana veliko prej.

Uporabite naše storitve in imeli boste več priložnosti za brezplačno analizo težave in iskanje rešitve!