Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2016, 12:57   #1
edsjeka
Пользователь
 
Регистрация: 01.01.2016
Сообщений: 98
По умолчанию Долго считываются данные с БД

Есть БД, образец таблицы на изображении. Значение 4-х полей берутся из справочников. В базе на данный момент 65 записей. Так вот открывается эта база в таблице очень долго - около 5-7 секунд. Не могу понять почему так долго, а что будет, когда записей будет несколько тысяч? Может я неправильно что-то реализовал?
База данных MySql, сервер localhost.
До этого делал точно такое же без сервера, локально, открывалось моментально.
Как можно в Delphi засечь какая именно операция выполняется долго?
Изображения
Тип файла: jpg Снимок6.jpg (32.8 Кб, 138 просмотров)
edsjeka вне форума Ответить с цитированием
Старый 19.02.2016, 13:30   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Как можно в Delphi засечь какая именно операция выполняется долго?
с помощью замеров времени.
Код:
uses dateutils;

var t1, t2: TTime;
s: string;

t1:=now;
....
t2:=now;
s:=format('затрачено времени: %d, [ SecondsBetween(t2,t1) ]);
P.S. если код заполнения "таблиц" аналогичен этому с учетом
Цитата:
Значение 4-х полей берутся из справочников.
то оно и не удивительно.
1. "Значения ИЗ справочников" надо получать в ОСНОВНОМ запросе.
именно для этого и придуман SQL язык. прочитайте про СОЕДИНЕНИЯ (JOIN) таблиц.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 19.02.2016 в 13:33.
evg_m вне форума Ответить с цитированием
Старый 19.02.2016, 13:33   #3
edsjeka
Пользователь
 
Регистрация: 01.01.2016
Сообщений: 98
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
с помощью замеров времени.
Код:
uses dateutils;

var t1, t2: TTime;
s: string;

t1:=now;
....
t2:=now;
s:=format('затрачено времени: %d, [ SecondsBetween(t2,t1) ]);
P.S. если код заполнения "таблиц" аналогичен этому с учетом
то оно и не удивительно.
1. "Значения ИЗ справочников" надо получать в ОСНОВНОМ запросе.
именно для этого и придуман SQL язык. прочитайте про СОЕДИНЕНИЯ (JOIN) таблиц.
Спасибо.
edsjeka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ОС долго загружается Алексей_2012 Операционные системы общие вопросы 11 23.04.2014 18:51
формирование линейного списка целых чисел, элементы которого считываются из текстового файла kalosha-stepa Паскаль, Turbo Pascal, PascalABC.NET 10 21.10.2012 22:02
Откуда считываются данные? Ольга 89 Паскаль, Turbo Pascal, PascalABC.NET 62 22.05.2012 21:42
Из файла считываются не те значения al-udmi Общие вопросы C/C++ 2 20.12.2011 23:44
Слишком долго сохраняются данные в БД Maxs Помощь студентам 5 27.04.2009 14:45