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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.07.2009, 14:00   #11
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

тут задет ещё такой критерий как время...... ну вот пример запроса и его время выполнение... от сюда следует что посчитать записи не сложно.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 28.07.2009, 14:15   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

soleil@mmc, +1

BARNEY, Вы вообще читаете то, что Вам пишут?!
я спросил про СУБД... ответа нет..
ну да ладно..
главное. в условии WHERE у ВАС ТОЛЬКО ID (ну плюс поле is_active, которое наверняка тоже проиндексировано СУБД)
добавьте в WHERE проверки на substring(polis.snils from xx for xx) = 'Чему-то'
а всё что после select замените на банальный COUNT(*)
и вот тогда сообщите результаты тайминга...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.07.2009, 06:53   #13
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

------ Performance info ------
Prepare time = 31ms
Execute time = 15s 735ms
Avg fetch time = 15*735,00 ms
Current memory = 576*500
Max memory = 1*377*024
Memory buffers = 120
Reads from disk to cache = 1*821*171
Writes from cache to disk = 0
Fetches from cache = 6*879*474

11 000 000 записей обработана..... как и просили добавил count + условие...

СУБД Firebird 2.1
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 29.07.2009, 08:52   #14
asimpsons
 
Регистрация: 14.10.2008
Сообщений: 5
По умолчанию

с оракла достаю в порядке 350 штук записей и втыкаю в absolute database для клиентов без доступа в оракл. после работы в Absolute DB идут задержки.

Цитата:
Сообщение от BARNEY Посмотреть сообщение
можно в поток прогрессбар засунуть..токда не будет песочных часиков...
про поток можете подробное написать.
asimpsons вне форума Ответить с цитированием
Старый 29.07.2009, 10:53   #15
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

Код:
кнопка 

procedure Tdrfiski.Button2Click(Sender: TObject);
var s:string;
i:integer;
sql:string;
potok:MyPotok;
begin
tt.SQL.Text:='select count(id) as cnt from polis where is_active=1 and polis.date_out is not null';
tt.Active:=true;
Gauge1.MaxValue:=tt.FieldValues['cnt'];
Gauge1.MinValue:=0;

Quick.ExecQuery;
Edit1.Enabled:=false;
Gauge1.progress:=0;

if ProgrammMain.IBD.Connected=false then
ProgrammMain.IBD.Connected:=true;
ii:=0;
x:=0;
Potok:=MyPotok.Create(true);
Potok.FreeOnTerminate:=false;
Potok.Priority:=tpHigher;
Potok.Resume;
Button2.Enabled:=false;
end;
//создаём поток Файл - создать - объект потока
Код:
procedure MyPotok.Execute;
var
s,sql: string;
cc,i:integer;
begin
while (not drfiski.Quick.Eof) do
  begin
       sql:=''; // некая переменная 
     try
     ProgrammMain.IBQ.SQL.Text:='insert into polis values ('+sql+')';
     ProgrammMain.IBQ.ExecQuery;
     except
     drfiski.memo1.Lines.Add(ProgrammMain.IBQ.SQL.Text);//баги сюда
     end;
     ii:=ii+1;    
    end;
    drfiski.Quick.Next;
    Synchronize(progress);
    Application.ProcessMessages;
  end;
end;
ProgrammMain.IBTransaction1.Commit;
if(ProgrammMain.IBTransaction1.Active=false)then
ProgrammMain.IBTransaction1.Active:=true;


procedure MyPotok.progress;
begin
drfiski.Label2.Caption:=IntToStr(ii);
drfiski.Gauge1.Progress:=ii;
drfiski.Label6.Caption:=IntToStr(drfiski.Gauge1.MaxValue);
end;
Как то так
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
dataset sergei64_89 Общие вопросы .NET 1 19.09.2008 20:14
DataSet nimf БД в Delphi 3 28.01.2008 23:03
ADODataSet: cannot modify a read-only dataset cvetochek Помощь студентам 2 29.10.2007 14:49
доступ к DataSet EdNovice БД в Delphi 0 11.05.2007 07:01