Скидки до 28% + 2-ая профессия бесплатно и подарки на 50 000₽

Главная | Все статьи | Дневник студента

Найти хранимую процедуру и не потерять себя

Время чтения статьи ~2 минуты
Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции
Найти хранимую процедуру и не потерять себя главное изображение

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

Для себя могу выделить основные моменты, которые выручали меня неоднократно.

  1. Перед правкой (выполнение 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 - решает проблему кодировки

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

  3. Если необходимо найти какие-то функции или хранимые процедуры в базе, расположенной на удаленном сервере у заказчика, где установка каких-то дополнительных инструментов в менеджер не представляется возможным, воспользоваться скриптом: 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%';

  4. Для проверки скрипта можно через каждый кусок кода запускать "select 1, select 2, select 3"

  5. Бывает такое, что при заполнении какого-то поля на сайте слишком большим количеством информации может возникнуть ошибка. Как вариант причиной может стать переполнение полей MLSTRING. В этом случае стоит выполнить запрос: select ActivityId as Id, datalength(%название столбца, который отвечает за это поле на сайте%) as DoneWorkLen, ,%название столбца, возможно отражающего другую полезную информацию%.GetLangOrDefault('ru') ,* from %название таблицы% where ActivityId = 12345 -- ПОМЕНЯТЬ ДЛЯ ПРОЕКТА order by DoneWorkLen desc

.GetLangOrDefault('ru') - переводит содержимое столба на русский язык

Аватар пользователя Teresa
Teresa 18 февраля 2021
1
Похожие статьи
Рекомендуемые программы
профессия
Верстка на HTML5 и CSS3, Программирование на JavaScript в браузере, разработка клиентских приложений используя React
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Ruby, Разработка веб-приложений и сервисов используя Rails, проектирование и реализация REST API
5 месяцев
c опытом
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря