Bakit gumagana ang 1C. Mga tip sa pag-automate. Network bandwidth

Bakit gumagana ang 1C. Mga tip sa pag-automate. Network bandwidth

Kadalasan, ang mga gumagamit ay nagreklamo na "1C 8.3 slows down": ang mga paraan ng mga dokumento ay dahan-dahan bukas, ang mga dokumento ay gaganapin para sa isang mahabang panahon, ang programa ay inilunsad, mga ulat at iba pa.

Bukod dito, ang mga "glitches" ay maaaring mangyari sa iba't ibang mga programa:

Maaaring maging iba ang mga sanhi. Hindi ito naibalik upang magsagawa ng mga dokumento, isang mahinang computer o server, ang server 1C ay hindi tama na naka-configure.

Sa artikulong ito, gusto kong isaalang-alang ang isa sa pinakamadali at pinakakaraniwang dahilan para sa mabagal na gawain ng programa. Ang pagtuturo na ito ay may kaugnayan sa mga gumagamit ng mga database ng file sa pamamagitan ng 1-2 mga gumagamit, kung saan walang kumpetisyon para sa mga mapagkukunan.

Kung interesado ka sa mas malubhang pag-optimize ng mga bersyon ng client-server ng system, bisitahin ang seksyon ng site.

Kung saan sa 1c 8.3 maaasahang mga gawain

Wala akong panahon upang mag-upload ng isang programa tulad ng sa 1C maraming mga gawain sa background. Maaari mong makita ang mga ito sa pamamagitan ng pagpasok ng "administrasyon" na menu, simula dito - "Suporta at Serbisyo":

Kumuha ng 267 Mga Tutorial sa Video para sa 1C nang libre:

Narito mukhang isang window na may mga gawain na ginanap:

At kaya isang kumpletong listahan ng lahat ng mga gawain sa regulasyon na inilunsad:

Kabilang sa mga gawaing ito, tulad ng "", nagda-download ng iba't ibang mga classifier, suriin ang kaugnayan ng bersyon ng programa at iba pa. Halimbawa, halos lahat ako ng mga gawaing ito. Hindi ako nagsasagawa ng banyagang accounting ng pera, ang bersyon ng kontrol mismo, ang mga pag-load ng mga classifier kung kinakailangan.

Alinsunod dito, sa aking (at sa karamihan ng mga kaso sa iyong) interes upang huwag paganahin ang hindi kinakailangang mga gawain.

Huwag paganahin ang mga gawain sa regulasyon at background sa 1C 8.3.

2. Tampok ng programa. Kadalasan kahit na sa pinakamainam na setting 1c ay gumagana nang napakabagal. Lalo na ang mataas na bilis ay bumaba kapag ang bilang ng sabay na nagtatrabaho sa base ay lumampas sa 4-5 na mga gumagamit.

Sino ka sa kumpanya?

Ang paglutas ng problema ng mabagal na trabaho 1c ay depende sa kung sino ka sa kumpanya. Kung ikaw ay isang teknikal na espesyalista - basahin lamang sa. Kung ikaw ay direktor o accountant, pumunta sa isang espesyal na link ↓

Network bandwidth

Bilang isang patakaran, na may isang base ng impormasyon (IB), hindi isa, ngunit maraming mga gumagamit. Kasabay nito, ang data exchange ay patuloy na ginagawa sa pagitan ng computer, kung saan ang 1C client at ang computer ay naka-install kung saan matatagpuan ang IB. Ang halaga ng mga data na ito ay lubos na makabuluhan. Kadalasan mayroong isang sitwasyon kung saan ang lokal na network ay tumatakbo sa isang bilis ng 100 Mbps, at ito ang pinaka-karaniwang bilis, hindi lamang nakayanan ang pag-load. At muli ang gumagamit ay nagreklamo tungkol sa mga preno sa programa.

Ang bawat isa sa mga kadahilanan na ito ay isa-isa na makabuluhang binabawasan ang bilis ng programa, ngunit ang pinaka hindi kasiya-siya na karaniwang ang mga bagay na ito ay summed up.

Ngayon isaalang-alang ang ilang mga solusyon ng problema sa isang mababang bilis ng 1C at ang kanilang mga gastos, sa halimbawa ng isang lokal na network mula sa 10 daluyan ng mga computer.

Ang desisyon ang una. Modernisasyon ng imprastraktura

Ito ay marahil ang pinaka-halatang desisyon. Kalkulahin ang pinakamababang gastos nito.

Hindi bababa sa, para sa bawat computer, kailangan namin ng isang plank ng Ram 2 GB, kapaki-pakinabang, sa average, 1500 rubles, isang network card na may bilis na suporta 1 Gbit / C, nagkakahalaga ng tungkol sa 700 rubles. Bukod pa rito, kailangan mo ng hindi bababa sa 1 router na sumusuporta sa bilis ng 1 gbit / s, na nagkakahalaga ng humigit-kumulang na 4,000 rubles. Kabuuang gastos - 26,000 rubles para sa kagamitan, hindi kasama ang trabaho.

Sa prinsipyo, ang bilis ay maaaring makabuluhang lumago, gayunpaman, ngayon bumili ng murang mga computer sa opisina ay hindi gagana. Bilang karagdagan, ang desisyon na ito ay hindi naaangkop para sa mga gumagamit ng Wi-Fi o nais na magtrabaho sa pamamagitan ng Internet - sa kanilang kaso, ang bilis ng network ay maaaring sampung beses na mas mababa. Nagmumungkahi ito ng isang pag-iisip: "Imposible bang ipatupad ang gawain ng programa nang buo sa isang malakas na server upang ang computer computer ay hindi lumahok sa mga kumplikadong kalkulasyon, at nagsilbi lamang upang ipadala ang imahe?" Pagkatapos ay maaari ka ring magtrabaho sa mga mahina na computer, kahit na sa mababang bandwidth network. Naturally, ang mga naturang solusyon ay umiiral.

Ikalawang desisyon. Terminal Server.

Natanggap na mas popular sa oras ng 1C 7. Ipinatupad sa bersyon ng server ng Windows at perpektong kopyahin sa aming gawain. Gayunpaman, may sarili nitong mga bato sa ilalim ng tubig, lalo, ang halaga ng mga lisensya.

Ang operating system mismo ay nagkakahalaga sa isang lugar sa 40,000 rubles. Bilang karagdagan, kailangan namin ito para sa lahat na nagplano na magtrabaho sa 1C Higit pang mga Windows Server Cal lisensya, nagkakahalaga ng tungkol sa 1,700 rubles at ang Windows Remote Desktop Services Cal lisensya, na nagkakahalaga ng tungkol sa 5900 rubles.

Isinasaalang-alang ang gastos para sa isang network ng 10 computer, kami ay magreresulta sa 1,16,000 rubles. Lamang sa ilang mga lisensya. Idagdag ito sa halaga ng server mismo (hindi bababa sa 40,000 rubles) at ang gastos ng trabaho sa pagpapatupad, gayunpaman, kahit na wala ito, ang presyo ng mga lisensya ay naging kahanga-hanga.

Ikatlong desisyon. Serbisyo 1C ng kumpanya

Ang kumpanya 1C ay bumuo ng solusyon nito sa problemang ito, na sineseryoso taasan ang bilis ng programa. Ngunit narito ang isang pananaw.

Ang katotohanan ay ang halaga ng naturang desisyon ay mula 50,000 hanggang 80,000 rubles, depende sa tanggapan ng editoryal. Para sa isang kumpanya hanggang sa 15 mga gumagamit, ito ay lumabas na mahal. Ang mataas na pag-asa ay itinalaga sa 1C mini-server ng enterprise, na, ayon sa 1C, ay nakatuon sa isang maliit na negosyo at nakatayo sa paligid ng 10,000 - 15,000 rubles.

Gayunpaman, sa pamamagitan ng pagbebenta, ang produktong ito ay naging isang malaking pagkabigo. Ang katotohanan ay ang maximum na bilang ng mga gumagamit na maaaring gamitin ang mini-server ay 5 lamang.

Bilang isang programmer 1C wrote sa forum: "Hindi pa rin malinaw kung bakit 1C pinili 5 koneksyon! Mula sa 4 na gumagamit ng problema magsimula lang, at pagkatapos ay sa limang lahat ng bagay ay nagtatapos. Gusto mong ikonekta ang Sixth - dagdagan ng singil ng isa pang 50,000. Gusto ko ng hindi bababa sa 10 koneksyon ... "

Siyempre, natagpuan din ng mini-server ang kanyang consumer. Gayunpaman, para sa mga kumpanya kung saan mula sa 1C trabaho mula sa 5 tao, walang isang simple at murang solusyon.

Bilang karagdagan sa mga pamamaraan na inilarawan sa itaas ng pagpapabilis ng programa, may isa pa, angkop para sa segment 5 - 15 mga gumagamit, katulad - access sa web para sa 1C sa mode ng file.

Ang ikaapat na desisyon. Pag-access sa web para sa 1C sa mode ng file

Ang prinsipyo ng operasyon ay ang mga sumusunod: ang computer ay tumataas ang karagdagang papel ng web server, na na-publish ng IB.

Naturally, dapat itong maging ang pinaka-makapangyarihang computer sa network, o isang hiwalay na makina na inilalaan para sa papel na ito. Pagkatapos nito, may 1C maaari kang magtrabaho sa mode ng Web server. Ang lahat ng mga mabigat na operasyon ay isasagawa sa gilid ng server, at ang trapiko na ipinadala sa network ay mababawasan, pati na rin ang pag-load sa computer ng kliyente.

Kaya, kahit na mahina ang mga makina ay maaaring magamit upang magtrabaho sa 1C, at ang bandwidth ng network ay hindi kritikal. Ipinakita ng aming mga pagsusulit na maaari mong kumportable na magtrabaho sa pamamagitan ng iyong mobile Internet sa isang murang tablet, habang hindi nakakaranas ng kakulangan sa ginhawa.

Ang pagpipiliang ito ay mas mababa sa 1C enterprise server para sa bilis ng trabaho, ngunit ang pagkakaiba nito sa 15-20 mga gumagamit ay visual na halos kapansin-pansin. Sa pamamagitan ng paraan, maaari mong gamitin ang IIS (para sa Windows) at Apache (para sa Linux) upang ipatupad ang web server at pareho ng mga solusyon ay libre!

Sa kabila ng mga halatang bentahe, ang paraan ng pag-optimize ng 1C na trabaho ay hindi pa popular.

Hindi ko ipinapalagay na sasabihin, ngunit malamang, ito ay dahil sa dalawang dahilan:

  • Medyo mahina paglalarawan sa teknikal na dokumentasyon
  • Matatagpuan sa junction ng system administrator at programmer 1c

Karaniwan, kapag ang problema ng mababang bilis ay tinutukoy sa sysadmin, nag-aalok ito ng mga pag-upgrade ng imprastraktura o terminal server kung ang server ng 1C ay inaalok sa espesyalista sa 1C. Kaya, kung sa iyong kumpanya, isang espesyalista na responsable para sa imprastraktura at isang espesyalista na responsable para sa 1c trabaho "kamay sa kamay", maaari mong ligtas na gumamit ng isang solusyon batay sa web server.

Spell 1c. Malayuan, mabilis at wala ang iyong pakikilahok

Maaari naming mapabilis ang 1 at huwag hilahin ang customer. Hinahanap namin ang problema, gumawa ng aming trabaho at pumunta. Kung nais mo ang programa ay gumagana nang normal - makipag-ugnay sa amin. Haharapin namin.

Iwanan ang application - at makakuha ng isang libreng payo sa pagpapabilis ng programa.

Ang mahusay na kakilala ng mga espesyalista sa mga gumagamit ng mga gumagamit na "Hanging 1C" ay may maraming dahilan. Upang itakda ang tamang "diagnosis" - pagkilala at pag-aaral ng problema, ito ay nangangailangan ng pagpaparami nito, dahil ang problema na hindi maaaring kopyahin ay karaniwang imposible upang malutas. Ang pagkakaroon ng nauunawaan sa mga sintomas ng Hanging 1C, gagawin namin ang unang hakbang patungo sa mahusay na operating system.

Napakahabang sistema ng paglulunsad

Long ilunsad ng mabigat na pagsasaayos sa ilalim ng isang gumagamit sa unang pagkakataon pagkatapos ng pagdaragdag ng IB sa listahan ng mga database sa computer - ang kababalaghan ay normal. Sa proseso ng unang paglunsad, nangyayari ang configuration caching. Ang ikalawa at kasunod na paglulunsad ay dapat na mas mabilis na maisagawa.

Ang pagpapatakbo ng isang sistema na tumatagal ng isang mahabang panahon ay maaaring magpahiwatig ng mga problema ng pagpapatupad ng pagsasaayos ng arkitektura. Karamihan ng pagsasaayos ay binabasa lamang ng platform kapag unang apila ka sa nais na object ng metadata. Ang Long Launch ay nagpapahiwatig ng posibilidad na gamitin ang isang malaking bilang ng mga bagay na metadata (maraming apela sa iba't ibang karaniwang mga module, pagproseso, atbp.).

Dapat itong isipin na kapag una kang nag-apela sa teksto ng anumang module, ito ay nangyayari sa compilation nito. Ang prosesong ito ay nangangailangan din ng oras na lalo na kapansin-pansin kung mayroong maraming mga module. Kaya, ang problema ng mabagal na startup ay nalutas sa pamamagitan ng pagbabago (pag-optimize) ng pagsasaayos, ang layunin ng kung saan ay upang huwag paganahin ang pagpapatupad ng lahat ng mga di-ipinag-uutos na algorithm na naisakatuparan kapag nagsimula ang system.

May pagkakataon na sinusubukan ng pagsasaayos sa startup na basahin ang data mula sa Internet. Pinapataas din nito ang oras ng paglulunsad ng system.

Napakaluwag na pagbubukas ng mga form

Ang mahabang pagbubukas ng mga form ay maaaring dahil sa:

  1. Ang isang malaking bilang ng mga elemento ng kontrol sa form - oras ay ginugol sa paglikha ng isang form at pagkakabit ng layout ng mga elemento ng form;
  2. Gumaganap ng mga algorithm kapag sinimulan ang form. Marahil, kapag lumilikha ng isang form, ang anumang mga kondisyon at / o naka-link na mga bagay mula sa database ay naka-check.

Ang unang problema ay "ginagamot" sa pamamagitan ng pagpapasimple sa form. Halimbawa, ang bahagi ng mga kontrol ay maaaring makuha sa magkahiwalay na mga form, na maaaring maging mas maginhawa para sa gumagamit. Halimbawa, kung sa form ay may isang patlang ng address na "lungsod", "kalye", "bahay", atbp, pagkatapos ay i-edit ang address ay mas mahusay na maganap sa isang hiwalay na form.

Ang ikalawang problema ay nalutas sa pamamagitan ng pag-aaral ng mga pagkilos na isinagawa kapag lumilikha at nagbubukas ng isang form, at ang pag-optimize ng mga algorithm na ito. Marahil ang ilan sa mga algorithm ay hindi napapanahon, at bahagi ay maaaring gawing simple at na-optimize, halimbawa, upang ibukod o i-minimize ang pag-apila ng data sa database.

Bilang isang interactive na pagkilos, isaalang-alang ang pagtatangka ng gumagamit na pumili ng isang halaga sa form item. Bilang tugon sa kanya, ang sistema ay "nag-iisip tungkol sa isang bagay." Maaaring mangyari ito para sa mga sumusunod na dahilan:

  1. Ang mga algorithm ay gumanap sa isang ibinigay na check ng pagkilos o kalkulahin ang nauugnay na data na nakakaapekto sa halaga ng halaga ng halaga;
  2. Ang form ng pagpili na bubukas upang piliin ang halagang ito, binabasa ng initialization ang lahat ng bagay mula sa database.

Upang malutas ang unang problema, dapat mong gamitin ang "pagsukat pagsukat", hanapin ang mapagkukunan-intensive algorithm at i-optimize ang mga ito.


Ang pangalawang problema ay kadalasang posible upang malutas ang isang simpleng pagtatasa ng pagpapatupad ng anyo ng pagpili. Halimbawa, ito ay nagkakahalaga ng pagtiyak na ang "dynamic na data clearing" na ari-arian ay nakatakda sa dynamic na listahan, ang "pangunahing talahanayan" na ari-arian ay maayos na naka-install, at hindi ito ginagamit sa pagpapatupad ng listahan.

Mayroon ding mga sitwasyon kapag, kapag binuksan mo ang anyo ng pagpili mula sa database, ang anumang kaugnay na data ay nabasa (halimbawa, kapag ang form ng pagpili ng "nomenclature" ay basahin, ang mga labi ng mga kalakal sa warehouses ay binabasa). Bilang isang panuntunan, hindi ito ang pinakamahusay na solusyon. Ang mga kaugnay na pagbabasa ng data ay mas mahusay na magsagawa ng asynchronously, pagkatapos ng pagbuo ng form. Ito ay magiging sanhi ng mas kaunting kakulangan sa ginhawa ng gumagamit, dahil Pagkatapos ng form ay ipinapakita, ang gumagamit ay gumugol ng ilang oras sa pang-unawa ng form na bubukas, at oras na ito ay maaaring ginugol sa loading kaugnay na data.

Napakahabang reaksyon sa mga update

Isa sa mga maliit na sintomas, gayunpaman, nakapagsasabi tungkol sa ilang mga problema sa system: 1C update freezes kapag ang backup ay nagsimula. Talaga, nangyari ito kapag nag-a-update sa pamamagitan ng Internet at, malamang, ito ay nagpapahiwatig na ang pagsasaayos ay hindi na-update para sa isang mahabang panahon at release, lumiligid isa sa isa, dulot ng pagyeyelo. Maaari mong maiwasan ang naturang problema sa napapanahong pag-install ng mga update, at kapag nagbabanggaan dito, maaari mo lamang matakpan ang backup na proseso. Pagkatapos simulan ang configurator, ang base ay magsisimula sa mga pagbabago sa karaniwang mode.

Dapat pansinin na ang 1C 8.3 freezes sa panahon ng mga update ay madalas din dahil nangangailangan ito ng mas maraming mapagkukunan-hardware kaysa sa nakaraang bersyon ng platform. Ito ay nagkakahalaga ng pagbibigay pansin sa halaga ng RAM at, kung kinakailangan, dagdagan ito - ito sa prinsipyo ay dapat makatulong sa paglutas ng problema "1C freezes kapag pag-update ng configuration".

Mahabang entry object / documents.

Sa kasong ito, ang "paggamot sa photography" ay halos hindi kasama, dahil ang mga dahilan ay maaaring ang pinaka-magkakaibang, na nagsisimula sa isang malaking halaga ng data sa bagay, na nagtatapos sa paghihintay sa mga kandado.

Ngunit kahit na sa kasong ito, maaari mong i-outline ang direksyon para sa pagtatasa.

Ang kawalan ng makabuluhang pagbabago sa oras ng pag-record na dulot ng oras ng araw o bilang ng mga gumagamit (ayon sa tinatayang, subjective assessment) ay nagpapahiwatig ng problema sa code o sa dami ng data ng bagay. Para sa pagtatasa, makatuwiran na gamitin ang tool na "Pagganap ng Pagsukat".

Ang kardinal na pagbabago ng oras ng pag-record na may mga hindi malinaw na dependency ay nangangailangan ng pagpapatupad ng isang statistical analysis ng problema, i.e. Pagtatasa ng pagganap. Ang pinakamadaling paraan ay gamitin ang log ng pagpaparehistro. Ang isang karagdagang kalamangan dito ay ang suporta ng platform na "1C: enterprise 8" para sa pag-save ng data ng data ng pag-log sa file na SQLite format. Ito ay magbibigay-daan sa iyo upang gamitin ang mga query sa SQL upang pag-aralan ang data ng log. Ang mga oras ng pag-record ng bagay ay maaaring makuha mula sa data ng log kung isinasaalang-alang mo ang katotohanan na ang bawat entry ng bagay ay ginanap sa transaksyon, at ang bawat transaksyon ay may sariling numero ng pagkakakilanlan.


Kung ang resulta ng statistical analysis ay nagpakita na ang oras ng pagpasok ng bagay ay depende sa oras ng araw, at hindi sa bilang ng mga gumagamit, ito ay kinakailangan upang pag-aralan ang load ng 1C server at ang database server. Marahil ang server ay gumaganap ng mga regulatory process na kumukuha ng hindi kinakailangang mga mapagkukunan.

Kung ang oras ng pag-record ng bagay ay depende sa bilang ng mga gumagamit, ang mga problema ay malamang na nasa code (may naghihintay sa mga kandado) o sa kapasidad ng kagamitan. Upang malutas ang mga ito, isang espesyalista na may kakayahan "1c: dalubhasa sa mga teknolohikal na isyu" ay dapat na maakit, dahil ang pinag-isang panuntunan para sa paglutas ng naturang gawain ay umiiral.

1) Tingnan ang halaga ng memorya ng RPHOS na inilalaan sa server ng 1C. Kung mayroon kang bersyon ng X32 server, ang proseso ay maaaring gumamit ng maximum na 1, 75 GB ng RAM
Kung ang memorya ay nawawala, ang server ay hindi maaaring tumanggap ng mga bagong koneksyon o hangs kapag ang kasalukuyang sesyon ay nangangailangan ng karagdagang memorya
www.viva64.com/ru/k/0036.
2) Panoorin ang mga setting ng "Mga Parameter ng Work Server" ay maaaring mai-install ng hindi tamang mga setting. Mayroon akong isang problema at ang server ay patuloy na nakasalalay. Ang aking mga setting sa attachment. Ang server ay naglaan ng 11 GB.
3) Ang mga problema ay posible sa setting ng postgressql.

