Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Увеличение времени выполнения, Почему? 
:(
    Опции темы
fess
Дата 17.5.2005, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 17.2.2005
Где: г. Мурманск, Росс ия

Репутация: нет
Всего: 3



Цитата
какого типа у ваше t и Megatick?

t:integer;
MegaTik:LongInt;// на всякий случай

Цитата
А если написать и проверить, скажем, такое?

Нормально работает, время выполнения не увеличивается. Значения в listbox'е (3 разные) : 0,15,16 и они повторяются произвольно.
Суммарное время практически постоянно также (изменяется в пределах погрешности: 4750+-50).
Возможно, это связано с тем, что каждый раз один и тотже запрос к одним и тем же таблицам (sij и BiomTableName='cod'), но чем мне это поможет? smile

Цитата
Можно еще попробовать вместо Query1.Open - Query1.Active:=true;

Никакой разницы.
--------------------
Компьютер не подчиняется законам физики. Только в нём глюки возникают из ничего, файлы исчезают в никуда, а объём измеряется в метрах и называется весом.
PM MAIL ICQ   Вверх
fess
Дата 3.8.2005, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 17.2.2005
Где: г. Мурманск, Росс ия

Репутация: нет
Всего: 3



В общем вытащил кусок программы, где происходит увеличение времени, в отдельное приложение.
Вот его код:
Код

procedure TForm1.Button1Click(Sender: TObject);
const
  Template_S_B_SQL=
      'select Sum(last)/AllSumm as NormPj , YearCod,FirstHalf,SecondHalf,DataYear,VariantsId ' +
      ' from "All_Pj.sql" A, "summG.db" S  ' +
      ' where S.YearCod=A.YearCod and '+
      ' S.FirstHalf=A.FirstHalf and ' +
      ' S.SecondHalf=A.SecondHalf and ' +
      ' S.DataYear=A.DataYear ' +
      ' Group by YearCod,FirstHalf,SecondHalf,DataYear,VariantsId';

//  Текст  "All_Pj.sql"
//    select Sum(Weight * MainValue)  as last, YearCod,FirstHalf,SecondHalf,DataYear,VariantsId
//    from  G_Cod F,  Cod S
//    Where
//      F.VariantsId=51   and
//      F.DataYear=S.DataYear  and
//      YearId=17  and
//      F.Age=S.CodYear
//    Group by YearCod,FirstHalf,SecondHalf,DataYear,VariantsId
//
//    UNION
//
//    select Sum(Weight )* MainValue  as last, YearCod,FirstHalf,SecondHalf,DataYear,VariantsId
//    from  G_Capelin F,  Capelin S
//    Where
//      F.VariantsId=51   and
//      F.DataYear=S.DataYear  and
//      YearId=17
//    Group by YearCod,FirstHalf,SecondHalf,DataYear,VariantsId


var
  i,t:Integer;
  Summ:integer;
begin
  Memo1.visible:=false;
  Memo1.Clear;
  Summ:=GetTickCount;
  for i:=1 to 100 do
  begin
    Query1.Close;
    Query1.sql.Clear;
    {Добаление запроса в TQuery}
    Query1.sql.Text:= Template_S_B_SQL;
    t := GetTickCount;//Замечаем время
    Query1.Open;
    {Вывод времени выполнения каждого запроса}
    Memo1.Lines.add(IntToStr(GetTickCount - t));
  end;
  Memo1.visible:=true;
  {Суммарное время выполнения 100 запросов}
  Memo2.Lines.add(IntToStr(GetTickCount-Summ));
end;


Вот здесь лежит сама программа и база данных к ней (альяс настраивается автоматически, прога написанна на Delphi 7, чтобы увидеть этот эффект, надо несколько раз нажать на кнопку), качать браузером: http://ivan_oganin.programist.ru/increase.rar

Может, кто-то сможет помочь, а то я уже запарился smile


--------------------
Компьютер не подчиняется законам физики. Только в нём глюки возникают из ничего, файлы исчезают в никуда, а объём измеряется в метрах и называется весом.
PM MAIL ICQ   Вверх
fess
Дата 17.8.2005, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 17.2.2005
Где: г. Мурманск, Росс ия

Репутация: нет
Всего: 3



Всё, я решил эту проблему! Не прошло и трёх месяцев (или прошло) ! Я крут!!! smile smile smile smile
Надо было всего лишь написать до или после цика Session.Close; и всё!

Это сообщение отредактировал(а) fess - 17.8.2005, 21:06
--------------------
Компьютер не подчиняется законам физики. Только в нём глюки возникают из ничего, файлы исчезают в никуда, а объём измеряется в метрах и называется весом.
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0429 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.