Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Select в Delphi+Cache / 9 сообщений из 9, страница 1 из 1
18.04.2006, 12:45
    #33673296
cache-var
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select в Delphi+Cache
Вопрос к спецам по 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
18.04.2006, 13:33
    #33673476
Maksim UM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select в Delphi+Cache
есть второй вариант: сделать объектную обертку для
данных и можно пользоваться стандартным SQL
...
Рейтинг: 0 / 0
18.04.2006, 13:46
    #33673512
cache-var
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select в Delphi+Cache
Насколько я понял прямой доступ самый быстрый. А результат нужен очень быстро
...
Рейтинг: 0 / 0
18.04.2006, 14:08
    #33673595
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select в Delphi+Cache
Тут наверно 2 темы для разговора о скорости - 1) как быстро выбрать и 2) как быстро отправить. По первой лучше конечно если будет поддерживаться актуальным соответствующий индекс. По второй наверно стоит подумать не об sql интерфейсе к каше, а о CacheObject интерфейсе и принимать данные через callback без промежуточной глобали. Данные выборки аккумулировать на клиенте в датасете, скажем TMemoryTable. Это два намека.
...
Рейтинг: 0 / 0
18.04.2006, 17:14
    #33674225
jvv
jvv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select в Delphi+Cache
Стройте перекрёстные ссылки для даты и кода товара во время сохранения данных. Тогда вопрос снимется сам собой.
...
Рейтинг: 0 / 0
18.04.2006, 17:57
    #33674411
cache-var
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select в Delphi+Cache
jvvСтройте перекрёстные ссылки для даты и кода товара во время сохранения данных. Тогда вопрос снимется сам собой.
Ничего не понял, а завтра еще какой появится критерий отбора и что перестраивать глобаль или достраивать новую
...
Рейтинг: 0 / 0
18.04.2006, 17:58
    #33674417
cache-var
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select в Delphi+Cache
И еще вопрос по передачи отобранных данных Delphi приложению. Вопрос по прежднему открыт. Кто нить пишел на Delphi по Cache?
...
Рейтинг: 0 / 0
18.04.2006, 19:34
    #33674663
VadimF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Select в Delphi+Cache
Почему Вы думаете, что доступ к глобали будет быстрее SQL в данном случае?

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

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

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

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

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

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

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

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

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

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


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