0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Я уже несколько лет работаю с базами данных в разных компаниях. На каждом новом месте существуют свои установленные правила и традиции по работе с СУБД (система управления базами данных). Где-то фиксируют каждое изменение, где-то важен только результат выполненной работы, и все изменения передаются из уст в уста. Могу сказать, что постоянная фиксация изменений очень помогает в работе, так как к базе могут обращаться несколько программистов.</p>
1
<p>Я уже несколько лет работаю с базами данных в разных компаниях. На каждом новом месте существуют свои установленные правила и традиции по работе с СУБД (система управления базами данных). Где-то фиксируют каждое изменение, где-то важен только результат выполненной работы, и все изменения передаются из уст в уста. Могу сказать, что постоянная фиксация изменений очень помогает в работе, так как к базе могут обращаться несколько программистов.</p>
2
<p>Для себя могу выделить основные моменты, которые выручали меня неоднократно.</p>
2
<p>Для себя могу выделить основные моменты, которые выручали меня неоднократно.</p>
3
<ol><li><p>Перед правкой (выполнение update каких-то таблиц) обязательно сделать backup базы данных. 1.1 для MS SQL: sql management studio есть встроенная задача для базы - "Создать резервную копию" 1.2 для postgresql: Есть одно замечание: при использовании первого варианта размер бэкапа огромный. 1.2.1 pg_dump -U %имя пользователя% -Fc -d %имя базы% > %path%%name_dump%.dump - некорректно создает файл так как использует стандартный PIPE - происходит ошибка кодировки 1.2.1pg_dump -U %имя пользователя% -Fc -d %имя базы% -f - решает проблему кодировки</p>
3
<ol><li><p>Перед правкой (выполнение update каких-то таблиц) обязательно сделать backup базы данных. 1.1 для MS SQL: sql management studio есть встроенная задача для базы - "Создать резервную копию" 1.2 для postgresql: Есть одно замечание: при использовании первого варианта размер бэкапа огромный. 1.2.1 pg_dump -U %имя пользователя% -Fc -d %имя базы% > %path%%name_dump%.dump - некорректно создает файл так как использует стандартный PIPE - происходит ошибка кодировки 1.2.1pg_dump -U %имя пользователя% -Fc -d %имя базы% -f - решает проблему кодировки</p>
4
</li>
4
</li>
5
<li><p>Проверить (по возможности) с каким функционалом связаны таблицы, в которые вносятся изменения. Если это продуктовая база, то выполнение каких-либо действием строго после работы конечных пользователей или программистов, которые разрабатывают функционал, обращаясь к базе.</p>
5
<li><p>Проверить (по возможности) с каким функционалом связаны таблицы, в которые вносятся изменения. Если это продуктовая база, то выполнение каких-либо действием строго после работы конечных пользователей или программистов, которые разрабатывают функционал, обращаясь к базе.</p>
6
</li>
6
</li>
7
<li><p>Если необходимо найти какие-то функции или хранимые процедуры в базе, расположенной на удаленном сервере у заказчика, где установка каких-то дополнительных инструментов в менеджер не представляется возможным, воспользоваться скриптом: 3.1 для MS SQL: declare @SearchText varchar(500) SET @SearchText = 'activity'; --в кавычках указать слово, которое, возможно, может использоваться в функции exec z_FindSQL @SearchText 3.1 для postgresql: select proname,prosrc from pg_proc where prosrc like '%activity%';</p>
7
<li><p>Если необходимо найти какие-то функции или хранимые процедуры в базе, расположенной на удаленном сервере у заказчика, где установка каких-то дополнительных инструментов в менеджер не представляется возможным, воспользоваться скриптом: 3.1 для MS SQL: declare @SearchText varchar(500) SET @SearchText = 'activity'; --в кавычках указать слово, которое, возможно, может использоваться в функции exec z_FindSQL @SearchText 3.1 для postgresql: select proname,prosrc from pg_proc where prosrc like '%activity%';</p>
8
</li>
8
</li>
9
</ol><ol><li>Для проверки скрипта можно через каждый кусок кода запускать "select 1, select 2, select 3"</li>
9
</ol><ol><li>Для проверки скрипта можно через каждый кусок кода запускать "select 1, select 2, select 3"</li>
10
<li>Бывает такое, что при заполнении какого-то поля на сайте слишком большим количеством информации может возникнуть ошибка. Как вариант причиной может стать переполнение полей MLSTRING. В этом случае стоит выполнить запрос: select ActivityId as Id, datalength(%название столбца, который отвечает за это поле на сайте%) as DoneWorkLen, ,%название столбца, возможно отражающего другую полезную информацию%.GetLangOrDefault('ru') ,* from %название таблицы% where ActivityId = 12345 -- ПОМЕНЯТЬ ДЛЯ ПРОЕКТА order by DoneWorkLen desc</li>
10
<li>Бывает такое, что при заполнении какого-то поля на сайте слишком большим количеством информации может возникнуть ошибка. Как вариант причиной может стать переполнение полей MLSTRING. В этом случае стоит выполнить запрос: select ActivityId as Id, datalength(%название столбца, который отвечает за это поле на сайте%) as DoneWorkLen, ,%название столбца, возможно отражающего другую полезную информацию%.GetLangOrDefault('ru') ,* from %название таблицы% where ActivityId = 12345 -- ПОМЕНЯТЬ ДЛЯ ПРОЕКТА order by DoneWorkLen desc</li>
11
</ol><p>.GetLangOrDefault('ru') - переводит содержимое столба на русский язык</p>
11
</ol><p>.GetLangOrDefault('ru') - переводит содержимое столба на русский язык</p>