powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / cxGrid + FetchAll + GridMode
74 сообщений из 74, показаны все 3 страниц
cxGrid + FetchAll + GridMode
    #37259809
AlexSmith
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть табличка, которая содержит в себе 5млн. записей.
БД: MSSQL 2005

Cтавим на форму cxgrid1, создаем cxgrid1DBTableView, привязываем к нему DataSource.
К DataSource привязываем Query.

Делаем чтобы отображалось в cxGrid по 100 записей, cледующим образом:

Код: plaintext
1.
2.
3.
4.
5.
cxGrid1DBTableView1.DataController.DataModeController.GridMode := True;
cxGrid1DBTableView1.DataController.DataModeController.GridModeBufferCount :=  100 ;

MSQuery1.FetchAll := False;
MSQuery1.FetchRows :=  100 ;

Приложение запускаем, отображается 100 записей, как только делаешь

Код: plaintext
1.
MSQuery1.Close;

то понимаем,что Query пытается зафетчить все записи, которые только есть в ДатаСете и только после этого закрывается. (На это у него уходит порядка 1 минуты ).

Делал Free у Query, тоже самое, впадает в минутный ступор.

Как сделать так, чтобы при частичном просмотре, Close у процедуры отрабатывал моментально, а недогружал все данные, которые не отобразил?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #37260394
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexSmithКак сделать так, чтобы при частичном просмотре, Close у процедуры отрабатывал моментально, а недогружал все данные, которые не отобразил?пользоваться нормальным методом отбора данных -
Код: plaintext
1.
2.
select <fields>
  from <tables>
 where <conditions>
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #37260430
Фотография Ramin Hashimzade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
че то не верится , у меня в таблице 9214722 записей все нормально.... но правда у меня оракле с ODAC , но и с МССГЛ тоже самое должен быть!!

покажы код.....
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #37260460
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ramin,

а ты where в запросе пишешь?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #37260484
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем where, если человеку нужно отображать все записи порциями?

Возможно в момент закрытия у Вас выполняется какой-то код, про который вы забыли? А попробуйте отвязать грид от набора данных и переоткрыть запрос. Может это грид глючит?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #37260667
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11А зачем where, если человеку нужно отображать все записи порциями?

Возможно в момент закрытия у Вас выполняется какой-то код, про который вы забыли? А попробуйте отвязать грид от набора данных и переоткрыть запрос. Может это грид глючит?просматривать 5 миллионов записей даже порциями, без фильтра и сортировки - бред сивой кобылы
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #37260800
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxRamin,

а ты where в запросе пишешь?
интересно как это связано с вопросом ТС...
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #37260802
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxX11А зачем where, если человеку нужно отображать все записи порциями?

Возможно в момент закрытия у Вас выполняется какой-то код, про который вы забыли? А попробуйте отвязать грид от набора данных и переоткрыть запрос. Может это грид глючит?просматривать 5 миллионов записей даже порциями, без фильтра и сортировки - бред сивой кобылы
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #37262406
схGrid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Q: TpFIBDataSet;
FetchAll - стоит False.

Код: plaintext
1.
2.
3.
 GridViewData.DataController.DataModeController.GridModeBufferCount :=  100 ;
 GridViewData.DataController.DataModeController.GridMode := true;
 Q.Open;

Смотрю SQL монитор тянутся все записи. Как сделать ограничение на 100 записей?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
cxGrid + FetchAll + GridMode
    #39695736
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если тема еще не закрыта, то хотелось бы оживить, поскольку проблема та же, только решения найти не удалось.

Есть компонент TOraQuery (ODAC), у которого FetchAll=False и FetchRows=300,
есть cxGrid, у cxGridDBTableView которого свойства GridMode=True и GridModeBufferCount=300.
В самом TOraQuery простой запрос по таблице, результатом выборки есть набор из 6 миллионов записей (к примеру).
При этих всех настройках набор открывается минут 5, хотя должен влет показать первые 300 записей.
Аналогично было реализовано на DOA-шных компонентах, все работало четко.

Студия 10.1 Berlin, ODAC версии 10.1.5, DevExpress версия 16.1.2
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39695739
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрий,

Можно проверить, чтобы в коде при открытии не было команды на переход к последней записи датасета (да и вообще стоит обратить внимание на любые манипуляции с датасетом, гридом, сортировками и т.п.).
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39695935
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDi,

Выполняется только <DataSet>.Open и он ждет пока не отфетчатся все записи. Только после этого начинает работать грид.
На самом датасете нет никаких дополнительных обработчиков событий.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39695985
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверь открытие НД без привязки к сетке.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696014
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

тоже самое. Никакой разницы((
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696016
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OraSession.DisconnectedMode не True случайно ?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696023
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zinpub,

нет, дефолтное значение стоит
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696047
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийX11,

тоже самое. Никакой разницы((

Т.е. проблема не в сетке :)

Проверить и убедится, что к НД TOraQuery более ничего не подключено.
Можно даже новый кинуть на форму и проверить время открытия прямо в дизайне.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696062
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
похоже, что OraQuery выполняет запрос полностью,
а потом будет всего лишь фетчить из курсора число записей, равное указанному размеру буфера
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696079
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

пробовал по разному. Для чистоты эксперимента создал новый проект, на форме только кнопка.
Жмакаем её, пытаемся выполнить запрос (сессия уже авторизирована). Результат отличается на доли секунд,
средний запрос на 400 тысяч записей выполняется около 10 секунд. Миллионники висят несколько минут.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696081
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorпохоже, что OraQuery выполняет запрос полностью,
а потом будет всего лишь фетчить из курсора число записей, равное указанному размеру буфера

Так а я о чём... Почему он выполняет полностью, если FetchAll отключен?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696088
AJi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJi
Гость
Леонов Юрий,
Зачем на клиенте такое количество записей?
Я понимаю, что это не относится к вашему вопросу, но все же...
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696094
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрий,

потому что в самом оракловском запросе есть сортировка, которая должна выполнится до конца перед возвратом результата на клиент? Можно эту процедуру выполнить в каком-нибудь pl/sql developer'е и посмотреть, насколько быстро появляются первые результаты.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696097
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AJiЛеонов Юрий,
Зачем на клиенте такое количество записей?
Я понимаю, что это не относится к вашему вопросу, но все же...

Вот нужно)) Я сам не понимаю зачем, но нужно... Ну мое дело их вытянуть частями, а там пусть юзверь что хочет, то и делает с ними
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696101
AJi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJi
Гость
Леонов Юрий,

А вы не пробовали использовать другой Dataset? Может быть действительно дело в OraQuery, как уже писали выше? Попробуйте на каком-нибудь FireDac.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696104
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
JaDiЛеонов Юрий,

потому что в самом оракловском запросе есть сортировка, которая должна выполнится до конца перед возвратом результата на клиент? Можно эту процедуру выполнить в каком-нибудь pl/sql developer'е и посмотреть, насколько быстро появляются первые результаты.
PL/SQL Developer использует компоненты DOA, а ТС утверждает, что они работают правильно
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696105
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
AJiЛеонов Юрий,

А вы не пробовали использовать другой Dataset? Может быть действительно дело в OraQuery, как уже писали выше? Попробуйте на каком-нибудь FireDac.
А до конца сообщение было сложно дочитать ? ))
Леонов ЮрийАналогично было реализовано на DOA-шных компонентах, все работало четко
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696113
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiЛеонов Юрий,

потому что в самом оракловском запросе есть сортировка, которая должна выполнится до конца перед возвратом результата на клиент? Можно эту процедуру выполнить в каком-нибудь pl/sql developer'е и посмотреть, насколько быстро появляются первые результаты.

Сам запрос в тестируемом варианте выглядит приблизительно так:
Код: plsql
1.
2.
3.
4.
5.
6.
select поле,
         поле,
         ...
         поле
  from вьюха t
 where t.bank_n = :PBankN


никаких сортировок нету.
Выполняю в PSD как запрос - за полторы секунды показывает первые записи.
Если как тестовый скрипт с bind-переменными - секунд 5 думает, потом начинает мотать счетчик отфетченных записей
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696116
AJi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJi
Гость
defecatorА до конца сообщение было сложно дочитать ? ))

Мне вообще сложно читать ;-)

Ну если с другим датасетом все работало, то надо или смотреть настройки текущего или вернуться к тому, что было:)
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696119
AJi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJi
Гость
Леонов ЮрийСам запрос в тестируемом варианте выглядит приблизительно так:
Код: plsql
1.
2.
3.
4.
5.
6.
select поле,
         поле,
         ...
         поле
  from вьюха t
 where t.bank_n = :PBankN


никаких сортировок нету.
Выполняю в PSD как запрос - за полторы секунды показывает первые записи.
Если как тестовый скрипт с bind-переменными - секунд 5 думает, потом начинает мотать счетчик отфетченных записей
Ну если он пытается отфетчить все записи, то похоже, что в какой-то момент выполняется что-то типа dataset.last. Посмотрите дебаггером что там происходит.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696124
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AJi
Ну если с другим датасетом все работало, то надо или смотреть настройки текущего или вернуться к тому, что было:)

Правда? А я тупой, не додумался... А чем мы здесь занимаемся, любезный?
По-моему как раз я и хочу понять, что не так в настройках текущего Датасета.
И если бы не необходимость, я бы, по вашему, стал бы ломать работающее на других компонентах приложение?
Вот реально, зачем писать от балды? Просто ветку марать?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696126
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AJiНу если он пытается отфетчить все записи, то похоже, что в какой-то момент выполняется что-то типа dataset.last. Посмотрите дебаггером что там происходит.

Кого дебаггером посмотреть? PL/SQL Developer? У вас есть к нему дебаггер?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696134
AJi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJi
Гость
Леонов ЮрийAJiНу если он пытается отфетчить все записи, то похоже, что в какой-то момент выполняется что-то типа dataset.last. Посмотрите дебаггером что там происходит.

Кого дебаггером посмотреть? PL/SQL Developer? У вас есть к нему дебаггер?
У вас проблема в PL/SQL Developer? :)
В Delphi запускаете отладку и смотрите, что делает OraQuery
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696135
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AJi,

походу вы читать написанное не умеете в принципе. Можете вдумчиво цепочку прочитать, чтобы не задавать глупые вопросы?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696136
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно еще полазить в настройках датасета и проверить параметры типа ScrollableCursor:
https://www.devart.com/odac/docs/devart.odac.toradatasetoptions.scrollablecursor.htm

А можно отладить датасет и проверить, срабатывает ли у него фетч:
http://www.sql.ru/forum/1175768/sdelat-otobrazhenie-dbgrid-pohozhim-kak-v-plsql-developer
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696157
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDi,

Спасибо за ссылки, буду изучать
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696169
AJi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJi
Гость
Леонов ЮрийJaDi,

Спасибо за ссылки, буду изучать

Ну я вам и предлагал отладить датасет и полазить в его настройках, только вы видимо читаете не так вдумчиво, как сами предлагаете:)
Не буду вас больше отвлекать своими глупыми вопросами:)
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696267
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AJi,

вы в Москве все такие нудные и спесивые? Лично от вас ни одного конструктивного предложения я не услышал, только общие фразы. Оберегайте и лелейте своё эго дальше.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696308
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, может это важно, при подключении к БД не используется клиент, а прямой доступ (Direct). Это может тормозить процесс?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696312
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй поставить
Код: pascal
1.
QueryRecordCount := True;
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696324
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрийкстати, может это важно, при подключении к БД не используется клиент, а прямой доступ (Direct). Это может тормозить процесс?
Нет. Но могут быть баги или проблемы с подключением (например, старые компоненты к новому серверу или наоборот) -- но это оооочень редко. У ODAC'ов всё очень хорошо и стабильно работает.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696328
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийX11,

пробовал по разному. Для чистоты эксперимента создал новый проект, на форме только кнопка.
Жмакаем её, пытаемся выполнить запрос (сессия уже авторизирована). Результат отличается на доли секунд,
средний запрос на 400 тысяч записей выполняется около 10 секунд. Миллионники висят несколько минут.

Если уже пробовал, то зачем включил в тему DevExpress?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696330
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может проблема в запросе?
Попробуй что-то самое самое простое типа Select ID from table1.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696336
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

запрос простой и есть. На маленьком банке быстро вылетает, на большом - долго ждет. Хотя прога память не жрет как если бы все фетчило.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696339
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zinpubПопробуй поставить
Код: pascal
1.
QueryRecordCount := True;


И что это даст?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696341
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще можно открыть в пл-девелопере список сессий, найти "зависшую" и посмотреть, чем же реально занимается сервер и клиент, на какой именно операции затык.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696344
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Леонов ЮрийzinpubПопробуй поставить
Код: pascal
1.
QueryRecordCount := True;


И что это даст?

Это типа "дверями хлопал, по колесам стучал...", возможно он пытается кол-во записей узнать, что и вызывает фуллскан
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696351
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zinpubЭто типа "дверями хлопал, по колесам стучал...", возможно он пытается кол-во записей узнать, что и вызывает фуллскан
Если поставлю, то он и будет все фетчить, а сейчас - нет. Во время открытия датасета наблюдал за памятью, которая выделена под мое приложение. Слегка увеличилась (предположительно как раз на мои зарезервированные 300 записей) и все... Походу что-то внутри компонента или сессии происходит.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696410
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Леонов ЮрийzinpubЭто типа "дверями хлопал, по колесам стучал...", возможно он пытается кол-во записей узнать, что и вызывает фуллскан
Если поставлю, то он и будет все фетчить.
фетчить на клиента он не будет,
а выполнит что-то вроде

select count(*) From
(твой запрос
)

но тоже весьма небыстро
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696426
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если уж юзаешь DevExpress, то может стоит попробовать ServerMode?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696461
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
white_niggerЕсли уж юзаешь DevExpress, то может стоит попробовать ServerMode?
вы там у себя никак не родите драйвер для ODAC
а ведь столько лет прошло
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696533
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorwhite_niggerЕсли уж юзаешь DevExpress, то может стоит попробовать ServerMode?
вы там у себя никак не родите драйвер для ODAC
а ведь столько лет прошлоНе помню статистику запросов на это. Большинству, видимо, хватает FireDac, dbExpress, Ado
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696668
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_niggerЕсли уж юзаешь DevExpress, то может стоит попробовать ServerMode?
так у него даже без сетки проблема
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696696
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11white_niggerЕсли уж юзаешь DevExpress, то может стоит попробовать ServerMode?
так у него даже без сетки проблемав сервермоде мы сами запрос на куски данных формируем. Возможно это решит проблему
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39696983
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_niggerX11пропущено...

так у него даже без сетки проблемав сервермоде мы сами запрос на куски данных формируем. Возможно это решит проблему

Ну вот я взял к примеру TdxServerModeADOQueryDataSource. В свойстве Connection что должно быть? OraSession туда не подтягивается, значит мне нужно для этого открывать новое соединение с БД? Такое не устраивает, дописывать для себя компонент нет никакого желания.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39697044
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит пробуй ограничивать SQL выборку с помощью "limit"
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39697073
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Значит пробуй ограничивать SQL выборку с помощью "limit"
в Оракле лимит появлятся только в 12-й версии насколько я знаю, но и это не панацея.
Отобрав лимитом я потом не смогу добраться до всех данных.

Судя по тому, что память приложение не жрет, компонент действительно не фетчит все записи, а только указанное количество.
Меня интересует почему он так долго открывает эти первые записи? В доках по компоненту я не нашел описания этой проблемы, может не там искал...
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39697090
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мониторить не пробовал?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39697104
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящиймониторить не пробовал?


Что конкретно вы имеете ввиду под мониторингом?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39697112
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрий,

в оракле вместо лимита есть rownum с номером строки, по которому и можно фильтрацию делать
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39697122
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiЛеонов Юрий,

в оракле вместо лимита есть rownum с номером строки, по которому и можно фильтрацию делать

В том то и дело что мне нужен потенциально весь результат отбора. Дополнительных фильтраций не предусмотрено.
Все что нужно отфильтровать в гриде, будет приобщено к запросу и выполнено заново. Или я не о том говорю?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39697148
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийВ том то и дело что мне нужен потенциально весь результат отбора.

В этом-то и проблема. А нужно порциями, ограниченно.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39697150
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно автоматизировать или дать пользователю пагинатор, как на сайтах.

SELECT * FROM employees WHERE ROWNUM < 10;


SELECT * FROM employees WHERE ROWNUM > 10 and ROWNUM > 21;
SELECT * FROM employees WHERE ROWNUM > 20 and ROWNUM > 31;

и т.д.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39697157
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот вариант обсуждался и был отвергнут. Нужно чтобы показывалась быстро первая часть данных и при желании пользователя дофетчивались остальные данные блоками.
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39697534
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X11
SELECT * FROM employees WHERE ROWNUM > 10 and ROWNUM > 21;
SELECT * FROM employees WHERE ROWNUM > 20 and ROWNUM > 31;


и т.д.

Эээ... Так нельзя ROWNUM считается по строкам вошедшим в окончательный набор.

Только так как то

Код: plsql
1.
SELECT * FROM (SELECT e.*, e.ROWNUM RN FROM employees e) a WHERE RN >10 AND RN < 21
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39697935
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жаль что "devart" не отслеживает этот вопрос.
Он бы смог рассказать что происходит в его компоненте
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39699351
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это уже интересно. Снял трассу, по ней вижу что на многомиллионнике EXEC выполняется 2 секунды, все остальное время идет
Код: plsql
1.
WAIT #139773341230232: nam='direct path write temp' ...


Но тут решил из запроса убрать бинд-переменную и поставить вместо нее значение. Результат - открывается набор и отображаются записи за секунду. Вот как это понимать?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39699629
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийНо тут решил из запроса убрать бинд-переменную и поставить вместо нее значение.
это как?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39699780
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Леонов ЮрийНо тут решил из запроса убрать бинд-переменную и поставить вместо нее значение.
это как?

Был запрос вида
Код: plsql
1.
2.
3.
select field1, field2, field3, ... fieldn
  from table t
where t.bank_n = :PBankN


который долго тупил на большом объеме данных.

Запрос вот такого вида
Код: plsql
1.
2.
3.
select field1, field2, field3, ... fieldn
  from table t
where t.bank_n = 333333


отрабатывает за секунду с небольшим.

Почему так - я не знаю, мож баг компоненты
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39699781
Фотография Квейд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрий,

Prepare вызывал?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39699788
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийПочему так - я не знаю, мож баг компонентыможет статистика ушла вот он и задумался с косым планом. а тут hard parse прошел и с нормальным планом быстро достал
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39700017
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов ЮрийПочему так - я не знаю, мож баг компонентыИндекс по полю есть? Подключён?
План запроса смотрел? Статистика актуальна?
Сколько одновременных блокировок на таблице?
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39700080
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леонов Юрий, это называется "запрос с параметрами"
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39700231
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего статистика и тормозит. В проекте используются активно материализованные вьюхи, при удалении данных из таблиц, входящих в нее, рушится статистика, приходится пересобирать. В этот момент я наверное и попал, что статистика не собрана была. Спасибо за подсказку
...
Рейтинг: 0 / 0
cxGrid + FetchAll + GridMode
    #39700249
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КвейдЛеонов Юрий,
Prepare вызывал? Если имеется ввиду выполнение параметризированого запроса, то да. Но после Prepare переопределял все параметры (DataType, ParamType).
...
Рейтинг: 0 / 0
74 сообщений из 74, показаны все 3 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / cxGrid + FetchAll + GridMode
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]