1С неге тежеледі және неге жаңа сервер әдетте көмектеспейді
Ең алдымен - жаңа сервер сатып алмаңыз. Он жағдайдың сегізінде 1С-тің баяу жұмысының себебі темірде емес: миллиондаған артық жолды оқитын сұрауларда, жоқ индекстерде, ДҚБЖ-ның ескірген статистикасында немесе пайдаланушылар арасындағы құлыптауларда. Мұның бәрі аспаптық жолмен диагностикаланады: 1С технологиялық журналы мен SQL сұрау жоспарлары кінәліні код жолына дейін дәл көрсетеді.
Себепті қалай іздейміз
- 1С технологиялық журналы - ұзақ сұраулар мен құлыптаулардағы күтулер бойынша оқиғаларды жинауды баптаймыз; уақытты қай операциялар мен кімнің коды жеп жатқанының нақты көрінісін аламыз.
- SQL сұрау жоспарлары - ДҚБЖ ауыр сұрауларды іс жүзінде қалай орындайтынын қараймыз: индекспен іздеудің орнына сканерлеу, артық қосылыстар, тиімсіз ішкі сұраулар.
- ДҚБЖ күту статистикасы - сервер неге тірелетінін анықтаймыз: дискілер, процессор, құлыптаулар, жады.
- Негізгі операциялар бойынша APDEX өлшемдері - жылдамдықты “аурухана бойынша орташа” көрсеткішпен емес, пайдаланушы көзімен бекітеміз.
Типтік олжалар
Жылдар бойғы жұмыста “кінәлілер” тізімі қайталанып отырады: циклдегі сұраулар, сұрыптаусыз виртуалды кестелермен қосылыстар, өткізу транзакциясының ішінде қалдықтарды алу, индекстелмеген өрістер бойынша сұрыптаулар, жаппай жүктеулерден кейінгі ескірген статистика, өз бетімен жазылған кодтағы артық құлыптаулар. Барлығы дерлік темірді ауыстырмай және жаңа конфигурацияға көшпей-ақ емделеді.
Нақты жобалардан соңғы нәтижелер
- Кассир алдындағы чектер тізімі: 25 секунд → лезде (505 410 → 4 логикалық оқу) - кассалық операцияларға арналған индекстер қоса қолжетімділікті шектеу механизмін талдау.
- Алты ауыр басқару есебі: уақыт бойынша −22…−42 % - толық бірдей деректерде: “дейін” мен “кейін” нәтижесі “көзбен” емес, SHA-256 бақылау сомасымен салыстырылды.
- “Кассалардың кешкі қатып қалуы”: құлыптау нөл болып шықты - 48 ядролық сервердегі SQL-дің агрессивті параллелизмі тежеген (зауыттық cost threshold = 5, MAXDOP = 0). Екі баптау - және пик лотерея болудан қалды. Неге алдымен өлшеп, содан кейін ғана темір сатып алатынының классикалық мысалы.
- 2 минут бойы “өтпей тұрған” құжат → 17 секунд - әр жол бойынша циклдегі қалдықтар сұрауы бір set-based сұрауға қайта жазылды.
- Талдаудан кейін есептердің бір бөлігі өзгеріссіз қалдырылды - тар жер сұрауда емес еді, қайта жазу ұтыс бермес еді. Жылдамдамайтын нәрсеге бюджетіңізді жұмсамау - бұл да нәтиже.
Ең ірі жобаның толық талдауы - “4,2 ТБ базаны 105 ГБ-ға дейін кесу” кейсінде.
SQL серверінде 1С-ті жылдамдату
Бөлек қабат - ДҚБЖ-ны 1С-ке лайықтап баптау: жады мен параллелизм параметрлері, tempdb, статистиканы автожаңарту, индекстерге қызмет көрсету. “Әдепкі” типтік орнатулар 1С профиліне емес, абстрактілі жүктемеге есептелген. MS SQL-ді де, PostgreSQL-ді де баптаймыз - бірінен екіншісіне көшуді қоса алғанда.