Как стать автором
Поиск
Написать публикацию
Обновить
250.64

Базы данных *

Все об администрировании БД

Сначала показывать
Период
Уровень сложности

Почему много JOIN в запросе это плохо или не мешайте оптимизатору

Время на прочтение6 мин
Количество просмотров26K
image

Недавно столкнулся с одним приложением, которое генерировало запросы к БД. Я понимаю, что этим никого не удивишь, но когда приложение стало тормозить и мне пришло задание разобраться в чём причина, я был сильно удивлён, обнаружив эти запросы. Вот с чем иногда приходится иметь дело SQL Server:
Читать дальше →

Методика поиска причин низкой производительности сервера 1с

Время на прочтение5 мин
Количество просмотров43K
Недавно столкнулся с необычным случаем, у заказчика отвратительно работал сервер 1с, чтобы было понятно о чем идет речь, приведу такой пример — запуск толстого клиента мог занимать десяток минут. Когда измерили тестом Гилева, то результат был ниже худшего. Посмотрев ближайшие результаты замеров других пользователей, я понял, что это не единственный случай.
Речь не идет об оптимизации, когда надо поднять на 10-20% производительность, речь идет о поиске причин низкой производительности, и её устранению. Согласитесь это несколько разные вещи. На просторах интернета множество статей как раз о повышении производительности, которые ограничиваются только настройкой сервера 1с и (или) настройкой сервера баз данных. А вот статей, рассматривающих случаи низкой производительности, особенно если причин несколько, и эти причины находятся на разных уровнях, я не встречал.
Обычно администраторы бросаются смотреть результаты мониторинга. Тот случай, с которым я столкнулся, показывал практически нулевую загрузку процессора, наличие свободной ОЗУ, отсутствие очереди у сетевого интерфейса, и только очередь к диску показывала, что не все в порядке. Пришлось устроить проверку по полной программе, это, конечно, занимает много времени, требует исключения сервера из рабочего процесса, но зато дает результат. Возможно для кого-то подобный подход недопустим, более того, некоторые считают это непрофессиональным подходом, но им я ничем помочь не смогу.
Читать дальше →

Инициализация данных о рейсах в системе AIRCOM Server

Время на прочтение7 мин
Количество просмотров6.9K

Немного теории


ACARS (Aircraft Communications Addressing and Reporting System) — цифровая система связи, применяемая в авиации для передачи коротких, относительно простых сообщений между воздушным судном и наземными станциями, либо через прямую радиосвязь, либо через спутниковые системы.
AIRCOM – Сервер (шлюз) обмена сообщениями между различными сетями. Производитель — компания SITA. Связывает бортовое оборудование ACARS через сети ARINC с системой планирования полетов LIDO OC (Jeppesen Jet Planner или др.), электронной почтой, SITAtex, телефонией, файловым обменом и другими необходимыми информационными системами, используемые в авиакомпании.

Принцип работы AIRCOM Server


Информационная система SITA AIRCOM Server реализована на MS SQL и используется для обеспечения воздушных судов авиакомпании данными о маршруте, ветру на эшелонах, погоде и для обмена сообщениями «экипаж — ЦУП — экипаж». AIRCOM Server настроен на бортовое оборудование ACARC и функционирует совместно с ним. AIRCOM Server является критически важной информационной системой для обеспечения полетов.
Читать дальше →

Tibero часть 2. Переснос проекта с Oracle

Время на прочтение7 мин
Количество просмотров9.8K
Первая часть моих приключений с Tibero тут

Для тестирования совместимости Tibero c Oracle я решил проверить, будут ли работать на нем любимые мною PL/SQL библиотеки, а именно:
https://github.com/mortenbra/alexandria-plsql-utils/
Тестирование началось с JSON_UTIL_PKG. Очень полезная функция позволяющая быстро генерировать JSON-ответ.
Читать дальше →

Извлечение данных из БД 1С: проблемы с перечислениями

Время на прочтение4 мин
Количество просмотров67K
Решил написать статью о том, как вытягивать данные из 1С путем SQL запросов. Все нижесказанное касается 1С версии 8.2, оно также должно работать и в 1С версии 8.1. Особое внимание уделено проблеме с извлечением заголовков перечислений.

Культурный способ

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

В этом случае все работает предельно хорошо: зоны ответственности разделены, если найдена ошибка в данных отчета – ее вначале ищут в кубе, если в кубе все ОК – ищут в ХД, если в ХД все ОК – ищут в ETL, если в ETL все хорошо – значит пускай 1С-программист сам разбирается где у него ошибка в обработке, заполняющей «буферную БД».

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

Не очень культурный способ

Вот это собственно и есть этот способ – «сделать SQL запрос на 1С-базу». Главная задача – корректно написать сами запросы. Я думаю, ни для кого не есть секретом, что в 1С структура данных «хитрая», и что поля и таблицы имеют замысловатые названия. Задача проектировщика ETL – вытянуть данные из этой структуры.
Читать дальше →

Big Data: Backup делать нельзя работать без него

Время на прочтение4 мин
Количество просмотров9.2K
За время работы администратором баз данных я выработал для себя одно правило, которого придерживаются многие DBA. Это «золотое» правило всех администраторов баз данных – не делай ничего серьезного с базой данных, если у тебя нет бэкапа. Если ты собрался серьезно изменить параметры базы данных, провести операции по техническому обслуживанию базы данных и т.п. – то всегда перед этим надо выполнить операцию резервного копирования. Этот принцип достаточно долго работал и оправдывал себя, и даже в нескольких случаях помогал восстановить базу данных на определенный момент времени.
Читать дальше →

Как работает база данных Firebird, часть 4

Уровень сложностиСложный
Время на прочтение18 мин
Количество просмотров276

В первой части мы разбирались, как Firebird забирает строку таблицы с диска. Во второй и третьей частях мы разбирались, что происходит с прочитанной строкой в процессе выполнения SELECT-запроса. Но остался неотвеченным такой вопрос: а как указать на строку таблицы, которую надо прочитать? Этим вопросом мы и займёмся.

Читать далее

Оптимизация поисковых систем: баланс между скоростью, релевантностью и масштабируемостью

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров433

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

Эта статья основана на нашем выступлении на конференции QCon San Francisco 2024, где мы рассмотрели эволюцию подходов к индексированию данных, их извлечению и ранжированию. Для платформ вроде Uber Eats, обрабатывающих сложные запросы на больших объёмах данных, оптимизация поиска — это серьёзный вызов, требующий продвинутых стратегий: индексирования, шардинга и параллельной обработки запросов.

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

Читать далее

Если не хватает памяти для процессинга модели SSAS: варианты решения проблемы

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров397

Всем привет! Меня зовут Николай, я DBA-разработчик SimbirSoft. Если вам приходилось иметь дело с табличной моделью данных SQL Server Analysis Services (SSAS), то вы наверняка знаете, что на сервере она работает только в режиме In-Memory и использует под свои процессы выделенную часть оперативной памяти. А когда памяти недостаточно для нормальной работы, то возникает системное сообщение о ее нехватке.

В этой статье я кратко рассмотрел причины и общие стратегии по решению данной проблемы, а также рассказал о своем опыте на примере табличной модели объемом около 100 ГБ на MS SQL Server 2019 Ent.  

Погрузиться в чертоги

Развёртывание боевого кластера Cassandra. Часть 2

Уровень сложностиСложный
Время на прочтение15 мин
Количество просмотров2.5K

Это продолжение цикла, рассказывающего о практике развёртывания производственного кластера Cassandra. В первой части мы начали продвигаться вот по такому плану:

1. Анализ рабочей нагрузки и требований
2. Разработка схемы данных
3. Настройка хостовых машин
= ВЫ НАХОДИТЕСЬ ЗДЕСЬ =
4. Настройка конфигурации Cassandra
5. Настройка топологии кластера
6. Подключение Prometheus Cassandra Exporter
7. Подключение Prometheus Node Exporter
8. Вывод всех метрик в Grafana
9. Проведение нагрузочного тестирования
10. Дополнительный тюнинг по результатам теста

Продолжим?

Читать далее

Зачем бизнесу управляемые базы данных в облаке

Время на прочтение7 мин
Количество просмотров2K

Выкатили новый проект. База — на PostgreSQL. Все работает. DBA в штате нет, база крутится на виртуалке, обновления никто не трогал, мониторинга нет. И вот ночь, все падает. Начинается экстренный чат, поиск багов, попытки восстановиться из бэкапа… если он вообще был.

Так случается, когда инфраструктура и сопровождение баз данных остаются на совести команды разработки. Чтобы избежать этого, все чаще используются управляемые СУБД в облаке — сервисы, где ключевые задачи закрываются автоматически или силами провайдера.

На связи продуктовая команда РТК-ЦОД, и в этой статье мы расскажем, как устроены облачные базы и зачем они бизнесу.

Читать далее

Когда 0 в продажах — аномалия? CUSUM для поиска проблем в ритейле

Время на прочтение11 мин
Количество просмотров1.9K

