powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Select в Delphi+Cache
9 сообщений из 9, страница 1 из 1
Select в Delphi+Cache
    #33673296
cache-var
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос к спецам по Cache:

Имеется глобаль документов, содержащая 1000000 документов:
^D(1)=номер^дата^организация
^D(1,1)=товар1^колво1^цена1
^D(1,2)=товар2^колво2^цена2

Необходимо отобразить выборку документов за указанный пользователем период, и список документов с определенным товаром и вывести эти данные в например DBGrid,qreport отчет.

Какова технологическая схема такого действия, с максимальным использованием возможностей Cache. Приведу свои вариант, который мне кажется наиболее рациональным:

; Соберем данные
s id="" f s id=$o(^D(id)) q:id="" d
.i ($p(^D(id),"^",2)>=Дата начала)&&($p(^D(id),"^",2)<=Дата оконч) d
..s ^report(id)=^D(id);

После сбора данных через SQL выводим ^report в dbgrid, qreport.
...
Рейтинг: 0 / 0
Select в Delphi+Cache
    #33673476
Maksim UM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть второй вариант: сделать объектную обертку для
данных и можно пользоваться стандартным SQL
...
Рейтинг: 0 / 0
Select в Delphi+Cache
    #33673512
cache-var
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понял прямой доступ самый быстрый. А результат нужен очень быстро
...
Рейтинг: 0 / 0
Select в Delphi+Cache
    #33673595
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут наверно 2 темы для разговора о скорости - 1) как быстро выбрать и 2) как быстро отправить. По первой лучше конечно если будет поддерживаться актуальным соответствующий индекс. По второй наверно стоит подумать не об sql интерфейсе к каше, а о CacheObject интерфейсе и принимать данные через callback без промежуточной глобали. Данные выборки аккумулировать на клиенте в датасете, скажем TMemoryTable. Это два намека.
...
Рейтинг: 0 / 0
Select в Delphi+Cache
    #33674225
jvv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стройте перекрёстные ссылки для даты и кода товара во время сохранения данных. Тогда вопрос снимется сам собой.
...
Рейтинг: 0 / 0
Select в Delphi+Cache
    #33674411
cache-var
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jvvСтройте перекрёстные ссылки для даты и кода товара во время сохранения данных. Тогда вопрос снимется сам собой.
Ничего не понял, а завтра еще какой появится критерий отбора и что перестраивать глобаль или достраивать новую
...
Рейтинг: 0 / 0
Select в Delphi+Cache
    #33674417
cache-var
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще вопрос по передачи отобранных данных Delphi приложению. Вопрос по прежднему открыт. Кто нить пишел на Delphi по Cache?
...
Рейтинг: 0 / 0
Select в Delphi+Cache
    #33674663
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему Вы думаете, что доступ к глобали будет быстрее SQL в данном случае?

Вы можете создать класс (таблицу), построить правильные индексы и при выполнении SQL-запросов Cache' будет сама писать программы на прямом доступе.
Эффективность одинаковая, а писать проще.

Можно просто создать класс и Cache' сама построит глобал, можно построить класс для глобала.

Прямой доступ стоит использовать, если, например, Вы хотите сделать свои собственные индексы, которые невозможно построить в SQL.
Например, полнотекстовый поиск по документам.
В этом случае опять таки делаете системный класс для индексирования и наследуете Ваши классы от него.
Системный класс занимается поддержкой индекса и поиском по нему.
Все пишете на прямом доступе.

Но в случае выбрать все документы, где дата создания между А и Б, не стоит писать на прямом доступе.

Другой пример использования прямого доступа - массовая загрузка данных.
Нужна в телекоме, финансах, энергетике.

Так что советую Вам обсудить архитектуру Вашей системы с консультантами InterSystems, которые могут помочь наилучшим образом использовать Cache.

Про Delphi у меня есть подробное письмо с примерами, но я не знаю Вашего почтового ящика, так что отправить не могу.

Вадим
...
Рейтинг: 0 / 0
Select в Delphi+Cache
    #33674765
cache-var
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cache-var@mail.ru

Здесь я пытаюсь разобраться с оптимальным написанием программ под Cache, все результаты тестов по производительности буду выкладывать здесь.

Буду признателен за любую информацию.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Select в Delphi+Cache
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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