Простые регулярные выражения

Публикация № 825405

Администрирование - Производительность и оптимизация (HighLoad)

59
Шпаргалка к экзамену "Эксперт по технологическим вопросам".

Существует несколько хороших статей про регулярные выражения.

https://its.1c.ru/db/metod8dev#content:5927:hdoc (Статья на ИТС недавно обновилась)

//infostart.ru/public/693103/

Постараюсь написать проще и подробнее - как для себя. Для начинающих, которые уже прочитали Джеффри Фридл "Регулярные выражения" или Бен Форта "Регулярные выражения 10 минут на урок" и установили Cygwin64 GitBash с ресурса https://git-scm.com/download/win.

Предупреждение 1. При копировании примеров из статьи в bash могут возникнуть проблемы. Из-за этого выходит сообщение «Binary file (standard input) matches». Поэтому текстовые файлы примеров команд и фрагмент журнала приложу в архиве. Кто захочет – скачает.

Предупреждение 2. Относитесь к шпаргалке критически, опирайтесь на свои собственные знания.

Скрипт обработки ТЖ сильно зависит от настроек. Универсальных скриптов не бывает. Поэтому пара слов про ТЖ.

 
 Будем использовать такие настройки.

Длительность более 10 миллисекунд позволяет отсечь служебные запросы. Пользовательские запросы дольше. Данные журнала накапливаются за од      ин час. Это лучшая настройка поскольку собирать журнал можно только на диске сервера (если использовать сетевой диск – возможны дикие тормоза), а место на диске сервера очень дорогое.  Чтобы собирать журнал с нескольких серверов на свой рабочий компьютер, ежечасно запускайте помощью Планировщик заданий Windows командный файл *.bat, пример содержимого:

xcopy \\SERVERName1\F\*.* D:\$log$\*.* /S /E /Y

xcopy \\SERVERName2\F\*.* D:\$log$\*.* /S /E /Y

 
 Ниже примерный фрагмент ТЖ, каждая новая строка пронумерована чтобы обозначить конец строки

 

Задача 1. Подсчитать количество дедлоков (управляемые блокировки) за ночь с 00 по 06 часов

Выбираем содержимое файлов из подкаталогов текущего каталога cat rphost*/ *0[0-6].log |

Символы

Значение

rphost

Используем, что дедлок содержится только в логах rphost. Выбрать все файлы проще: cat */*.log

*

любое количество символов в имени файла. Вообще, любое количество символов в регулярных выражениях означается «.*», но создателей команды cat это не смущает.

/

Спуск к подкаталогам. Я бы удивился, если бы увидел привычный «\».

0[0-6]

Числа 00, 01,02,03,04,05,06. На каждый час создается свой файл

.log

Точка здесь означает точку. Расширение файла – log.

|

Нам всем привычны временные таблицы. Чтобы поместить результат запроса в аналог временной таблицы, ставим знак «|» (pipe, труба). Следующая команда использует этот результат.

Почти каждый запрос начинается с команды cat.

Чтобы выбрать строки, содержащие дедлок, нужно составить шаблон. Смотрим строка 1 файла ТЖ, записываем ^[0-9][0-9]:.{10,20}DEADLOCK.

Символы

Значение

^

Начало строки

[0-9]

один цифровой символ

:

двоеточие

.

означает любой символ

{10,20}

от 15 до 20 повторений предыдущего символа

DEADLOCK

должно быть написано большими буквами. Если у вас не дедлоков – считайте другое слово, например SDBL

Профессионалы применяют более сложные шаблоны начала строки – выбирайте сами. На мой взгляд, в шаблоне должно быть начало строки и расстояние от начала строки до DEADLOCK было ограничено. Иначе объем чтения сильно возрастает.

Чтобы выбрать все строки, содержащие шаблон – используем команду egrep. Следующая команда выведет все строки, подобные шаблону, на экран

cat */rphost*0[0-6].log | egrep ‘^[0-9][0-9]:.{10,20}DEADLOCK’

команда выведет количество.

cat */rphost*0[0-6].log | egrep ‘^[0-9][0-9]:.{10,20}DEADLOCK’ -c

Символы

Значение

(обязательно прописная), показывает количество строк. Без этой опции результат выйдет на экран. Обычно дедлоков немного, строки можно подсчитать визуально.

> имяфайла

Перенаправить вывод в файл

- -help

(два тире help). получить подсказку

 

Иногда можно не использовать cat:

egrep ‘^[0-9][0-9]:.{15,20}DEADLOCK’ –d recurse

Символы

Значение

–d recurse

Рекурсивный обход поддиректорий. При этом в результат может добавляться имя файла, которое содержит час и дату. профессионалы используют –r.

Можно задавать имя файла.

–H

Добавляет имя файла в результат.

-h

Подавляет вывод имени файла в результат

- - color

(два тире color) выделяет цветом шаблон поиска

 

Задача 2. Подсчитать количество взаимоблокировок СУБД

Количество взаимоблокировок СУБД считается примерно также. Нужно учитывать, что в ТЖ это событие EXCP с пояснением «Конфликт блокировок при выполнении транзакции».  (К сожалению, в примерном ТЖ управляемые блокировки.) Для вывода на экран используйте скрипт

egrep ‘^[0-9][0-9]:.{10,20}EXCP.*блокировок при выполнении транзакции’ -d recurse

Символы

Значение

.*

Несколько (или нисколько) любых символов. Сравните .+ или .{1,2}

 

Задача 3. Найти TLOCK жертвы (виновника) взаимоблокировки.

egrep –A2 ‘^[0-9][0-9]:.{15,20}DEADLOCK’ –d recurse

Символы

Значение

-A2

Две строки после строки, подобной шаблону. Есть похожие опции –B2, -C2

Если журнал настроен только по событиям TLOCK, TTIMEOUT, TDEADLOCK, то TLOCK жертвы должен быть следующим после TDEADLOCK.

В случае, если первый способ не подойдет, можно решить в два приема:

1. Найти строки, содержащие TDEADLOCK, запомнить время, connectID жертвы, пространство блокировок (Regions), измерения пространства блокировок (Здесь я не отображаю измерения, но их нужно сравнивать. Они обычно начинаются Fld). Выполняем

cat */*.log | egrep '^[0-9][0-9].{10,25}TDEADLOCK’, получаем

29:46.696046-0,TDEADLOCK,5,process=rphost,p:processName= processName,t:clientID=5008,t:applicationName=BackgroundJob,t:computerName= computerName,t:connectID=6520,SessionID=52328,Usr=.Регламентные задания,DeadlockConnectionIntersections='6520 6171 AccumRg10307.DIMS Exclusive Fld10308=44:8cbcf07d2b194ea349f50188353e0a15 Fld10309=32:80bb000c293fb1b711e5cef51b92cf25 Context='

2. По запомненным параметрам с учетом времени искать TLOCK жертвы.

Выполняем

cat */*.log | egrep –A1 '^29.{10,25}TLOCK.*connectID=6520.*Regions= AccumRg10307.DIMS', получаем две строки

29:47.259006-187992,TLOCK,4,process=rphost,p:processName= processName,t:clientID=5008,t:applicationName=BackgroundJob,t:computerName= computerName,t:connectID=6520,SessionID=52328,Usr=.Регламентные задания,Regions=AccumRg10307.DIMS,Locks='AccumRg10307.DIMS Exclusive  ,Context='

              ОбщийМодуль.МодульРегламентныхЗаданий.Модуль : 1350 : РегистрыСведений. ДокументыДляПерепроведения.ПерепровестиДокументы();

TLOCK виновника нужно искать раньше TDEADLOCK, по запомненным параметрам с учетом времени. В нашем случае connectID=6171

Задача 4. Найти топ-5 запросов с максимальной длительностью.

Нужно учитывать, что длительность запроса хранится в событии SDBL или DBMSSQL, а контекст хранится в строках, следующих за следующей строкой.

Команда egrep ищет внутри одной строки. Поэтому строки нужно «склеить» (убрать переход строки), фильтровать нужный контекст, длительность переместить на первое место, сортировать по длительности, выбрать первые 5 по длительности.

Для «склеивания» строк применим скрипт

cat *.log |\

awk -vORS= '{

if ($0~"^[0-9][0-9].{8,30}SDBL|DBMSSQL") { print "\n"$0;} \

else if ($0~"^[0-9][0-9].{8,30}Context") { print $0; } \

else if ($0~"^[0-9][0-9]") { print "\n"; } \

else { print "-"$0; }

}' |\

Символы

Значение

\

Здесь означает, что команда продолжается на следующей строке. Используем для наглядности.

awk ‘{}’

Это сложная  и мощная команда, но здесь для каждой строки она просто выводит данные в зависимости от условий

-vORS=

Парамeтры команды awk. Убирает непечатаемые символы.

If(){}

Если истинно условие() выполнить программу {}

$0

Текст обрабатываемой строки, без конца строки

$0~”шаблон1”

Текст обрабатываемой строки, без конца строки подобен шаблон1

SDBL|DBMSSQL

Символ | означает ИЛИ. Этот шаблон равен SDBL или DBMSSQL. Для наглядности можно заключать в скобки ().

«\n»

Начало строки в кавычках. Символ конца строки \$

print "\n"$0

Вывести начало строки, текст обрабатываемой строки, без конца строки

else if ($0~"^[0-9][0-9].{8,30}Context") { print $0; }

Если не выполняется первое условие, но в строке есть слово Context, строка приклеивается к предыдущей.

else if ($0~"^[0-9][0-9]") { print "\n"; } \

 

Если не выполняются предыдущие условия, но строка начинается с цифр, то вывести перевод строки. Эта команда заменяет на перевод строки все события кроме Context, SDBL и DBMSSQL

else { print "-"$0; }\

Если не выполняются предыдущие условия, «приклеить» строку к предыдущей, но перед ней вставить тире. Эта команда обрабатывает контекст который начинается с пробелов.

}' |\

Закрываются командные скобки команды awk, данные передаются через pipe следующей команде, которая будет на следующей строке.

 

Фильтруем нужный контекст командой egrep ',(DBMSSQL|SDBL),.*,Context=' |\

 
 Выполним этот скрипт на примерном фрагменте ТЖ, посмотрим результат

Применим команду awk -F',(DBMSSQL|SDBL),.*?(,Context=)' '{print $1 "-" $2}' |\

Символы

Значение

awk –F’’ ‘{}’

Команда обрабатывает строки, используя разделитель заданный –F’’. Например, для файла csv удобно использовать разделитель «;». Но в данном случае разделителем объявлен огромный шаблон, это приводит к тому, что он исчезает из строки.

.*?

Ленивый квантор. Выбирает минимальное число символов, чтобы строка подходила под шаблон.

$1

Первая колонка с учетом разделителя.

NF

Количество колонок

$NF

Последняя колонка

NS

Количество обработанных строк

 

 
 Посмотрим результат.

Применим команду awk -F'-' '{print $2, $NF}' | sort –rnb | head 5

Символы

Значение

-F'-'

Используем разделитель “-”

{print $2, $NF}

Вывести вторую и последнюю колонку контекста

sort –rnb

Сортировать

head 5

Вывести первые пять записей. Последние пять записей tail 5

Посмотрим результат. Первая колонка – длительность.

186991          РегистрСведений.МойРегистр.МодульМенеджера : 285 : ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);'

15947           РегистрСведений. МойРегистр.МодульМенеджера : 285 : ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);'

14975           РегистрСведений. МойРегистр.МодульМенеджера : 285 : ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);'

 

Итоговый скрипт:

time cat *.log \
| awk -vORS= '{if ($0~"^[0-9][0-9].{8,30}SDBL|DBMSSQL") \
{ print "\n"$0;} \
else if ($0~"^[0-9][0-9].{8,30}Context") { print $0; } \
else if ($0~"^[0-9][0-9]") { print "\n"; } \
else { print "-"$0; } \
}' \
| egrep ',(DBMSSQL|SDBL),.*,Context=' \
| awk -F',(DBMSSQL|SDBL),.*?(,Context=)' '{print $1 "-" $2}' \
| awk -F'-' '{print $2, $NF}' \
| sort –rnb \
| head 5

Вариант скрипта, если выводить без контекста, только имя файла и время:

time egrep '^[0-9][0-9].{8,30}(SDBL|DBMSSQL)' -d recurse \
| awk -F',' '{print $1}' \
| awk -F'-' '{print $2/1000000 " -длительность секунд. Имя файла:Минут:Секунд " $1}' \
| sort -rnb \
| head -n10

Вариант скрипта: ищем объектные чтения

time cat *.log \
|awk -vORS= '{ \
if ($0~"^[0-9][0-9].{8,30}(SDBL|DBMSSQL).{180,220}SELECT ID, Version, Marked, PredefinedID") \
{ print "\n"$0; } \
else if ($0~"^[0-9][0-9].{8,30}Context") { print $0; } \
else if ($0~"^[0-9][0-9]") { print "\n"; } \
else { print "-"$0; } \
}' \
| egrep '(SDBL|DBMSSQL).*?Context=' \
| awk -F'(SDBL|DBMSSQL).*?,Context=' '{print $1 "-" $2}' \
| awk -F'-' '{duration[$NF]+=$2; count[$NF]+=1;} \
END {for (i in count) {print "\n" duration[i] / 1000000 " секунд " count[i] " выполнений " duration[i] / (count[i]*1000000) " среднее время    " i}}' \
| sort -rnb \
| head -n20

Используем, что объектное чтение элемента справочника имеет вид: SELECT ID, Version, Marked, PredefinedID

Кстати, запросы получения данных в форме списка при включенном "Динамическом считывании" содержат "TOP 45". Чаще всего опцию "Динамическое считывание следует отключить.

Вариант скрипта: ищем наиболее частые ошибки

time cat *.log 
| awk -vORS= '{ \
if ($0~"^[0-9][0-9].{6,30},EXCP.*?Descr=") { print "\n"$0;} \
else if ($0~"^[0-9][0-9].{6,30},[A-D,F-Z]") { print "\n"; } \
else { print $0; } \
}' \
| egrep '^[0-9][0-9].{6,30}EXCP.*?Descr=' \
| awk -F'^.*Descr[^А-Я]*?' '{print $2;}' \
| awk -F'[A-Z]*?' '{count[$1]+=1;} \
END {for (i in count) {print "\n" count[i] " ошибок " i}}' \
| sort -rnb \
| head

Здесь первый awk убирает события кроме ошибок и следующих строк, второй awk убирает все символы до первой большой русской буквы в описании ошибки, третий awk убирает из описания ошибки все что идет после большой латинской буквы.

 

Задача 5. Найти такие события, которые в сумме имеют максимальную длительность.

Например, система оповещения пользователей, подключается при старте программы командой «ПодключитьОбработчикОжидания(,60)» и потребляет серьезные ресурсы при большом количестве пользователей.

Мы видели, что в предыдущем варианте получился практически готовый ответ, только его нужно сгруппировать. Вместо последней команды выполним

awk -F'-' '{count[$NF]+=$2;} END {for (i in count) {print "\n" "длительность " count[i] " контекст вызова " i}}' | sort -rnb | head -n5

Символы

Значение

count[$NF] +=$2

Определяем структуру, ключ – содержимое последнего столбца, значение – содержимое второго столбца, если в структуре ничего не было. Если такой ключ в структуре уже существовал - то сумма существующего и нового значений.

END {}

После обработки всех строк выполнить

for (i in count) {print "\n" count[i] " контекст вызова " i}

Вывести каждое значение структуры и ключ структуры

 

 
 Посмотрим результат.

 

Итоговый скрипт

time cat *.log \
| awk -vORS= '{if ($0~"^[0-9][0-9].{8,30}SDBL|DBMSSQL") \
{ print "\n"$0;} \
else if ($0~"^[0-9][0-9].{8,30}Context") { print $0; } \
else if ($0~"^[0-9][0-9]") { print "\n"; } \
else { print "-"$0; } \
}' \
| egrep ',(DBMSSQL|SDBL),.*,Context=' \
| awk -F',(DBMSSQL|SDBL),.*?(,Context=)' '{print $1 "-" $2}' \
| awk -F'-' '{count[$NF]+=$2;} END {for (i in count) \
{print "\n" count[i]  "<--Длительность; Контекст-->" i}}' \
| sort -rnb \
| head -n20 \
| sed 's/[ \t]//g'

Задача 6. Найти TLOCK, которые ожидали

 

cat *.log | egrep 'TLOCK.*WaitConnections=[0-9]'

 

Задача 7. Найти все управляемые разделяемые блокировки

 

cat *.log | egrep 'TLOCK.*\bShared\b'

Символы

Значение

\b граница слова

 

Задача 8. Найти топ самых долгих транзакций

 

cat *.log | egrep 'SDBL.*Func=Commit' | gawk -F'-' '{print $2}' | sort -rnb | head

 

Задача 9. Посчитать количество событий в каждом файле

egrep '^[0-9][0-9].{8,30},' -H -d recurse |\

awk -F',' '{print $1 "log" $2}' |\

awk -F'log' '{ count[$1, $3]++ } END {for (i in count) {print count[i] "." i}}'

Символы

Значение

count[$1, $3]++

Добавляет счетчик в структуру вида 

Имя файла. Имя события

 

Результат работы - на экране в формате количество событий, имя файла, имя события. Пример:

2495.19032013.EXCP
2632.19031908.SDBL

Копируем в Excel (Calc), меню Данные - Текст по столбцам, сортируем, рисуем диаграмму )

Задача 10. Подсчитать определенный фрагмент по часам

cat *.* | egrep ',EXCP' -d recurse -c

 

Задача 11. Вывести в файл строки, которые не начинаются "(".

cat 19050709.log | egrep '^[^\(]' >> file1.log

Такое преобразование нужно, если в файл журнала попал текст Insert-запроса, который "раздувает" файл лога в разы.

Символы

Значение

'^[]' Начало строки ^ диапазон []
^\(

Не ^ знак скобки \(

59

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. tormozit 5598 01.05.18 07:30 Сейчас в теме
Это точно для 1сников? =)
Уж очень сложно и неудобно.
2. vasilev2015 1420 01.05.18 09:12 Сейчас в теме
(1) Здравствуйте, Сергей ! Когда я смотрел другие статьи про регулярные выражения, где упор делается на использование perl, у меня возникал тот же вопрос. Постарался упростить ))).

Регулярные выражения примечательны тем, что позволяют парсить файлы технологического журнала общим объемом порядка 100 Гигабайт за время порядка 5 минут. Других таких инструментов нет. ЦУП медленнее на порядки.

P.S. Пользуюсь инструментами разработчика каждый день. Спасибо Вам.
3. tormozit 5598 01.05.18 13:14 Сейчас в теме
(2) Кажется обычно более разумно настроить фильтр записи журнала (logcfg.xml), чтобы он собирал то, что нужно. А не собирать в 10-100 раз больше логовов, чем нужно, неоправдано нагружая сервер и вынуждая себя пользоваться в разы менее удобными инструментами. В анализе техножурнала (ИР) непосредственно при чтении логов сейчас доступен только отбор по дате и он уже в большинстве случаев в разы ускоряет загрузку логов. Планирую туда же добавить фильтр по типу события (на этапе чтения). Он позволит еще ускорить логов в ряде случаев. Но конечно с выборкой описанной в статье анализ техножурнала (ИР) не сравнится по скорости.
ivanov660; Spartacus; +2 Ответить
4. vasilev2015 1420 01.05.18 13:26 Сейчас в теме
(3) Да, согласен. Поэтому позиционирую статью не как инструменты парсинга ТЖ, а как шпаргалку к экзамену. С нетерпением ждем улучшений ИР. :-))
5. palsergeich 01.05.18 20:37 Сейчас в теме
(3)
(2) Кажется обычно более разумно настроить фильтр записи журнала (logcfg.xml), чтобы он собирал то, что нужно. А не собирать в 10-100 раз больше логовов, чем нужно, неоправдано нагружая сервер и вынуждая себя пользоваться в разы менее удобными инструментами. В анализе техножурнала (ИР) непосредственно при чтении логов сейчас доступен только отбор по дате и он уже в большинстве случаев в разы ускоряет загрузку логов. Планирую туда же добавить фильтр по типу события (на этапе чтения). Он позволит еще ускорить логов в ряде случаев. Но конечно с выборкой описанной в статье анализ техножурнала (ИР) не сравнится по скорости.

Иногда, особенно когда не знаешь почему все работает медленно, надо собрать всё, убрать главные проблемы, и после этого уже работать с ограниченным ТЖ.
Ваш инструмент, я пользовался в том числе и им, в нем действительно удобно сводить данные, но для первичного анализа - regex, ибо в ИР к сожалению уже на 200+ тыс записях (точное число не скажу) вылетает, а клеить анализ за каждые 5 минут - не вариант.
Очень простой пример. На прошлой неделе разбирал один ТЖ, там, помимо тех проблем о которых я догадывался, за час из сервера приложений было больше полумиллиона вызовов НайтиПоКоду в цикле в регламентном задании. С фильтром на длительность эту проблему обнаружить не удастся. НайтиПоКоду вынесен за цикл, стало сразу лучше.
6. tormozit 5598 01.05.18 21:18 Сейчас в теме
(5) Частые и одновременно легкие запросы, создающие в сумме большую нагрузку, эффективнее всего ловить через новый инструмент "Статистика запросов MSSQL", который использует не требующую включения и не создающую нагрузки статистику по запросам из процедурного кэша MSSQL. После обнаружения такого запроса в статистике MSSQL человек уже настраивает фильтр в техножурнале по тексту оператора SQL (имеется соответствующая команда в окне "Конвертор текста СУБД") и далее анализирует собранный техножурнал для выявления отправляющих этот запрос контекстов встроенного языка. Сразу через техножурнал выявлять такие запросы в разы менее непродуктивно.
mvxyz; palsergeich; +2 Ответить
8. headMade 140 02.05.18 09:19 Сейчас в теме
(6) а что это за инструмент такой "Статистика запросов MSSQL". Где про него можно прочитать подробнее ?
9. tormozit 5598 02.05.18 13:07 Сейчас в теме
(8)
Статистика

Инструмент "Статистика по запросам MSSQL" появился в последней выпущенной версии и пока не имеет страницы с описанием. Она появится в ближайшее время. Как искать инструмент по названию, показано на картинке
Прикрепленные файлы:
Spartacus; CSiER; fancy; palsergeich; headMade; +5 Ответить
12. tormozit 5598 02.05.18 16:25 Сейчас в теме
(8) Добавил описание на основном сайте
26. Dach 279 04.05.18 10:17 Сейчас в теме
(12) Извините за оффтоп, но раз уж тут пошла речь...

Если в конфигурацию не встроена обработка ирАнализТехноЖурнала - отчет сбора статистики не запускается.

Имею ввиду из портативной версии ИР.

Пришлось найти все вхождения и закомментить:

ПриКомпоновкеРезультата(
......

АнализТехножурнала = Обработки.ирАнализТехножурнала.Создать();
29. tormozit 5598 04.05.18 20:10 Сейчас в теме
(26) Было бы классно увидеть багрепорт там, где все ожидают его увидеть и подробно оформленный. Проблему воспроизвел.
11. palsergeich 02.05.18 13:48 Сейчас в теме
7. tormozit 5598 01.05.18 21:27 Сейчас в теме
(5)
в ИР к сожалению уже на 200+ тыс записях (точное число не скажу) вылетает

1. Для предотвращения вылетов в 32-разрядном приложении можно использовать ограничитель по количеству загружаемых событий.
2. Можно использовать 64-разрядное клиентское приложение, где такой проблемы, полагаю, не должно быть (не проверял тщательно).
10. palsergeich 02.05.18 13:41 Сейчас в теме
(7)
в ИР к сожалению уже на 200+ тыс записях (точное число не скажу) вылетает

1. Для предотвращения вылетов в 32-разрядном приложении можно использовать ограничитель по количеству загружаемых событий.
2. Можно использовать 64-разрядное клиентское приложение, где такой проблемы, полагаю, не должно быть (не проверял тщательно).

1) Знаю, но даже 500 000 это мало. Пример совершенно реальной проблемы - я привел выше, можно бесконечно сидеть и делать оптимизацию в запросах дольше 0.1 секунды (чем ранее коллеги и занимались) пытаться оптимизировать, а толку будет мало.
2) Версию клиента посмотрю, может быть и правда проблема была в версии клиента у меня и x86 и x64 стоят, спасибо за наводку.
14. sanjakaiser 03.05.18 12:21 Сейчас в теме
Еще по этой теме есть вебинар на три часа от Виктора Богачева (экзаменатор, принимающий Эксперта). Гуглить например так: регулярные выражения Богачев
15. starik-2005 1965 03.05.18 12:32 Сейчас в теме
(0)
Вообще, любое количество символов в регулярных выражениях означается «.*», но создателей команды cat это не смущает.
Ну тут автор попутал маску файла и шаблон регулярного выражения. Автор, не нужно путать эти два в общем-то неодинаковых по синтаксису "языка".
[0-9][0-9]:.{15,20}
Ну как вариант, хотя, конечно, "\d{2}:.{,20}" на мой взгляд выглядит лаконичнее и нагляднее, да и вообще я сомневаюсь, что "{15,20}" даже в обрезанном варианте здесь нужно - достаточно использовать нежадный модификатор.

Если бы я не знал, что такое регулярные выражения, то вряд ли я с помощью данной статьи в них смог бы разобраться. Да, это очень простой и эффективный инструмент, просто необходимо разобраться в его элементах с несколькими кейсами. В этой статье кейсы есть, а теоретической части нет (да, она, конечно, выходит за рамки статьи, но т.к. занимает мало, то могли бы и включить).

По-сути, регулярные выражения очень хорошо позволяют извлекать текст из текста и модифицировать текст, что зачастую даже важнее поиска (по поводу простого сравнения с шаблоном по регулярке, то в 1С есть механизм XDTO, который может с этим справиться на любой поддерживаемой ОС без внешних компонент). А вот менять он не умеет. При том простой кейс замены даты, выгруженной в обычном формате 1С (ДД-ММ-ГГГГ чч:мм) можно поменять на XML-формат (YYYY-MM-DD) с помощью групп вот таким образом:
Шаблон поиска:
>(\d\d).(\d\d).(\d{4})( \d\d:\d\d)<

Шаблон замены:
>\3-\2-\1<

Т.е. определяются группы (то. что в скобках). Дальше эти группы по номеру используются в шаблоне замены, в итоге сначала выводится 3-я группа с годом, потом вторая, потом первая. Таких шаблончиков разобрать штук десять - и все, регулярки освоены. Дальше можно делать с ними все на свете.
17. vasilev2015 1420 03.05.18 12:46 Сейчас в теме
(15) Про регулярные выражения лучше прочитать в книге Джеффри Фридла «Регулярные выражения». В статье - приложение на практике, приближенное к экзамену.
18. starik-2005 1965 03.05.18 12:52 Сейчас в теме
(17)
Про регулярные выражения лучше прочитать в книге
Вы читали в книге? Как оно там? Сколько страничек? Если читали, то зачем пишите "[0-9]" вместо "\d"?

На мой взгляд, сначала лучше в ВИКИ читнуть, поиграться с notepad++, потом с grep (кстати, никогда не юзал egrep - чем он отличается?), потом с sed. В итоге за пару дней освоится основной функционал, которого уже будет для большинства задач за глаза. А дальше, если хочется стать экспертом не только в 1С, а еще и в регулярных выражениях, можно перейти к книгам (но я бы, лично, из книг порекомендовал "Бытие и Время", а то все хотят стать экспертами, а зачем - не знают )))
19. vasilev2015 1420 03.05.18 12:59 Сейчас в теме
(18) да, читал. Использую [0-9] вместо "\d" поскольку [0-9] работает там, где иногда не работает "\d". Egrep равносилен grep с ключом -e. Экспертом хочу стать по-приколу: могу себе позволить.
20. starik-2005 1965 03.05.18 16:17 Сейчас в теме
(19) в вики написано, что это одно и то же, только синтаксис регулярок упрощен, а для полного нужно заэкранировать спецсимволы.

Интересно стало, где "[0-9]" работает, а "\d" - нет... Сходу не смог ничего такого придумать. Подскажете?
21. leemuar 03.05.18 18:17 Сейчас в теме
(20) Насколько я помню \d не является метасимволом в posix, только в pcre. Шанс нарваться сегодня на утилиту, не умеющую pcre довольно мал.

За написание [0-9] вместо \d есть большой аргумент: удобочитаемость. Регулярки очень сложно читать. Помнить и расшифровывать все метасимволы достаточно неудобно. Использование простого диапазона повышает "понимаемость" регулярки.

А так, конечно, разницы в получаемом результате нет
16. kudlach 22 03.05.18 12:42 Сейчас в теме
Извиняюсь, но термин "регулярные выражения" - это немного не к журналу регистрации изначально. Это к стыку мат.анализа , теории множеств и азам программирования.
Отдельная тема к экзаменам второго курса ВУЗа.
Думается мне, более правильно тема звучала бы "Применение регулярных выражений в решении задач таких-то"
22. mvxyz 139 03.05.18 21:47 Сейчас в теме
(16) Нормальное название статьи. Тем кто готовится к экзамену на эксперта сразу понятно о чем речь. Автору спасибо.
23. starik-2005 1965 03.05.18 22:28 Сейчас в теме
(22)
За написание [0-9] вместо \d есть большой аргумент: удобочитаемость. Регулярки очень сложно читать. Помнить и расшифровывать все метасимволы достаточно неудобно. Использование простого диапазона повышает "понимаемость" регулярки.
А мне, лично, кажется, что короче - в данном конкретном случае лучше. Я тут видел в XBRL ЦБ таких регулярок в шаблоны наклал, что страшно становится. Например, они написали полное выражения для корректного диапазона дат (при том для текстового элемента открытой оси). И вот этот огород в двести символов (а может и больше) определенным образом напрягает. Они там все феврали вырисовали с учетом високосных лет, например. И все это мельтешит через "|" и цифры.
24. sanjakaiser 04.05.18 07:31 Сейчас в теме
К сожалению, отредактировать предыдущий мой пост уже нельзя, вот видео Богачева

https://www.youtube.com/watch?v=pV8wgI8haf4.

(Не реклама) Автор дает представление о том, что такое регулярки, почему их надо использовать при анализе ТЖ, ну и на практике показывает, куда это запрягать + Это тот человек, который принимает у вас экзамен 1С:Эксперт
Grigoripal; +1 Ответить
25. vasilev2015 1420 04.05.18 08:56 Сейчас в теме
(24) спасибо, полезная информация.
27. Dach 279 04.05.18 10:22 Сейчас в теме
Пользуясь случаем (простите за оффтоп еще раз), раз в ветке отметились мастера разбора ТЖ, хочу посоветоваться...

Есть большая БД, РИБ. Я верно понимаю, что если настраивать ТЖ, то это придется делать во всех узлах и потом выполнять некий сводный анализ? Втом числе, наверное и с помощью регулярок.

И еще момент... Мы встроили в конфу БСП и подсистему "Оценка производительности". Планируем выявить самые "нехорошие места" сначала ей, а потом, как мне кажется - можно уже и ТЖ более детально настроить... Может кто-то пользовался подсистемой? Поделитесь впечатлениями, плз.
28. vasilev2015 1420 04.05.18 12:32 Сейчас в теме
(27) я не очень мастер, но поскольку ветка моя - постараюсь ответить. Если у вас есть планы парсить, проводить анализ и искать узкие места в дочерних базах, то настраивайте там ТЖ. Если нет планов - "впрок" не делайте. Обязательно следите за местом, которое потребляет ТЖ.

Оценка производительности незаменима для общения с заказчиком: у вас апдекс был 0,6 а теперь 0,85 - извольте заплатить. Для себя апдекс тоже интересен: смотреть, что операторы проводят заказы по 59 секунд и удивляться их терпению. Или постфактум обосновать полезность приобретения нового raid. Менеджеры привыкли верить цифрам и красивым графикам.
30. lustin 05.05.18 02:19 Сейчас в теме
я конечно понимаю что регулярные выражения это просто - но точно не для 1С-ников. А вот ниже регулярки уже для них.

#Использовать verbal-expressions

// Проверим корректность формирования URL. Допустимые схемы - http[s] и ftp

ЭкранироватьПереданноеЗначение = Ложь;

ВербальноеВыражение = Новый ВербальноеВыражение()
    .НачалоСтроки()
    .Затем(
        Новый ВербальноеВыражение()
            .Найти("http")
            .МожетБыть("s")
            .Либо("ftp")
            .ВСтроку(),
        ЭкранироватьПереданноеЗначение
    )
    .Затем("://")
    .ЧтоНибудьНоНе(" ")
    .КонецСтроки();
    
ТекстРегулярногоВыражения = ВербальноеВыражение.ВСтроку();
Сообщить(ТекстРегулярногоВыражения); 

Показать



P.S. а вы никогда не задумывались над тем почему вместо изучения регулярок и сдачи их на экзамене просто не поменять формат журнала технологического. Сюрррреализм.
olegtymko; +1 Ответить
31. starik-2005 1965 06.05.18 13:57 Сейчас в теме
(30)
P.S. а вы никогда не задумывались над тем почему вместо изучения регулярок и сдачи их на экзамене просто не поменять формат журнала технологического. Сюрррреализм.
А какой формат ТЖ поможет сделать его анализ без поиска текста? Даже интересно стало...
Оставьте свое сообщение

См. также

Весёлые картинки о работе Performance Monitor на Windows Server 2016 Std по мотивам расследования потери производительности на базе 1С 7

Статья Системный администратор Нет файла v8 Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

Данная публикация посвящена одной особенности Performance Monitor на Windows Server 2016 Std. Как понимать графики Performance Monitor на Windows Server 2016 Std при расследовании проблем в работе 1С.

22.10.2019    380    EugeneSemyonov    4       

Мониторинг высоконагруженной системы 37

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad) Администрирование данных 1С

Высоконагруженной системе (более 8000 клиентских сессий) мониторинг необходим. Про опыт использования инструментов для мониторинга – самописной системы информирования, написанной на C#, и конфигурации «Центр контроля качества» в связке с системой отображения данных Grafana, на конференции Infostart Event 2018 Education рассказал Олег Репников.

13.09.2019    3539    Repich    4       

Использование Zabbix для сбора информации о серверных вызовах и управляемых блокировках с сервера 1С Предприятия, работающего на платформе GNU/Linux 72

Статья Системный администратор Программист Нет файла v8 Linux Бесплатно (free) Администрирование данных 1С Zabbix

Описанные в данном опусе механизмы ни в коей мере не противопоставляются тому, что реализует КИП от 1С или какие-либо другие инструменты (решения)! Это всего лишь еще один взгляд на "проблему", который может быть полезен в некоторых ситуациях.

10.09.2019    7018    Sloth    11       

Анализ производительности APDEX 65

Отчеты и формы Системный администратор Программист Внешний отчет (ert,erf) v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Отчет для просмотра и анализа замеров производительности в конфигурациях на базе БСП.

31.08.2019    2691    93    YPermitin    7       

Неочевидные проблемы производительности: важность системного подхода при анализе 50

Статья Программист Нет файла v8 Россия MS SQL Бесплатно (free) Производительность и оптимизация (HighLoad)

Часто программисты и 1С-ники сталкиваются с совершенно необъяснимыми на первый взгляд проблемами. Но это потому, что их внимание направлено только на один сегмент системы, а не на всю систему полностью. О том, почему нужно стараться смотреть на ситуацию комплексно, рассказал специалист по производительности компании SOFTPOINT Александр Денисов.

19.07.2019    4218    Филин    12       

Ловля блокировок на связке "Microsoft SQL server - 1С" 38

Статья Системный администратор Программист Нет файла v8 v8::blocking MS SQL Бесплатно (free) Производительность и оптимизация (HighLoad)

Материал относится к базам данных на связке «1С - MS SQL Server». Один из способов отлова блокировок в бд 1С . Переход к управляемым блокировкам через режим "Автоматический и управляемый".

16.07.2019    3599    fhqhelp    0       

Анти-оптимизация: как мы ускорили запрос в 4 раза, сделав его неоптимальным 57

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad) Практика программирования Решение задач на 1С:Специалист Разработка

В этой статье приведен пример неочевидной "оптимизации" запроса, которая противоречит всем правилам, описанным в книгах для подготовки к сертификации "1С:Эксперт по технологическим вопросам", а также преподаваемым на курсах подготовки экспертов.

02.07.2019    6067    igordynets    119       

Ускорение чтения правил обмена в УПП 1.3 в 20 раз! 66

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Способ оптимизации чтения правил обмена конвертации данных. Может понадобиться при большом размере правил и высокой периодичности обмена.

27.06.2019    4175    YPermitin    16       

Хотите снизить нагрузку на процессор сервера в 2 раза? 21

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

В статье рассмотрено влияние частого запуска регламентных заданий на процессор сервера 1С.

27.06.2019    4162    Дмитрий74Чел    6       

Непридуманные истории по оптимизации. История 1 82

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

Первая статья из планируемого цикла об оптимизации приложений на базе 1С. Без теории. Одна практика.

13.06.2019    7420    Repich    117       

Оптимизация: неэффективные запросы 6

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad) Практика программирования Разработка

В большинстве случаев основной причиной медленной работы системы при многопользовательском режиме работы является блокировка данных СУБД (говорим про клиент-серверную версию). Блокировка - это не есть хорошо или плохо, это жизненно необходимая вещь при построении прикладной логики работы системы. Но блокировки таблиц, записей могут быть как вполне законными, так и далеко не всегда оправданными в каждой конкретной ситуации. Одной из самых распространенных причин неоптимальной блокировки ресурсов является некорректное написание запросов.

13.06.2019    2669    slayer-ekb    10       

За 5 шагов добавляем мониторинг счетчиков производительности серверов MS SQL и 1С 90

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Статистика базы данных Производительность и оптимизация (HighLoad)

Мы расскажем и покажем, как добавить данные счетчиков производительности серверов 1С и MS SQL в нашу базу мониторинга за 15 минут. Приведем список наиболее важных из них, опишем основные особенности.

28.05.2019    7270    ivanov660    5       

Не думать о секундах свысока... 55

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Несколько примеров оптимизации типовой конфигурации УТ11. Описанные приемы подходят для многих других конфигураций.

21.05.2019    4410    vasilev2015    21       

Альтернативная стратегия управления блокировками 45

Статья Программист Архив с данными v8 v8::blocking 1cv8.cf Россия MS SQL Бесплатно (free) Производительность и оптимизация (HighLoad)

Данная публикация освещает одну из альтернативных стратегий блокирования данных на уровне MS SQL Server, которая недоступна средствами 1С, но может быть весьма полезной. Разбирается практический пример.

20.05.2019    3790    zhichkin    15       

Как работают управляемые блокировки 121

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Все типовые конфигурации содержат ошибки, потому как управляемые блокировки в 1С слишком уж "управляемые", при понижении уровня изоляции про некоторые "нюансы" просто забыли. Для создания и эксплуатации качественной системы, которая способна поддерживать транзакционную целостность данных при параллельной работе, информацию в этой статье желательно знать, хотя, конечно, ничего особо нового я не открыл.

29.04.2019    13206    comol    198       

Странное потребление места на диске С 33

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Решение проблемы постоянного роста папки %AppData%/Local/Temp.

26.04.2019    10631    kuzyara    12       

Включение встроенного в платформу механизма "Копии базы данных" и использование "Дата Акселератора". Новый стандартный механизм использования баз OLAP в 1С 50

Статья Системный администратор Программист Нет файла v8 Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

С версии 1С 8.3.14 в платформе появился новый функционал «Копии базы данных». В данной публикации я хочу рассказать, как включить использование данного механизма в платформе 1с и как его использовать для получения отчетов с копии базы данных, которая может быть вынесена на внешний сервер относительно текущей базы данных, а также как использовать систему «Дата акселератор», в которой база данных целиком размещена в оперативной памяти рабочего сервера кластера серверов «1С:Предприятия».

25.04.2019    8238    Elf1k    27       

5 простых шагов и 15 минут на разворачивание инструмента мониторинга проблем производительности базы 1С 201

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

В этой статье мы разберем механизм использования конфигурации "Анализ технологического журнала" на практике, и всего через 15 минут работы вы получите функциональный, удобный инструмент мониторинга проблем производительности базы 1С.

18.04.2019    17941    ivanov660    40       

Как разбить базу на файлы и не сойти с ума 108

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Разбиение базы данных 1C на файлы и последующее сопровождение. Нюансы, грабли и прочее.

06.04.2019    8726    YPermitin    29       

Как одно изменение конфигурации PostgreSQL улучшило производительность медленных запросов в 50 раз 124

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

В связи с санкциями и другими событиями сейчас все более и более актуальна тема перевода ПО компаний на отечественное и свободное программное обеспечение. Одной из самых востребанных СУБД на рынке на данный момент является PostgreSQL - надежная, высокопроизводительная и хорошо масштабируемая СУБД, которая является прямым конкуретном таким крупным компаниям с их топовыми продуктами, как Oracle, IBM и Microsoft. Однако каждый, кто переходит на PostgreSQL, сталкивается с трудностями, прежде всего с настройкой и производительностью. Не обошли проблемы с производительностью "слоника" и меня. Предлагаю вашему вниманию перевод статьи "How a single PostgreSQL config change improved slow query performance by 50x" автора Pavan Patibandla, которая мне помогла улучшить производительность PostgreSQL.

18.03.2019    9859    w.r.    23       

Простое программное решение проблем с блокировками SQL 17

Статья Системный администратор Программист Нет файла v8 v8::blocking 1cv8.cf Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

Описание одного из способов программного решения проблемы блокировок при проведении документов в клиент-серверной 1С.

06.03.2019    5895    dmitrydemenew    38       

Производительность сервера 1С и фоновые задания 63

Статья Системный администратор Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

В падении производительности сервера 1С зачастую виноваты не регламентные / фоновые задания, они выполняют полезную работу. Но задания нельзя оставлять «наедине» с базой.

05.02.2019    10806    user715208    38       

Новый режим реструктуризации (обновление базы данных на сервере в режиме v2) 168

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Данная статья скорее является заметкой и отчетом об успешном использовании нового механизма реструктуризации баз данных 1С. Актуально для больших баз данных.

31.10.2018    18488    Dach    46       

Нетривиальные подходы в решении всем известных проблем: ускорение «больших» документов в 1С и ускорение поиска по подстроке. Как добиться эффекта в разы? 62

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Часто у пользователей 1С поиск информации по большим спискам данных по подстроке занимает продолжительное время. Павел Баркетов рассматривает причины торможения запросов с поиском по подстроке и описывает возможности и подходы к их оптимизации и ускорению. Также в статье разобраны причины длительного проведения «больших» документов (более 10 000 строк) и даны рекомендации по ускорению этих операций.

30.08.2018    10877    gallam99    31       

Кейс: как мы разрабатывали систему автоматизации анализа ошибок, связанных со скоростью работы 1С 43

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Бурмистров Андрей рассказывает о создании инструмента по автоматизации анализа неоптимальных запросов в коде 1С. Он поднимает вопрос о предпосылках создания этого инструмента, рассказывает о возникших форс-мажорных ситуациях, с которыми столкнулась команда в процессе разработки, и о том, как они с ними справлялись.

27.08.2018    7494    Andreynikus    20       

3000 пользователей на трехъядерном Athlon – сверхтонкий веб-клиент для 1С 97

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Юрий Лазаренко поделится опытом ускорения 1С нестандартными методами, в том числе с помощью http-сервисов. Он расскажет, как с помощью сверхтонкого клиента для 1С и интеграции с сайтом удалось добиться ускорения 1С на порядок. Также в статье приведена статистика по отчету о нагрузочном тестировании сверхтонкого клиента для 1С:ITIL.

16.08.2018    11363    TitanLuchs    28       

Когда условие в срезе последних даже вредит 20

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Спойлер: оптимизатор MSSQL видит внешние, по отношению к срезу, условия, и строит план с их учетом.

05.08.2018    7756    nicxxx    105       

Оптимизация без оптимизации: как мы ускорили 1С в 10 раз без трудоемкой оптимизации запросов и алгоритмов. Практический опыт 80

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Можно ли ускорить 1С, не оптимизируя запросы, не разбивая транзакции и не наращивая оборудование? В статье Аверьянова Алексея рассмотрены три практических кейса повышения производительности системы без трудоемкой оптимизации: отложенное резервирование «в один поток», отложенное создание и проведение реализаций.

26.07.2018    13159    avryanovalexey    100       

Альтернативные технологии нагрузочного тестирования серверной части кода прикладных решений на платформе 1С 56

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Евгений Филиппов знакомит с альтернативными технологиями нагрузочного тестирования серверной части кода прикладных решений на платформе 1С. Он рассказывает об узких местах традиционной технологии нагрузочного тестирования и методах их обхода путем переноса работы с клиентских соединений на фоновые задания и изменения способа управления сеансами. Также автор приводит примеры с реальных проектов, подтверждающие жизнеспособность предложенных технологий.

12.07.2018    8275    jf2000    10       

Архитектура ИТ-системы на базе 1С в крупной организации. Часть 2. Чудес не бывает 81

Статья Системный администратор Нет файла v8 УТ11 Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

Развернуто отвечаю, как мы боремся с зависаниями системы и вообще решаем проблемы. С примерами, но без слайдов.

04.07.2018    12202    Repich    74       

Архитектура ИТ-системы на базе 1С в крупной организации 101

Статья Системный администратор Нет файла v8 УТ11 Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

В данной статье я хотел бы очень крупными мазками обрисовать архитектуру ИТ системы на базе 1С в крупных (более 1 тысячи пользователей) организациях. Она не несет какой либо образовательной цели, это просто попытка показать – «а как у нас».

02.07.2018    14742    Repich    112       

Взгляд на ошибки и платформу через призму HI-Load 53

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Поговорим об ошибках в целом и их влиянии на Hi-Load системы в частности. Может ли тут помочь платформа 1С? (да и должна ли в принципе?) Немного про сам Hi-Load на примере крупной БД. PS Данная статья написана по итогам доклада, прочитанного на конференции INFOSTART EVENT 2017 COMMUNITY.

18.06.2018    10024    Sergey.Noskov    27       

Неоптимальная работа запроса 128

Статья Программист Нет файла v8::Запросы Бесплатно (free) Производительность и оптимизация (HighLoad)

Шпаргалка к экзамену "Эксперт по технологическим вопросам".

27.04.2018    17003    vasilev2015    32       

Неоптимальности вида «план исполнения запроса "испортился"» - поиск и исправление 69

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

Рассматривается один из частых типов проблем в рабочих базах (второй после блокировок, пожалуй... впрочем, часто и тесно с ними связанный). Материал относится к базам данных на связке «1С - MS SQL Server».

05.02.2018    13755    fhqhelp    20       

Пример поиска неоптимальности при загрузке SQL-сервера по CPU на 100% 83

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

Вечер пятницы, ничто не предвещало.. Звонок из техподдержки: "центральная база розничной сети лежит". Далее расследование причин.

23.12.2017    15332    fhqhelp    32       

Исследование технологического журнала 1С при помощи регулярных выражений в блокноте 129

Статья Системный администратор Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Все из тех, кто пробовали сдать на сертификат "Эксперт по технологическим вопросам 1С", сталкивались с методикой ЦКТП - разбор файлов технологического журнала при помощи консоли bash. Я, в свою очередь,внёс изменения в данную методику. Мне хотелось достичь более понятного вида и сфокусироваться на Perl, в качестве предпочтительного средства обработки файлов ТЖ. Вот что из этого вышло:

30.10.2017    24297    MrWonder    38       

Вопросы разработки, анализа производительности и оптимизации приложений 1С под управлением СУБД ORACLE 16

Статья Системный администратор Программист Нет файла v8 Oracle Бесплатно (free) Производительность и оптимизация (HighLoad)

Я являюсь сотрудником Комсомольского-на-Амуре филиала компании «Сухой». Наше предприятие производит боевую авиационную технику и комплектующие для гражданской авиационной техники. В статье я вам расскажу про свой опыт работы со связкой 1С и СУБД ORACLE.

05.09.2017    10465    user597755_vices2015    2       

Оптимизируй это! Или MS SQL и Экспертный подход творят чудеса! 207

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

В статье речь пойдет про взаимодействие сервера 1С с MS SQL. Мы очень часто слышим, как важно оптимизировать все критические участки системы заблаговременно, в плановом режиме, как надо, «от и до» во всех деталях. Но в реальной жизни бывает по-другому. Очень часто клиенты обращаются к нам, когда система уже не дает работать: «спасите, помогите, болит очень сильно, надо решать». Об одном из таких случаев я и хотел бы вам сегодня рассказать.

11.07.2017    29003    R.Tsarenko    32       

Планы запросов - это просто! 291

Статья Программист Нет файла v8::Запросы Бесплатно (free) Производительность и оптимизация (HighLoad)

Наверное, каждый 1С-ник задавался вопросом "что быстрее, соединение или условие в ГДЕ?" или, например, "сделать вложенный запрос или поставить оператор В()"? В данной статье я не дам вам исчерпывающих инструкций по чтению планов запроса. Но я постараюсь объяснить доходчиво - что это такое и с какой стороны к ним подойти.

04.07.2017    31265    Evil Beaver    58       

PostgreSQL на Windows – реальная альтернатива для высоконагруженных систем на базе 1С 157

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Многие интересуются PostgreSQL, но не знают, насколько хорошо будет она работать с уже существующими системами. «Инфософт» - одна из первых компаний, кто опробовал PostgreSQL на Windows. О своем опыте перехода рассказывает руководитель отдела информационных технологий компании.      

23.06.2017    37218    a.doroshkevich    113       

Ускорение в 100 раз. Решаем проблему блокировок 330

Статья Программист Нет файла v8 v8::УФ 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Я являюсь автором и тренером курсов по оптимизации и повышению производительности в 1С. Большинство людей приходят ко мне на обучение, желая разобраться со своими проблемами, и я очень часто слышу от них: «эти блокировки замучили, достали, жизни нет, что делать – не знаем. Технологический журнал включали, галочки ставили, форумы читали – ничего не помогает». Я уверен, что эта тема актуальна для многих из вас, поэтому в статье, не вдаваясь глубоко в подробности, я хочу вам дать некоторые конкретные рекомендации, которые вы сможете применить у себя и сразу получить ощутимый эффект. Например, если у вас запрос из-за блокировок выполняется 15 секунд, то после оптимизации он начнет выполняться за 15 миллисекунд. Это обычная практика, никакой фантастики – все это можно сделать.

13.06.2017    60431    Andreynikus    34