Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 04.07.2013, 12:51
Ravennt Ravennt вне форума
Прохожий
 
Регистрация: 10.09.2012
Сообщения: 19
Репутация: 10
По умолчанию

dtmdlMain.ibqryViewUsluga.Locate('USLUGA_ID',uslID ,[]);
frmMain.dbgrdhMain.SetFocus;

uslID - номер строки на которую нужно перейти

если быть точнее в базе сейчас 532 записи
Ответить с цитированием
  #17  
Старый 04.07.2013, 13:19
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Повторно задаю вопрос. Индекс есть по Usluga_ID в базе?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение:
Ravennt (04.07.2013)
  #18  
Старый 04.07.2013, 13:46
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 576
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Страдалецъ
Повторно задаю вопрос. Индекс есть по Usluga_ID в базе?
Еще раз предлагаю посмотреть на реализацию TIBCustomDataSet.Locate и убедиться, что индексами там и не пахнет. Какие индексы на клиенте??
Ответить с цитированием
  #19  
Старый 04.07.2013, 13:52
Ravennt Ravennt вне форума
Прохожий
 
Регистрация: 10.09.2012
Сообщения: 19
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Повторно задаю вопрос. Индекс есть по Usluga_ID в базе?

индекс по Usluga_ID в базе есть!!

Проблема решилась и оказалась своеобразна!!!! при запросе
Код:
select 
    group_table.organiz,
    group_table.kolvo_clients,
    usluga_table.pdate,
    usluga_table.time_start,
    usluga_table.time_end,
    usluga_table.target_name,
    summa_table.summa_doc,
    status_table.fstatus,
    usluga_table.kolvo_uslug
from usluga_table
   inner join summa_table on (usluga_table.summa = summa_table.summa_id)
   inner join status_table on (usluga_table.status_usluga = status_table.status_id)
   inner join group_table on (usluga_table.group_usluga = group_table.organiz_id)
where usluga_table.group_usluga <> 0
order by usluga_table.pdate, usluga_table.time_start

проиндексировал поля отвечающие за сортировку дополнительно
usluga_table.pdate
usluga_table.time_start

ПРОБЛЕМА РЕШЕНА!!! Всем спасибо за помощь!

Последний раз редактировалось Ravennt, 04.07.2013 в 13:55.
Ответить с цитированием
  #20  
Старый 04.07.2013, 13:53
Ravennt Ravennt вне форума
Прохожий
 
Регистрация: 10.09.2012
Сообщения: 19
Репутация: 10
По умолчанию

Цитата:
Сообщение от Freeman
Еще раз предлагаю посмотреть на реализацию TIBCustomDataSet.Locate и убедиться, что индексами там и не пахнет. Какие индексы на клиенте??

индексы в базе ставятся, субд их сама обрабатывает

решение указано выше

Последний раз редактировалось Ravennt, 04.07.2013 в 13:55.
Ответить с цитированием
  #21  
Старый 04.07.2013, 14:00
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 576
Версия Delphi: 6
Репутация: выкл
По умолчанию

Быдлокодеры хреновы, что Ravennt, что Страдалецъ, даром что модератор. Уж извините за прямоту.

Говорил же: отладчиком смотрите! Тормоза наверняка были из-за самого запроса, а не сканирования каких-то сраных 500 записей на клиенте.
Ответить с цитированием
  #22  
Старый 04.07.2013, 14:15
Ravennt Ravennt вне форума
Прохожий
 
Регистрация: 10.09.2012
Сообщения: 19
Репутация: 10
По умолчанию

Цитата:
Сообщение от Freeman
Быдлокодеры хреновы, что Ravennt, что Страдалецъ, даром что модератор. Уж извините за прямоту.

Говорил же: отладчиком смотрите! Тормоза наверняка были из-за самого запроса, а не сканирования каких-то сраных 500 записей на клиенте.

Я самоучка нигде не учившийся просто по книжкам, поэтому и спрашиваю.
при отладке именно на Locate все вешалось! Из-за сортировки запроса Locate и выполнялся долго. Если уж не хватает знаний, мне казалось для этого и нужны форумы, чтобы можно было спросить или прочитать уже решения, если у кого то такая проблема появлялась.

Сразу суперпупер программистом не становятся все с чего нибудь начинают. И еще вопрос СПЕЦИФИКИ. каждый специализируется на своем.

Последний раз редактировалось Ravennt, 04.07.2013 в 14:20.
Ответить с цитированием
  #23  
Старый 04.07.2013, 15:49
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 576
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Ravennt
при отладке именно на Locate все вешалось! Из-за сортировки запроса Locate и выполнялся долго.
Хоть и тяжело заниматься удаленной отладкой через форум, но я по-прежнему уверен, что замедление Locate -- наведенная ошибка, а истинная причина была в чем-то другом. Еще раз предлагаю посмотреть в код TIBCustomDataSet.InternalLocate и убедиться, что там выполняется обычное сканирование, лишь немного сложнее кода самописной процедуры LocateTable, представленной несколькими постами ранее.

Предлагаю для теста удалить индекс, но после открытия запроса вручную выполнить FetchAll и посмотреть, будет тормозить на Locate или нет. По логике вещей тормозить должно на FetchAll.

Цитата:
Сообщение от Ravennt
Сразу суперпупер программистом не становятся все с чего нибудь начинают.
Чтобы стать профессионалом, нужно учиться. А если ставить заплаты не вникая в суть, можно стать только профессионалом в наложении заплат. Мне кажется, что это не тот профессионализм, к которому нужно стремиться.
Ответить с цитированием
  #24  
Старый 04.07.2013, 16:34
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Цитата:
Чтобы стать профессионалом, нужно учиться.
Когда учатся становятся учеными, а что бы стать профессионалом, надо по професси работать.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:38.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter