Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 67
MySQL

Mysql нагружает систему

10.02.2016, 18:18. Показов 2452. Ответов 44

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.
Уважаемые знатоки, нужна ваша помощь, пишу( уже очень давно ) программку которая берет данные из файлика и сравнивает их с базой данных, все вроде работает, НО, при старте в один поток нагрузка на систему 45+% и выдает ее процесс mysqld.exe, при запуске нескольких потоков, компьютер жутко тормозит, а нагрузка 98%+.
Собственно вопрос, в чем может быть проблема?
PS. Работа с БД происходит по средствам ADO.
Буду признателен за помощь.

Добавлено через 13 часов 49 минут
Пол сотни просмотров и никто не в силах помочь?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.02.2016, 18:18
Ответы с готовыми решениями:

Svchost нагружает систему
Компьютер стал медленно работать. При попытках узнать причину обнаружил, что система нагружается процессом svchost (процессор загружен на...

Chrome нагружает систему
Добрый день! Сегодня зашел в поисковик Google и заметил, что Google Chrome начал жутко тормозить, а вместе с нею и вся система. ...

Что то нагружает систему
какой то вирус нагружает систему и пк жестко виснет

44
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
14.02.2016, 10:50
Студворк — интернет-сервис помощи студентам
golden103, открывай
http://docwiki.embarcadero.com... en/FireDAC
и вперед
0
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 67
15.02.2016, 03:04  [ТС]
qwertehok, спасибо за ссылку, а нет ли что то подобного но на русском?
PS. По поводу 'Правильного' запроса, я так понимаю это нужно использовать фильтрацию? "LIKE, locate и т.д?"
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
15.02.2016, 09:06
Цитата Сообщение от golden103 Посмотреть сообщение
спасибо за ссылку, а нет ли что то подобного но на русском?
научитесь читать документацию на родном для нее языке

Цитата Сообщение от golden103 Посмотреть сообщение
PS. По поводу 'Правильного' запроса, я так понимаю это нужно использовать фильтрацию? "LIKE, locate и т.д?"
locate это не SQL запрос
LIKE в вашем запросе использовать вообще не нужно

если 37 строка в вашем сообщении это запрос, то вам нужно
1. убедиться в том что результат будет тот который хотите вы
2. правильно обработать то что уже получили

строки 49-52 переписать на INSERT
0
18 / 17 / 0
Регистрация: 27.11.2012
Сообщений: 353
16.02.2016, 14:10
Я думаю еще нужно убрать из потока
Delphi
1
ShowMessage(E.ClassName+' поднята ошибка, с сообщением : '+E.Message);
И что за код в процедуре Synch?
0
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 67
17.02.2016, 03:58  [ТС]
Решил я отказаться от потоков, по крайней мере пока.
Значительно переделал программку, теперь это что то типа черного списка линков( ссылок ).
Внес изменения в код, скорость поднялась, но все равно очень медленно, загружал тестовый файл с 240 строками, обработка их заняла 36сек, а это очень долго.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
StopAp := true;
  form3.sCheckBox1.Enabled := false;
  Form3.sLabel6.Caption := '0';
  Form3.sLabel7.Caption := '0';
  Form3.sLabel8.Caption := '0';
  //Form3.sGauge1.Progress := 0;
 
  CAcc := 0;
  Accs := 0;
  form3.sButton2.Enabled := false;
  form3.sButton3.Enabled := true;
 
  TimeStart := Now;
  form3.Timer2.Enabled := true;
 
  ADOQuery := TADOQuery.Create(nil);
  ADOQuery.Connection := ADOCon;
  ADOQuery.ConnectionString := 'Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="Driver=MySQL ODBC 5.2 Unicode Driver;SERVER=127.0.0.1;UID=root;DATABASE=ap_links;PORT=3306"';
  try
  while ( StopAp ) do
  begin
    try
      Application.ProcessMessages;
      CS.Enter;
      inc(Accs);
      if Accs < LoadlinkCount then begin CAcc := Accs; end else begin {Break;} StopAp := false; end;
      CS.Leave;
      linkCopy := Copy(linkList[CAcc], 1, Length(linkList[CAcc]));
      try
        ADOQuery.Close;
        ADOQuery.SQL.Clear;
        ADOQuery.SQL.Add( ' SELECT * FROM `link_check` WHERE `links` LIKE Lower( :linkss )' );
        ADOQuery.Parameters.ParamValues[ 'linkss' ] := Trim( linkCopy );
        ADOQuery.Prepared := true;
        ADOQuery.Open;
        if not ADOQuery.Eof then
        begin
          // В списке
          Form3.sLabel7.Caption := IntToStr(StrToInt(Form3.sLabel7.Caption) + 1);
        end else
        begin
          // Не в списке
          Form3.sLabel8.Caption := IntToStr(StrToInt(Form3.sLabel8.Caption) + 1);
          if form3.sCheckBox1.Checked then
          begin
            try
              ADOQuery.SQL.Clear;
              ADOQuery.SQL.Add( 'INSERT INTO `link_check`( `links` ) VALUES ( :llc )' );
              ADOQuery.FieldByName( 'llc' ).AsString := Trim( linkCopy );
              ADOQuery.ExecSQL;
            except
              on e : exception do
                ShowMessage(E.ClassName+' поднята ошибка, с сообщением : '+E.Message);
            end;
          end;
        end;
        form3.sLabel6.Caption := IntToStr( StrToInt( form3.sLabel5.Caption ) - ( StrToInt( form3.sLabel7.Caption ) + StrToInt( Form3.sLabel8.Caption ) ) );
        form3.sGauge1.Progress := form3.sGauge1.Progress +1;
        form3.sEdit2.Text := format( '%.01f', [ 100 * StrToInt( Form3.sLabel8.Caption ) / StrToInt( Form3.sLabel5.Caption ) ] )+ '%';
        //ADOQuery.Close;
      except
        on e: exception do
          ShowMessage(e.ClassName + ' поднята ошибка, с сообщением : ' +e.Message);
      end;
    except
      on e: exception do
        ShowMessage(e.ClassName + ' поднята ошибка, с сообщением : ' +e.Message);
    end;
  end;
  finally
    if not StopAp then
    begin
      if (Song) then Beep;
      form3.sButton1.Enabled := true;
      form3.sButton3.Enabled := false;
      form3.sCheckBox1.Enabled := true;
      form3.Timer2.Enabled := false;
    end;
  end;
PS. Данный код висит на кнопке.
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
17.02.2016, 08:53
подскажите что делает 36 строка
0
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 67
17.02.2016, 09:23  [ТС]
qwertehok, Проверка, есть ли запись в базе или нет
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
17.02.2016, 09:34
golden103, ЭТО не проверка
посмотри что такое OEF
и как с этим надо работать
0
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 67
17.02.2016, 10:04  [ТС]
qwertehok,
Чуть переделал и не хитрыми манипуляциями выявил что после ADOQuery.open идет падение скорости
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
ADOQuery.SQL.Clear;
        ADOQuery.SQL.Text := 'SELECT COUNT(*) AS ccount FROM `link_check` where `links` = Lower( :ddc )';
        ADOQuery.Parameters.ParamValues[ 'ddc' ] := Trim( linkCopy );
        ADOQuery.Prepared := true;
        ADOQuery.Open;
        if ADOQuery.FieldValues['ccount'] <> 0 then
        begin
          Form3.sLabel7.Caption := IntToStr(StrToInt(Form3.sLabel7.Caption) + 1);
        end else
        begin
          Form3.sLabel8.Caption := IntToStr(StrToInt(Form3.sLabel8.Caption) + 1);
        end;
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
17.02.2016, 10:14
ну вот что это такое?
Цитата Сообщение от golden103 Посмотреть сообщение
ADOQuery.FieldValues['ccount']
почему не использовать человеческое AdoQuery.FieldByName('').asInteger?

и что такое "падение скорости"? скорости чего?
0
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 67
17.02.2016, 10:26  [ТС]
qwertehok, Ну вот сейчас обрабатывает 240 строк( из файла ) 36сек. если за комментировать adoquery.open то цикл прогоняет эти 240 строк за 1 -2 секунды
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
17.02.2016, 11:57
Цитата Сообщение от golden103 Посмотреть сообщение
если за комментировать adoquery.open
здорово
извините, конечно вы правы, комментируйте на здоровье, если так быстрее
отличное решение
0
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 67
17.02.2016, 11:59  [ТС]
qwertehok, Это было как пример, я просто не могу понять почему такая скорость маленькая
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
17.02.2016, 12:01
Цитата Сообщение от golden103 Посмотреть сообщение
Это было как пример
пример чего?

Цитата Сообщение от golden103 Посмотреть сообщение
я просто не могу понять почему такая скорость маленькая
скорость чего маленькая?
0
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 67
17.02.2016, 12:09  [ТС]
qwertehok, Скорость обработки( сверки содержимого файла с базой )
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
17.02.2016, 12:17
golden103,
240 строк раздели на 36 - 6 строк в секунду
ты с чем сравниваешь?
0
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 67
17.02.2016, 12:36  [ТС]
qwertehok, Есть программы по типу этой, которые обрабатывают по 5 - 10 тысяч строк и тратя при этом от силы 1 - 2 минуты
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
17.02.2016, 12:39
golden103, программы по типу твоей обрабатывают 6 строк в секунду
что бы обрабатывать 5-10 нужно учиться
0
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 67
17.02.2016, 12:42  [ТС]
qwertehok, НУ так вот я и пытаюсь научиться, не зря же существует этот форум
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
17.02.2016, 13:10
golden103, это вы так учитесь? что бы вам подсказывали правильный ответ и тыкали в ошибки? )
отличное обучение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.02.2016, 13:10

Что-то сильно нагружает систему
Пользователь принес ноутбук, с просьбой решить его проблему. Проблема заключается в том что ноутбук сильно греется. Разбор ноутбука...

Компонент Chart нагружает систему
Хочу построить синусоиду в компоненте Chart. Построить не проблема, вот только компьютер начинает жутко тормозить. Видимо я что-то не...

Svchost.exe нагружает систему
Началось после установки Win10 Грешу на центр обновлений, т.к. несколько дней уже не могут скачаться обновления офиса.

Непонятная программа сильно нагружает систему
Мою систему знатно нагружает steamwebhelper (если удалять, восстанавливается), так же в реестре появились странные файлы с подзаголовками...

Svchost.exe нагружает систему - Windows 10
Здравствуйте. У меня вот такой вопрос возник. При открытии диспетчера задач в процессах Windows появляется постоянно несколько пустых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru