Асновы аптымізацыі запытаў 1С | Усё пра праграмаванні на 1С: Прадпрыемства

  1. Агульныя правілы аптымізацыі 1С кода
  2. Што патрабуе аптымізацыі ў абавязковым парадку?
  3. Як аптымізаваць вялікую укладзенасць подзапросов і іх злучэнні?
  4. Алгарытм аптымізацыі:
  5. Як ацаніць вынік аптымізацыі кода 1С?
  6. Падабаецца артыкул? Падпішыцеся прама зараз і атрымлівайце абнаўлення на свой E-Mail:

Праграма вельмі павольна працуе, немагчыма дачакацца правядзення дакумента або адкрыцця запісу Праграма вельмі павольна працуе, немагчыма дачакацца правядзення дакумента або адкрыцця запісу? Рахункі-фактуры і акты фармуюцца па гадзіне? Непарадак! Не хапае рукі майстра 1С. Добра калі ваш супер праграміст проста ў адпачынку, хутка вернецца і выправіць сітуацыю, але што рабіць тым кампаніях, штатны расклад якіх не прадугледжвае наяўнасці праграміста? Тут варыянту два: альбо працягваць мучыцца ў чаканні правядзення кожнага дакумента (шчыра кажучы, зусім не варыянт), альбо запрасіць праграміста па 1С з боку. Чым ён можа дапамагчы? Перш за ўсё спецыяліст правядзе аналіз праграмы на прадмет правільнасці напісанага кода і запытаў, менавіта аптымізацыя 1С кода дазваляе павялічыць хуткадзейнасць сістэмы.

Агульныя правілы аптымізацыі 1С кода

Ня трэба перапісваць ўсю праграму або спрабаваць выправіць тое, што на першы погляд вам не вельмі падабаецца. На самай справе неабходна знайсці тыя самыя славутыя 20% неэфектыўнасці, якія вядуць да столькі жаласных вынікаў. Трэба дакладна ведаць, што менавіта патрабуе аптымізацыі ў 1С.

Што патрабуе аптымізацыі ў абавязковым парадку?

Існуе невялікі пералік праблем, якія патрабуюць выяўлення і выпраўленні ў першую чаргу, калі праграма павольна працуе.

  1. Вялікая укладзенасць подзапросов.

1С зрабіў вельмі зручным функцыянал ўкладзеных подзапросов і іх злучэння. Таму іх часта выкарыстоўваюць нерацыянальна. Яны неабходныя, калі трэба зрабіць паэтапна складаныя вылічэнні, з-за гэтага часцяком можна сустрэць такія канструкцыі:

Але тут не улічаны той факт, што аптымізатар сервера, якую б СКБД вы не ўжывалі, не ва ўсіх выпадках мае магчымасць пісьменна аптымізаваць ўказаны варыянт запыту. Вынікам будзе вельмі нізкая хуткадзейнасць пры яго апрацоўцы сістэмай. Звярніце ўвагу, загрузка сервера пры апрацоўцы ў межах нормы. Выснову: коды 1С патрабуюць аптымізацыі.

Як аптымізаваць вялікую укладзенасць подзапросов і іх злучэнні?

Усё проста: трэба выправіць сам запыт, адмовіцца ад наяўнай канструкцыі, стварыць некалькі самастойных подзапросов, вынікі іх працы зафіксаваць у базе дадзеных часовых табліц.

Алгарытм аптымізацыі:

Шукаем самы праблемны запыт? Атрымліваем тэкст запыту на ўбудаваным мове 1С? Дублюем сітуацыі праз функцыянал Кансолі запытаў? Аналізуем тэкст запыту

Вось такія канструкцыі трэба перапісаць?

Вось такія канструкцыі трэба перапісаць

Трэба выкарыстоўваць эфектыўнасць часовых табліц, атрымаем наступнае:

Трэба выкарыстоўваць эфектыўнасць часовых табліц, атрымаем наступнае:

Створаную часовую табліцу змяшчаем у асноўны запыт:

Створаную часовую табліцу змяшчаем у асноўны запыт:

Калі трэба выканаць аб'яднанне запытаў у адзіны пакетны запыт.

Як ацаніць вынік аптымізацыі кода 1С?

Правяраем хуткасць выканання запыту. Калі і зараз хуткасць не адпавядае жаданай, працягваем аналіз і спрашчэнне.

  1. Выяўленыя неадпаведнасці паміж індэксамі і значнымі ўмовамі запытаў.

Калі СКБД павольна выконвае запыт магчыма, што індэксы падыходзяць ня да ўсіх умовам наяўных у базе дадзеных запытаў. Таму трэба супаставіць індэксы і ўмовы. Умовы прымяняюцца ў наступных секцыях:

Кожнаму умове адпавядае свой індэкс. Ідэальны індэкс той, для якога ў абавязковым парадку выконваюцца наступныя значныя ўмовы:

  • Індэкс змяшчае ўсе поля, пералічаныя ў строгіх;
  • Гэтыя палі знаходзяцца ў самым пачатку індэкса;
  • Гэтыя палі ідуць запар, г.зн. паміж імі не «ўкліньваюцца» поля, якія не ўдзельнічаюць ва ўмовах запыту;
  • Запыт не выбірае іншых палёў, акрамя тых, якія ўтрымліваюцца ў самым індэксе. Гэта патрабаванне не з'яўляецца абавязковым у тым выпадку, калі абраны індэкс з'яўляецца кластарным.
  1. Недапушчальнае для хуткадзейнасць маніпуляванне параметрамі віртуальных табліц.

Прыклад неэфектыўнага выкарыстання:

Аптымізаваны варыянт:

  1. Невыкарыстанне «выказаў» пры увядзенні палёў, якія маюць складовай тып.

Ўвядзенне «выказаць» выключае злучэнне табліц, гэта папросту больш не трэба.

  1. Лішнія поля праз сімвал «.».

Прыклад: калі зрабіць запыт так, то пры яго выкананні створыцца лішняе левае злучэнне з табліцай «Контрагенты».

Трэба перапісаць вось так:

Для больш падрабязнага вывучэння аптымізацыі запытаў і кода 1С, дадаткова раю спампаваць і вывучыць вось гэта кіраўніцтва .

Падабаецца артыкул? Падпішыцеся прама зараз і атрымлівайце абнаўлення на свой E-Mail:

падобнае

Надрукаваць артыкул

Як аптымізаваць вялікую укладзенасць подзапросов і іх злучэнні?
Падабаецца артыкул?
Рахункі-фактуры і акты фармуюцца па гадзіне?
Добра калі ваш супер праграміст проста ў адпачынку, хутка вернецца і выправіць сітуацыю, але што рабіць тым кампаніях, штатны расклад якіх не прадугледжвае наяўнасці праграміста?
Чым ён можа дапамагчы?
Што патрабуе аптымізацыі ў абавязковым парадку?
Як аптымізаваць вялікую укладзенасць подзапросов і іх злучэнні?
Атрымліваем тэкст запыту на ўбудаваным мове 1С?
Дублюем сітуацыі праз функцыянал Кансолі запытаў?
Як ацаніць вынік аптымізацыі кода 1С?