Всем привет! Меня зовут Костя, и в этой статье я продолжу рассказ моей коллеги Анастасии из команды доступности Magnit Tech о том, как можно искать проблемные товары на полках магазинов, опираясь лишь на данные по дневным продажам и остаткам товара в магазине.

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

Читать далее

Как я создавал коллекцию фильмов

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2.7K

Это было очень давно, году примерно в 1997. Однажды мне очень ярко приснился и хорошо запомнился следующий сон: как будто мы купили новый телевизор и видеомагнитофон. И несколько видеокассет.

Во сне это был не просто символ богатства, в то время такое событие стало бы целым культурным взрывом в рамках конкретно взятой семьи и конкретно взятого дома. Это были 90-е годы, зарубежная культура лилась на нас водопадом. Быть на передовой прогресса означало смотреть все новые фильмы на видео у себя в гостиной.

У моего друга детства Сашки был дома новый телевизор и видак, у моего друга детства Вовки дома был импортный телевизор и видак, у моего хорошего знакомого Димки был новый телевизор и видак. А у нас был старый советский черно-белый телевизор, который ловил две программы, в то время как всё самое интересное показывали по третьей. По финансовой причине то, что я увидел во сне, было для нас в то время недостижимой мечтой.

Мы ходили смотреть фильмы в основном к Сашке. Его старший брат где-то доставал кассеты с новинками, и всю классику 90-х я пересмотрел в первый раз именно у него дома. Зачастую в компании нас было 5 человек на сеансе просмотра какого-нибудь «От заката до рассвета» или «Смертельной битвы».

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

Прошло 27 лет. У меня появился дом в деревне с русской печкой, и в декабре 2024 года я создал коллекцию фильмов в высоком качестве. Только тогда всё сложилось, как во сне.

Лучше чем во сне.

Читать далее

Ближайшие события

Приходят как-то аналитики на офисную кухню, а там дата-инженеры в нарды играют…

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4.8K

Один из игроков — я, Кирилл Красновид, тимлид BI-команды в Профи.ру. Наша задача — делать так, чтобы каждый быстро и удобно получал нужную информацию без лишней суеты и ожиданий. 

Поэтому мы стараемся все автоматизировать и оптимизировать. Сегодня расскажу, как решаем эти задачи, а ещё про собственные хранилища аналитиков и bus-фактор.

Читать далее

MySQL репликация: проблемы, решения, практические рекомендации

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.3K

Вопрос "какая репликация MySQL лучшая?" звучит часто. Ответ, как водится в сложных системах, – "зависит от ситуации". Нет универсального решения. Выбор оптимального метода репликации всегда компромисс. Приходится искать золотую середину между тем, насколько данные должны быть одинаковыми везде, скоростью работы, бесперебойностью и тем, насколько сложно все это настроить. Посмотрим внимательнее на главные способы. Это поможет сделать осознанный выбор.

Читать далее

Тестирование БД в легаси-проекте: повышение качества кода и стабильности системы в «Цифровой карте магазина»

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров941


В этой статье я хотел бы поделиться с вами моим опытом написания юнит-тестов для базы данных (БД) в рамках легаси-проекта. Я выбрал формат ретроспективы, чтобы показать, как все начиналось, к чему мы пришли и какой путь был пройден в разработке юнит-тестов для проекта «Цифровая карта магазина». Возможно, статья будет полезна начинающим разработчикам баз данных или тем, кто хочет начать писать юнит-тесты для Oracle, но не знает, с чего начать.

Читать далее

Путеводитель по техническим транзакциям с Camunda 8 и Spring

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.2K

Интересно, как работают технические транзакции с Camunda и фреймворком Spring? Узнайте больше о транзакционном поведении в этом посте.

Читать далее

Авторизация в PostgreSQL через доменные группы

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.8K

Переезд с Microsoft на Linux - это то, с чем сталкивается последнее время практически каждый инженер, и меня сия чаша тоже не миновала. Но за годы работы с MS я привык раздавать права на все что угодно через группы в AD и отказываться от этого совершенно не хотелось.

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

Читать далее

Как я запустил 99* контейнеров с Oracle Database 21c Express Edition внутри Podman на отечественной ОС

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров5.9K

В статье рассматривается пошаговое создание образов «с нуля» для контейнерного движка Podman. Внутрь контейнера «упакована» база данных Oracle Database 21c Express Edition. И всё это отечественной операционной системе РЕД ОС.

*2 контейнера

Зачем?

Создаем коллективный интеллект: обмен опытом в команде технических писателей

Время на прочтение5 мин
Количество просмотров889

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

Читать далее