SQL - Модуль для работы с SQL базами данных

Делитесь модулями
  • @DoctorKrolic said in SQL:

    @IvanM Присоединяюсь. В момент, кода выполняется код на ноде, она кушает слишком много ЦП для поставленной ей задачи. Просто прочитать что-то из экселя - 30%, а то и бльше

    Какого размера табличка? Или может табличку тут оставите, что бы проверить ради интереса.Я работал только с небольшими таблицами и не замечал нагрузки.

  • @UserTrue Табличку оставить не могу. Это мои акки. Но вот параметры: более 300 строк, 5 колонок, 1 из которых - email'ы и одна - прокси в полном виде (http:логин:пароль:ip:порт). Это уже как минимум выглядит достаточно массивно. Практически одновременно из этой таблицы читают данные ~30 потоков. Происходит пик потребления ЦП у процесса ноды, значения доходят до ~30%. Через несколько секунд нагрузка падает до ~0

  • @DoctorKrolic said in SQL:

    Практически одновременно из этой таблицы читают данные ~30 потоков.

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

    Либо используйте БД, либо читайте свою табличку один раз и кидайте данные в ресурс.

  • @UserTrue Спасибо за совет

  • @DoctorKrolic, попробуйте данную Excel.zip версию модуля

  • @GhostZ Воу, а вы, однако, очень продуктивно работали за последние месяцы) Спасибо за обновлённую версию. Вот сейчас на скорую руку сделал тестовый скрипт, который тупо в 10 потоков построчно перебирает таблицу в 300 строк, и особо разницы в потреблении ЦП нодой не увидел, и в старой, и в новой версии 25-30%. Но это явно не тот результат, который будет в нормально составленном скрипте.

  • @GhostZ в чем отличие данной версии,можно больше информации для пользователей?

  • @efbb4956bf Несколько новых действий вы, похоже не заметили. + багфиксы. Я лично убедился в одном из них. Да и, думаю, в changelog'е новой версии будет указано что конкретно изменили/пофиксили. Это ж ведь модуль, который 100% в новую сборку попадёт

  • @efbb4956bf, фиксы и улучшения кода, новые действия получения/изменения размеров строк/столбцов, была изменена функция проверки блокировки файла, что должно увеличить скорость и уменьшить нагрузку.


    8b36b8c1-293b-4fc1-a96e-18a70f8852ee-image.png


    @DoctorKrolic said in SQL:

    @GhostZ Воу, а вы, однако, очень продуктивно работали за последние месяцы)

    Просто пока велась работа над добавлением нового движка и обновления BAS не выходили, копился невыпущенный контент.

  • @GhostZ как я понимаю работа однопоток с файлом идет? т.е пока один поток вносит\берет данные - другие ждут?

  • @efbb4956bf, читает один поток, остальные потоки ждут, а потом прочитанные данные доступны во всех потоках.

  • @GhostZ а что насчет записи,чтоб небыло путаницы,когда идет запись одним потоком-остальные по аналогии ждут?

  • @efbb4956bf, в один, как вы собираетесь один и тот же файл сохранять в многопотоке?

  • @GhostZ Cпасибо за mssql.

  • @GhostZ Какие бы запросы не слал, такие вот ошибки.
    6b7f7c2e-b655-4a84-a58e-ece872c3a719-image.png

  • @booldozer, какой диалект?

  • @GhostZ mysql

  • @booldozer, приложите тестовый скрипт

  • This post is deleted!
  • Не знаю как у других, но при первом соединении или после истечения таймаута запрос к базе всегда происходит с ошибкой.

    Для действия "Получить одну запись" и "Получить несколько записей" не помешало бы добавить возможные значения для пункта "Формат данных" в выпадающем списке. Сейчас чтобы изменить приходится печатать руками.
    И при неверном значении данных в "Получить одну запись" для поля "Формат данных" результат возвращается в виде объекта. По логике должно выдать ошибку как в "Получить несколько записей".

  • 9 Votes
    131 Posts
    27737 Views
  • 11 Votes
    58 Posts
    9312 Views
  • 18 Votes
    38 Posts
    8234 Views
  • 8 Votes
    60 Posts
    44965 Views