• Почему запрос с count долго выполняется?

    @Akina
    Обратите внимание.

    Без группировки:
    Covering index skip scan for deduplication on cdrs using fileDate over ('2024-03-18' <= fileDate <= '2024-03-24')


    С группировкой:
    Covering index range scan on cdrs using fileDate over ('2024-03-18' <= fileDate <= '2024-03-24')


    То, что я и говорил - при простой выборке используется partition pruning, но во время группировки он благополучно херится. И, как итог - сортировка 50 млн. записей.
    Написано
  • Почему запрос с count долго выполняется?

    @Akina
    Ну если партиции на каждый день - то почему запрос недельный? Сервер - он же тупой, и у него не хватит мозгов понять, что каждая группа в своей партиции. Как итог - сперва всё в кучу, а потом сортировка и подсчёт.

    Делай отдельные COUNT(*) по партициям (что, кстати, позволяет и соотв. хинт воткнуть), а потом UNION ALL. А если такого типа запросы частые - то вообще используй предагрегацию.

    движок InnoDb, поле fileDate тип date, партиции на каждый день, индекс на fileDate стоит
    запрос

    SHOW CREATE TABLE - в текст вопроса.
    Написано
  • Причина падения ЛВС?

    @Akina
    vinsler,
    я бы тоже посмотрел ))) это нужно задать вопрос автору.

    Прошу пардону, был невнимателен. И да, роутер запросто может быть и провайдерский. У меня на одной площадке, например, именно так - роутер провайдера, даёт 4 физических порта и DHCP на 64 адреса (хотя и не запрещает дальше поставить ещё и свой роутер - но нафига?).
    Написано
  • Причина падения ЛВС?

    @Akina
    vinsler, нарисуйте подробную схему. С указанием каждой единицы оборудования, настройки каждого интерфейса, точного указания типа (сообщения об) ошибки при каждом тесте.
    Написано
  • Причина падения ЛВС?

    @Akina
    То есть:

    оборудование провайдера - медь - конвертор - оптика - конвертор - медь - один неуправляемый коммутатор - 15 компьютеров.

    Я верно понимаю? больше нигде и ничего не подключается?
    Написано
  • Как оптимизировать запрос через Sqlalchemy?

    @Akina
    WishesFire,
    Меня больше интересует использование union, список фильтрации большой, как это лучше сделать?
    там просто список id, [1, 2, 3, ...]


    В результате вместо WHERE cashless_card.company_id IN (1,2,3)должно получиться
    ...
    INNER JOIN ( SELECT 1 AS company_id UNION ALL
                 SELECT 2 UNION ALL
                 SELECT 3
                 ) AS criteria ON cashless_card.company_id = criteria.company_id

    А уж как это отобразить в твоём фреймворке- я лично фиг знает.

    Ещё вариант - создать temporary table, слить в неё список и INNER JOIN этой таблицы. Дополнительный профит - эту таблицу можно проиндексировать.
    Написано
  • Как оптимизировать запрос через Sqlalchemy?

    @Akina
    WishesFire,
    индексы есть до этих полей

    Это вот к чему сказано? Три индекса по отдельным полям и один композитный по трём полям - это две большие разницы. И я указываю на необходимость именно композитного индекса, ибо одна копия таблицы-источника не может использовать более чем один индекс, соответственно три отдельных индекса бессмысленны, использоваться может лишь один из них.

    C offset это лучшее решение, чем вытаскивать все записи за один запрос

    Ну тут хозяин - барин. Если на каждое листание идёт новый запрос, с другим OFFSET - ну, наверное, да. Хотя можно было бы подумать о выборке в temporary table и дальнейший просмотри исключительно через неё, будет куда как быстрее. А если запрос выполняется единожды, а потом листается кэшированное локально содержимое - то вовсе даже не очевидно.
    Написано
  • Как оптимизировать запрос через Sqlalchemy?

    @Akina
    chemdev,
    Также хочу отметить, что необходимость преобразования каждого столбца намекает на ошибку проектирования.

    С учётом того, что функция применяется даже к полю A.id, которое почти наверняка синтетический первичный ключ таблицы, тут проблемы посерьёзнее будут...
    Написано
  • Как оптимизировать запрос через Sqlalchemy?

    @Akina
    WishesFire,
    Может coalesce оказывать влияние на производительность?

    Оно, конечно, оказывает. Но настолько незначительное, что этим можно смело пренебречь, а в большинстве случаев даже не получится устойчиво детектировать - эффект от функции будет меньше точности измерения.
    Написано
  • Как разложить число на n слагаемых?

    @Akina
    Формулы со случайными числами не подходят, тк. данные должны хранится не только в печатном, но и в электронном виде.

    в идеале задача такая, чтоб в ячейку ввести общий пробег за месяц, а формула сама распределила по дням

    Пишешь не формулу, а VBA-процедуру Worksheet_Change, которая выполняет разбиение и записывает в ячейки вычисленные статические значения.
    Написано
  • Есть ли ошибки в данной топологии сети?

    @Akina
    Ты б хотя бы рассказал, что за фирму ты "вымышлил". Что в ней вообще есть, какие задачи решаются в сети...
    Написано
  • Как правильно настроить маршрутизацию?

    @Akina
    Трасерт с влан10 до адреса 172*** обрывается на L3 (192.168.4.5)

    Следующим узлом в трассе должен быть 192.168.0.2. Вывод простой - именно 192.168.0.2 не имеет маршрута в 192.168.4.0. Проверяется просто - при трассировке на 192.168.0.2 есть входящие ping от 192.168.4.ххх, но нет исходящих pong.
    Впрочем, это может быть не единственная проблема.

    Более сложные варианты - например, кто-то поигрался с TTL на 192.168.0.2,- не рассматриваю.
    Написано
  • Как правильно настроить маршрутизацию?

    @Akina
    Насколько я понимаю, вот эта фигня со стрелками во все стороны - это маршрутизатор. Который маршрутизирует между подсетями 192.168.0.0/22 и 192.168.4.0/22. Это так?

    В подсети 192.168.0.0/22, как я понимаю, непосредственно на узлах этой сети (из VLANID=20) прописан статически (либо передаётся по DHCP) маршрут в 172.16.0.0/16 через 192.168.0.2. Это так?

    Если пока всё верно, и на маршрутизаторе уже присутствует маршрут в 172.16.0.0/16 через 192.168.0.2, то маршрутизатор обязан все пакеты, приходящие из VLANID=10 ему на 192.168.4.5, маршрутизировать в 192.168.0.2 в соответствии с маршрутом.

    Но не работает. Значит, для начала - трассировка на 172.16.0.10. Надо понять - добираются пакеты до 192.168.0.2 или нет. Если нет - разбираться с маршрутизацией и фильтрацией на маршрутизаторе. Если да - то разбираться с VPN, проблема там. Например, узлы в 172.16.0.0/16, или VPN-шлюз на удалённой стороне - могут просто не знать, куда слать трафик для подсети 192.168.4.0/22... или что его вообще надо пихать в VPN.
    Написано
  • Как подсчитать и вывести количество совпадений значения в строке при запросе в MySQL?

    @Akina
    Нужно подсчитать именно дубликаты по паре (name, phone)? то есть если номер один, но имена разные - это НЕ дубликаты, и не должны подсчитываться?
    Написано
  • Кодировка и соединение БД битрикс в utf8mb4?

    @Akina
    чреват ли чем-то такой метод?

    В общем случае да.

    Есть одна мелочь в определении collation, на которую обычно не обращают внимания - это space padding. Некоторые collation учитывают хвостовые пробелы при сравнении, некоторые нет. Если эта характеристика не изменяется - то гарантированно всё ровненько. Иначе - надо проверять и убеждаться, что учёт хвостовых пробелов не влияет на поведение программного обеспечения.

    См. Trailing Space Handling in Comparisons.

    В данном же конкретном случае проблем не будет - и у utf8mb3_unicode_ci, и у utf8mb4_unicode_ci значение Pad_attribute одинаково и равно PAD SPACE. Т.е. сделанная замена никак не изменяет поведения.
    Написано
  • Как найти начальную точку для определения маршрутов в двумерном массиве?

    @Akina
    DZHAMBUALT, не-а, я с JScript не работаю, а копаться в доках мне тупо лень.
    Написано
  • Как правильно написать sql запрос агрегации для фасетного фильтра?

    @Akina
    Barancheek,

    я не знаю как найти чёткий структурированный материал по всей этой теме

    STFW "проектирование базы данных".
    Написано
  • Как правильно написать sql запрос агрегации для фасетного фильтра?

    @Akina
    Barancheek, я написал это к тому, что на неправильной структуре проблемы будут только копиться. Гораздо лучше сейчас, пока ещё не поздно, пересмотреть структуру и сделать её не по некоему мистическому наитию, а изучить вопрос (анализ предметной области, построение ER-диаграммы) и уже на основе полученных знаний заново создать структуру. На которой большинство типовых задач (а фасетный поиск - задача типовая) давно решены и даже оптимизированы.
    Написано