Ibigay ang mga katangian ng iyong server, laki ng database, contracs ng postgressql. Walang impormasyon, mahirap sabihin.

Aking Config PostgreSQL: https: //drive.google.com/file/d/0b2qgcc-vzevdmervww ...
Ang config na ito ay pinili sa ilalim ng magagamit na RAM.
Ang PostgreSQL ay naka-install sa Linux, 3 GB ng RAM, 3 CPU core.
Server 1c8: 11 GB ng RAM, 5 CORE CPU
4 base ng humigit-kumulang 1 GB bawat (discharged sa DT)

Bigyan ang lahat ng mga katangian ng iyong server: server 1c8 at database pisikal o virtual, operasyon, ang bilang ng RAM sa bawat server, ang CPU kung ano, kung magkano ang proseso ng rphost ay sumasakop kung gaano karami? Ginagamit mo ba ang array ng RAID?

Noong nakaraan, ginamit ito ng PostgreSQL, ngunit sa panahon ng trabaho, may ilang mga problema kapag nagtatrabaho sa PostgreSQL at kamakailan ay lumipat sa MS SQL.

Wala kang masamang server para sa mga database. Upang magamit ang PostgreSQL, kailangan mong maunawaan ito nang mahusay sa pagsasaayos. Kapag ang mga base ay maliit na maraming mga error sa pagsasaayos, "sabi ni Goodbye." Nang magsimula lang kami upang ipakilala ang 1C + PostgreSQL, mayroon din kaming mga madalas na problema sa gawain ng database (may mga madalas na hang, dahan-dahan na nagtrabaho). Ang PostgreSQL ay mas mahusay na gamitin sa Linux, hindi sa Windows. Ako mismo ay hindi isang espesyal na database, upang i-configure ang database server, nag-hire kami ng isang espesyalista mula sa 1Sbit at naka-configure ito sa amin at ang mga problema sa trabaho ay hindi lumabas.

Tip:
Mayroon kang isang malaking base, mangyaring itago ang mga specialty sa database na maaari mong i-configure ito. Ang isang tao ay hindi maaaring maging mga espesyalista sa lahat.

1) Gaano katagal mo sinuri ang database mismo at reindexation? Vacuum at reindex.
2) Nasubukan ka ba at naayos ang base gamit ang 1C?
3) Ang database log file ay nai-render sa isang hiwalay na HDD?
4) ay HDD mahirap?

Isipin ang paglipat sa MS SQL madalas hindi ito nangangailangan ng "halos" anumang pagsasaayos at mas madaling gamitin ito. Hindi tulad ng postgresql MS SQL ay handa na upang gumana sa labas ng kahon, at ang PostgreSQL ay kailangang i-configure.

Ay maaaring magsulat ng mga tanong ay maaaring makatulong sa Skype: Tisartisar

Nice espesyal na database

Bakit lumipat kami sa MS SQL:
Ginagamit namin ang configuration ng UT at kapag isinara ang buwan kung minsan ay naganap ang mga error na hindi malulutas. Kung inililipat mo ang database sa mode ng file at simulan ang pagsasara ng buwan, pagkatapos ay sarado ang lahat, ang database ay isinara sa PostgreSQL server kapag kinakalkula ang gastos ng gastos ng mga error. Sa momet na iyon, kami ay nahuhulog sa likod ng pagsasara ng mga buwan dahil sa paglitaw ng mga lumulutang na pagkakamali. Gumawa ng isang database ng pagsubok sa MS SQL at isang buwan na hindi maaaring isara sa PostgreSQL sa MS SQL sarado. Gayundin sa PostgreSQL ay hindi gumagana nang tama ang mga presyo ng rounding sa listahan ng presyo. Sa katunayan, ang operasyon ng 1C sa PostgreSQL ay suportado, ngunit inirerekomenda na gamitin ang MS SQL.
Dahil dito, ito ay nagpasya na pumunta sa MS SQL dahil Ang katatagan ng 1C ay mas mahal.

Natutuwa ako na maaari kang tumulong, mangyaring makipag-ugnay sa amin kung may mga tanong at problema.

1) Magkano ang memorya ay inilalaan ms sql server? Ito ay naka-configure sa ms mismo ng MS SQL.
2) Ang database ng pagsubok sa pamamagitan ng regular na 1C ay regular
3) Artikulo kung paano i-configure ang backup at pagpapanatili. Mahalaga ito at kailangan mong gawin nang regular. Ginagawa ko araw-araw. Tingnan ang lahat ng 3 bahagi ng manwal.

Impluwensya ng mga kandado sa pagganap ng 1C: Enterprise 8.

Ang koponan ng Gilev ay nakikibahagi sa mga isyu sa pagganap para sa maraming mga taon at matagumpay na malulutas, kabilang ang mga isyu ng pag-aalis ng mga inaasahan sa mga kandado at interlocking.

Sa ibaba ay sasabihin namin ang aming karanasan sa paglutas ng mga problemang ito.

Pagtuklas ng mga problema sa pagharang sa 1C.

Ang mga isyu sa pagganap sa multiplayer mode ay hindi kinakailangang nauugnay sa mahihirap na code o masamang hardware. Upang magsimula, kailangan nating sagutin ang tanong - anong mga problema sa pagganap ang umiiral at kung ano ang nagiging sanhi ng mga ito?

Pagsubaybay nang manu-manong mga gawain ng daan-daang mga gumagamit nang manu-mano ay hindi maaaring, kailangan mo ng isang tool na automating tulad ng impormasyon.

Mayroong maraming mga tool, ngunit halos lahat ng mga ito ay may isang napaka makabuluhang kawalan - presyo.

Ngunit may isang paraan out - pinili namin bilang isang tool sa pagtatasa

Gagamitin namin ang problema sa MS SQL Server, kaya kailangan namin ang mga sumusunod na serbisyo mula sa hanay na ito:

1. Pagsubaybay at pagtatasa ng mahabang kahilingan (Magbasa nang higit pa tungkol sa setup dito) - Kailangan mong suriin ang pagkakaroon ng mahabang operasyon sa DBMS.

Sa totoo lang, ang katunayan ng kanilang presensya ay nagbibigay-daan sa iyo upang sabihin na may mga problema sa pagganap sa pagganap, at ang mga problema ay nakalista sa linya ng code ng configuration ng 1C, na ipinapahayag ng serbisyo. Ang mga problema sa simula ng listahan ay dapat na malutas muna. Ang ganitong mga solusyon sa mga string ng problema ay magdadala ng pinakamalaking epekto, i.e. Magkakaroon ng pinaka-benepisyo at pakiramdam para sa mga gumagamit ng system.

(Magbasa nang higit pa dito) ay magpapahintulot sa amin na suriin - at kung ang oras ng pang-matagalang (mahaba) ay humiling para sa naghihintay para sa mga kandado o may iba pang mga dahilan (di-pinakamainam na code, overload na bakal, atbp.) Ipapakita ng serbisyo ang serbisyo Dahilan para sa paghihintay para sa query, katulad ng mapagkukunan na na-block at na-block siya. Mga iyon. Nauunawaan natin ang pagkakaroon ng mga problema sa mga kandado at kanilang mga dahilan.

3. Pagtatasa ng Mutual Locks sa 1C at MS SQL Server (Magbasa nang higit pa tungkol sa setup dito) - Pahintulutan kaming suriin ang mas mahirap na sitwasyon sa pag-asa ng mga mapagkukunan, kapag ang ilang mga kalahok na bahagi ng mga mapagkukunan ay may pinamamahalaang upang "makuha" ang pagharang at napipilitang maghintay na maghintay para sa bawat isa dahil Hindi nila maaaring i-release ang abalang mapagkukunan bago makumpleto ang pagkuha ng iba pang mga mapagkukunan na hinarangan ng mga kapitbahay.

Sa pangkalahatan, sa isang mahirap na sitwasyon, nang manu-mano ay hindi nauunawaan, ang ganitong serbisyo ay kinakailangan.

4. Pagkontrol ng mga kagamitan sa paglo-load (Magbasa nang higit pa tungkol sa setup dito) ay tumutulong sa amin na sagutin ang mga tanong - gaano karaming mga gumagamit sa system, mayroon ba silang mga kandado, gaano karaming mga kandado ang nakayanan nito sa bakal na may isang load?

Ang mga serbisyo ay naka-configure nang madali, ngunit kahit na mayroon ka pa ring mga katanungan, mayroong!

Sa tulong ng mga tool sa itaas, mayroon kaming layunin na impormasyon tungkol sa pagganap ng system. Ito ay nagbibigay-daan sa amin upang maayos na masuri ang sitwasyon at mag-alok ng sapat na mga panukala.

Sa katunayan, nakatanggap kami ng impormasyon tungkol sa lahat ng mga problema sa pagganap at maaaring tumpak na sagutin ang mga tanong tulad ng "Gaano karaming mga problema sa sistema", "kung saan sila ay partikular na nagmumula", "ang bawat problema sa kung ano ang eksaktong dalas arises", "kung ano ang mga problema makabuluhan, at ano ang pangalawang. " Mga iyon. Nakikita namin ang lahat ng mga kinakailangan na nabuo ang sanhi ng problema.

Ang mga serbisyo ay nagbibigay-daan sa iyo upang makabuluhang mapabuti ang pag-unawa sa mga kondisyon para sa paglitaw ng mga problema, nang hindi ito manu-mano upang maghukay sa mga bagay tulad ng imbakan na istraktura ng data ng impormasyon base sa antas ng DBMS, ang locking mekanismo ng pagharang, atbp.

Bilang resulta, makakakuha kami ng isang larawan ng pagganap na sinusukat.

- Humiling ng oras (siyempre, tinanggihan ang mga kahilingan sa problema para sa timbang (oras ng query sa bilang ng mga tawag para sa kahilingang ito);

- Mga kandado ng oras ng paghihintay;

Kaya, inilunsad namin ang pagtatasa ng pagtatasa ng serbisyo sa mga kandado

Sa tuktok na talahanayan, ang serbisyo ay nagpapakita ng isang listahan ng mga "biktima" ng mga kandado, isinasaalang-alang ang kabuuang timbang ng "kalubhaan ng mga inaasahan".

Sa ilalim ng talahanayan para sa bawat biktima, ang isa o higit pang mga kalahok ng "pakikibaka para sa isang mataas na mapagkukunan" ay isinasaalang-alang, kung saan may arisen sa pagharang.

Sa ilalim ng mesa, tuklasin ang detalye sa katotohanan ng isa sa mga "TIMAOUT" na mga kaganapan. Gayundin sa larawan.

Nakita ko ang string na may "salarin", makikita namin na ang talahanayan _reference64 ay isang bottleneck, at ang problema ay lumitaw sa index ng kumpol sa lugar na "hindi kilala". Marahil sa hinaharap ay pinalitan namin ang pangalan ng "talahanayan", dahil sa katunayan ang gayong pag-uugali ay katangian ng pagtaas / pagpapalaki ng blocking area.

Ang string na may "biktima" ay nagpapakita kung aling code ang hostage at hindi maaaring harangan ang lahat ng string "sa pamamagitan ng key" (ang pinakamababang data blocking area sa talahanayan na ito).

Maaari mong malutas ang problemang ito "tama" at "sa liwanag".

Ayon sa tamang landas, mas mahirap na pumunta - sa katunayan ito ay kinakailangan upang muling isulat ang code, pagliit ng posibilidad ng gayong mga sitwasyon.

Isa sa mga kadahilanan nang kakatwa tunog - ito ay isang pagbaba sa tagal.

Maaari mong bawasan ang tagal ng transaksyon:

1. Umuulit na algorithm.

2. Sa pamamagitan ng muling pagsusulat ng isang kahilingan (isang mas mabilis na query binabawasan ang posibilidad ng mga kandado sa kumplikadong mga transaksyon sa mga talahanayan na kung minsan ay maaaring hindi kahit na sa query!)

2.1 Sa pamamagitan ng pagdaragdag ng nawawalang index (kung minsan ang index ay hindi lamang nagpapabilis sa kahilingan, ngunit binabawasan din ang lugar ng pagbabasa ng data, na binabawasan ang posibilidad ng pagharang)

3. Bawasan ang dami ng data na naproseso sa trasacia (bilang karagdagan sa linear na bilis, tandaan ang pagdami ng mga kandado)

4. Nadagdagang pagganap ng kagamitan sa loob ng bawat stream

Humiling ng oras ng pagpapatupad

1) iba't ibang mga gumagamit ay maaaring gumana nang parallel sa iba't ibang data
2) Ang iba't ibang mga gumagamit ay dapat gumana nang mahigpit na may parehong data.

Gayunpaman, posible na i-optimize ang paggamit ng mga kandado, sa gayon pagbabawas ng kabuuang oras ng paghihintay.

Paano i-block ang mga kandado (hindi mababasa ang item na ito)

Makipagtulungan sa mga kandado ay nakikibahagi sa isang espesyal na module ng SQL Server - Lock Manager (Lock Manager). Sa kanyang gawain kasama nito:

  • paglikha at pag-install ng mga kandado;
  • pag-alis ng mga kandado;
  • pagdami ng mga kandado;
  • kahulugan ng pag-block ng compatibility;
  • pag-aalis ng mga kontrahan (mga deadlock) at marami pang iba.

Kapag ang gumagamit ay gumagawa ng isang kahilingan para sa pag-update o pagbabasa ng data, ipinapadala ng DBMS transaction manager ang pamamahala ng DBMS lock manager upang malaman kung ang hiniling na mapagkukunan ay na-block, at kung oo, kung ang hiniling na pagharang ay katugma sa kasalukuyang. Kung ang mga kandado ay hindi tugma, ang pagpapatupad ng kasalukuyang transaksyon ay ipinagpaliban hanggang sa ma-unlock ang data. Sa sandaling magagamit ang data, ipinapataw ng lock manager ang hiniling na pagharang, at ibabalik ang kontrol ng transaksyon manager.

Ang pangunahing dahilan na binabawasan ang bilis - pagharang

Ang mga pag-aaral sa mga kandado ay ang pangunahing problema ng bilis ng multiplayer mode. At ito ay maliwanag, dahil pinalaki nila ang oras ng paghihintay ng mga operasyon, na nangangahulugang oras ng pagtugon. Posible bang sabihin na ang paghihintay para sa mga kandado ay hindi tama at kamalian ng multiplayer system? Kaya upang sabihin ito ay imposible, dahil ang mapagkukunan pagharang mekanismo mismo Tinitiyak ang integridad ng data. Gamit ang mekanismo ng lock, ang mapagkumpetensyang data ay naitala nang sunud-sunod.

Ang pagkakaiba sa pagitan ng mga kinakailangang at labis na kandado

Kapag ang gumagamit ay nag-uulat ng isang error ng paghihintay sa pagharang, pagkatapos ay mula sa punto ng view nito ay palaging isang error, dahil ito, halimbawa, pinipigilan ito mula sa pagtatrabaho, pinatataas ang oras ng operasyon nito.

Ang karanasan ay nagpapahiwatig ng isang simpleng panuntunan, kung higit sa kalahati ng oras ng pagpapatupad ng query ito ay talagang inaasahan ng isang hinarang na mapagkukunan, pagkatapos ay kailangan mong makita: Maaari itong maging bahagi ng mga kandado upang ma-optimize, bawasan ang oras ng pagharang ng mapagkukunan.

Dito, tulad ng sa pamamagitan ng pagkakataon, ipinasok ko ang kahulugan:

Naghihintay para sa pagharang - Ito ay isang sitwasyon na nangyayari sa kaganapan na ang dalawang mga gumagamit ay nagsisikap na sabay na makuha ang parehong data. Kasabay nito, ang isa sa mga gumagamit na ito ay naharang, iyon ay, dapat itong maghintay hanggang sa katapusan ng unang transaksyon ng gumagamit.

Ang isang transaksyon ay maraming mga kalkulasyon at mga transaksyon ng data (ang pinaka-kapansin-pansin na halimbawa - kapag nagsasagawa ng isang dokumento), gumanap nang buo. Ang di-katuparan ng alinman sa operasyon ng transaksyon ay humahantong sa pagkansela ng transaksyon nang buo.

Kaya, ang mga gumagamit sa multiplayer na mga base ng impormasyon ay kadalasang magreklamo na imposibleng magtrabaho dahil sa mga kandado na ito, at sa code doon ay maaaring mag-block, na sa lugar na ito ay hindi kinakailangan (kalabisan).
At sa configuration code, ang kanilang mga sarili ay maaaring hindi naroroon sa kanilang sarili, maaari silang basahin ang tungkol sa mga ito halimbawa dito http://kb.1c.ru/articleview.jsp?id\u003d30 (Ang artikulo ay isang fragment ng libro PS Beluusov, at .v.sostrov survey "1c: Enterprise: mula 8.0 hanggang 8.1."). Ipinapanukala ko ang isang pinasimple na paraan upang ipaliwanag ang pagkakaiba sa pagharang sa isang simpleng halimbawa tulad nito:

Sa iyong configuration sa 1C mode: Enterprise Lumikha ng dalawang magkatulad na overhead na may parehong produkto. Ngunit siguraduhin na tukuyin ang iba't ibang mga warehouses ng pagdating.
Sa code sa pagpoproseso, kailangan mong magdagdag ng isang linya na may output sa screen ng mensahe (o ibang code na maaaring antalahin ang pagpapatupad ng pagproseso ng hawak para sa 21 segundo (ang pag-block timeout ay nangyayari pagkatapos ng 20 segundo kung ang mga default na parameter)) .
Gupitin ang dalawang dokumento.
Kung ang timeout ay nangyayari, at sa mga item sa lohika ay may iba't ibang mga warehouses, ang mga labis na kandado ay nasa apendiks. Ang lohika ng negosyo (bilangin sa sentido komun) ay dapat walang mga kandado dito.
Kung ngayon ay gumawa kami ng parehong mga warehouses sa dalawang mga invoice na ito. Ang nilikha lock bilang isang resulta ng tinangkang sabay na pagsasakatuparan ng kinakailangang lock at ito ay mabuti!

Mga iyon. Habang ang invoice ay gumagawa ng mga pagbabago sa mga labi sa warehouse, ang iba ay dapat maghintay.

Siyempre, kahit na ang simpleng halimbawa na ito ay nag-iiwan ng maraming tanong. Halimbawa, kung ang mga dokumento mula sa isang supplier at "gumagalaw" ang utang dito. At kung walang nag-iisa residues sa stock, ngunit maraming mga registers, ngunit dokumento ng iba't ibang mga uri.
Ngunit ang pinakamahalagang tanong ay - at para sa kung anong uri ng lohika ng negosyo ay hindi dapat maging mga kandado. Sino ang lohika ng negosyo na ito at kung saan ay inireseta sa konteksto ng pagharang? Ngunit gawin ang lahat tungkol sa lahat ng bagay.

Ang mga labis na kandado ay hindi kailangan - na hindi kinakailangan mula sa punto ng pagtingin sa pagtiyak ng integridad ng data at sa parehong oras na pagpapababa ng pangkalahatang pagganap ng sistema, ang pagtaas ng kabuuang oras na "idle" - mga inaasahan sa pagharang.
Ang kinakailangang lock ay nangyayari kapag nakuha mo ang parehong mga gumagamit ng parehong mga mapagkukunan (data bagay). Kung ang mga gumagamit ay nagtatrabaho sa mga mapagkukunan ng di-rigging, ngunit naghihintay ang interlock, ang lock ay itinuturing na labis.

Ang pinaka-maliwanag na pamantayan para sa kalabisan ng mga kandado ay mapapansin:

1. Mutual blocking;

2. Ang antas (lugar) ng lock ay mas mataas kaysa sa kinakailangan (bilang isang espesyal na kaso ng pagtaas ng antas ng pagharang, ang tinatawag na. Escalation);

3. I-lock ang oras ng mas maraming oras "real" paggamit ng blocking object.

Ang pagkakaroon ng natanggap na impormasyon tungkol sa mga problema sa pagpapangkat sa seksyon ng metadata 1c: enterprise, inirerekumenda ko ang pagbibigay pansin lalo na sa mga pasilidad:

  • Constants.
  • Pagkakasunud-sunod
  • Accounting registers.
  • Kumikilos registers
  • Registers ng impormasyon
  • Registers pagkalkula

1) Bago hindi matagal na ang nakalipas, nagkaroon ng isang kilalang rekomendasyon upang magsulat ng anumang bagay sa pare-pareho. Sa matinding mga kaso, ito ay mula sa ilalim ng isang gumagamit, at pagkatapos ay naaalala na habang ang gumagamit ay "nagsusulat" ng isang pare-pareho, hindi lamang ito, kundi pati na rin ang anumang iba pang mga pare-pareho ang iba pang mga gumagamit ay "maghintay." Samakatuwid, ito ay lalong mapanganib na gamitin ang mga constants sa pagproseso ng pag-uugali. Ang mga halaga ng lahat ng mga constants ay naka-imbak sa isang mapagkukunan.

Ang figure ay nagpapakita ng pisikal na lokasyon ng CPP configuration constets sa MS SQL Server 2005 database table.

Nangangahulugan ito na kapag nag-block ng isang pare-pareho, ang lahat ng mga constants ay mai-block. Ang DBMS ay nagpapataw ng lock sa buong linya ng talahanayan, i.e. Sa lahat ng constants.

Gayunpaman, sa pinakabagong release ng platform, nagbago ang mga constant ng imbakan. Ngayon ang bawat pare-pareho ay isang hiwalay na mesa. Ang tunay na masama ay hindi lasing kung lumikha ka ng libu-libong mga talahanayan, maaari kang mahuli ang isang lock batay sa master.

Pansin kung ang iyong configuration ay umiiral nang matagal na ang nakalipas, maaari mong baguhin ang format ng imbakan sa pamamagitan ng "Mga Restructor" sa pagsubok at pagwawasto sa configurator.

2) Tumanggi na gamitin ang "pagkakasunud-sunod" na bagay ng metadata. Hindi bababa sa mga paggalaw sa pagpapatakbo ng pag-uugali, isinasagawa na may hindi mahusay (bago). Tingnan kung paano ipinatupad sa mga pinakabagong bersyon ng UPP.

3) Kung ang pagpapatakbo ng pag-record ng paggalaw sa rehistro ng accounting sa multiplayer mode ay isinasagawa, pagkatapos ay inirerekomenda:

  • paganahin para sa rehistro na ito ang paraan ng paghihiwalay ng mga resulta;
  • huwag gamitin ang kontrol ng residence residues sa panahon ng pagpapatakbo trabaho.

4) Sa rehistro ng akumulasyon sa mga kaso ng kakulangan ng pangangailangan upang makakuha ng "pagpapatakbo" na data, maaari mong paganahin ang paghihiwalay ng mga resulta, na magpapataas ng parallelism ng data recording at mapabilis ang trabaho bilang isang buo. Maingat na subaybayan ang mga sukat upang ang "residues" ay maaaring makuha sa pamamagitan ng maximum na detalye sa mga sukat.

5) Kumuha ng alisan ng ilang mga kalabisan na mga kandado na nilikha ng platform lamang sa pamamagitan lamang. Sa awtomatikong mode ng pagpapatakbo ng mga kumpigurasyon, ang platform ay "tumatagal sa" ang pagharang ng mga mapagkukunan. Ang presyo ng paggamit ng maligaya na paggamit ng awtomatikong mode ay posible upang i-lock ang mga hangganan ng mga saklaw ng index, pagharang sa blangko talahanayan, ang pagtaas ng mga kandado.

Ang mga kandado ay ganap na nawawala ang data sa transaksyon. Iyon ay, imposible ang interlocking na ito kapag nagtatrabaho sa pinamamahalaang mode.

Na ilang beses na sinabi "pinamamahalaang mga kandado", "pinamamahalaang mode". Dapat itong maunawaan na mayroong dalawang uri ng mga kandado:
DBMS Locks - awtomatikong naka-install sa antas ng DBMS kapag nagsasagawa ng mga query.
Lock 1C: Enterprise - awtomatikong i-install kapag nagre-record (pagbabago) data at palaging manu-mano kapag nagbabasa ng data.

Ang masusing mambabasa ay sasabihin na ang 1C ay naghihiwalay pa rin sa bagay at hindi mga lock ng bagay, ngunit ngayon ay hindi namin hahawakan ang diskarte na ito.

Ngunit itatandaan ko na ang mga overlay ay mas kwalipikasyon at karanasan ng espesyalista sa 1C.

6) nawawalang mga index (lalo na sa kumplikadong mga query) ay karaniwang ang pangunahing kadahilanan sa paglitaw ng isang mas maraming uri ng mga antas ng pagharang kaysa sa kinakailangan. Mga iyon. Paradox, sinabi ko na bago i-optimize ang kahilingan, sinabi ko na kailangan mo munang tingnan ang lock, at ngayon sinasabi ko upang i-optimize ang pagharang - kailangan mong i-optimize ang kahilingan. Mayroon akong isang dahilan, ang pagsasalin ng configuration sa kinokontrol na mga kandado ay binabawasan ang mga kalabisan na mga blockage na hindi kahit na sa pinakamainam na query. Nangyayari ito dahil sa pagbawas sa antas ng paghihiwalay ng transaksyon, na kung saan, ang DBMS lock manager ay nagbibigay ng mas kaunting mga dahilan upang magpataw ng labis na lock.

Ang mga pangunahing dahilan para sa labis na mga kandado (isinumite sa itaas)

- Mga error sa disenyo
(Ang antas ng parallelism ay tinutukoy ng "kung paano maliit na data ang napili": parallel na trabaho na may dalawang hanay ng talahanayan ay posible, ang trabaho na may isang linya ay lamang sequentially)
(Mga error sa paggamit ng metadata: Pagre-record ng mga constant, mga pagkakasunud-sunod, pagpapatakbo ng accounting para sa mga registro ng accounting)
- Malayo na pagharang dahil sa kasalanan ng awtomatikong mode (Bundle Platform - DBMS).
- Non-optimal na kahilingan
(Halimbawa, kapag nag-scan sa talahanayan, ang buong talahanayan ay naharang - labis na lugar
at ang pagtaas ng oras ng pag-block - overpower, ang karagdagang bilang ng mga kandado ay nagdaragdag ng posibilidad ng pagtaas ng lock)

Paano mo nakikita ang gawain ng pag-optimize ng mga "multifaceted" na mga kandado. Ito ay kinakailangan upang kumatawan sa "konteksto" bilang pinakamahusay na posible, na provoked ang problema. Kung saan ang mga mapagkukunan, anong code. Gaano katagal ang pag-block na ito ay kinakailangan, o ito ay kalabisan.

Masakit ang bata at pang-adulto sa lalamunan. Kapag ang doktor ay nagsasaalang-alang: "Ano ang mali?", Ang bata ay titingnan ang doktor at hiyawan (naniniwala sa akin, alam ko), habang ang adulto ay magpapahiwatig ng mga sintomas ng sakit. Ang tahasang pagkakaiba na ito ay nagpapadala ng isang doktor sa iba't ibang pamamaraan ng pagkakakilanlan ng pamamaraan.
Sa isang bata, dapat matupad ang doktor lot. Pagsusuri, mangolekta ng data, pagsamahin ang mga ito, magsagawa ng pagtatasa at pagkatapos ay magbigay ng mga rekomendasyon. Sapagkat sa mga may sapat na gulang, hihilingin niya ang ilang mga katanungan at, dahil ang bilang ng data ng pinagmulan ay maliit, ang oras ng pagtatasa at pagpapasiya ng problema ay mas mababa. Bilang resulta, ang mga rekomendasyon ay ibibigay nang mas maaga.

Gamitin ang aming mga serbisyo at mayroon kang higit pang mga pagkakataon upang hamunin ang problema nang libre at makahanap ng solusyon!