Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Select в Delphi+Cache
|
|||
|---|---|---|---|
|
#18+
Вопрос к спецам по 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2006, 12:45 |
|
||
|
Select в Delphi+Cache
|
|||
|---|---|---|---|
|
#18+
есть второй вариант: сделать объектную обертку для данных и можно пользоваться стандартным SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2006, 13:33 |
|
||
|
Select в Delphi+Cache
|
|||
|---|---|---|---|
|
#18+
Насколько я понял прямой доступ самый быстрый. А результат нужен очень быстро ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2006, 13:46 |
|
||
|
Select в Delphi+Cache
|
|||
|---|---|---|---|
|
#18+
Тут наверно 2 темы для разговора о скорости - 1) как быстро выбрать и 2) как быстро отправить. По первой лучше конечно если будет поддерживаться актуальным соответствующий индекс. По второй наверно стоит подумать не об sql интерфейсе к каше, а о CacheObject интерфейсе и принимать данные через callback без промежуточной глобали. Данные выборки аккумулировать на клиенте в датасете, скажем TMemoryTable. Это два намека. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2006, 14:08 |
|
||
|
Select в Delphi+Cache
|
|||
|---|---|---|---|
|
#18+
Стройте перекрёстные ссылки для даты и кода товара во время сохранения данных. Тогда вопрос снимется сам собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2006, 17:14 |
|
||
|
Select в Delphi+Cache
|
|||
|---|---|---|---|
|
#18+
jvvСтройте перекрёстные ссылки для даты и кода товара во время сохранения данных. Тогда вопрос снимется сам собой. Ничего не понял, а завтра еще какой появится критерий отбора и что перестраивать глобаль или достраивать новую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2006, 17:57 |
|
||
|
Select в Delphi+Cache
|
|||
|---|---|---|---|
|
#18+
И еще вопрос по передачи отобранных данных Delphi приложению. Вопрос по прежднему открыт. Кто нить пишел на Delphi по Cache? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2006, 17:58 |
|
||
|
Select в Delphi+Cache
|
|||
|---|---|---|---|
|
#18+
Почему Вы думаете, что доступ к глобали будет быстрее SQL в данном случае? Вы можете создать класс (таблицу), построить правильные индексы и при выполнении SQL-запросов Cache' будет сама писать программы на прямом доступе. Эффективность одинаковая, а писать проще. Можно просто создать класс и Cache' сама построит глобал, можно построить класс для глобала. Прямой доступ стоит использовать, если, например, Вы хотите сделать свои собственные индексы, которые невозможно построить в SQL. Например, полнотекстовый поиск по документам. В этом случае опять таки делаете системный класс для индексирования и наследуете Ваши классы от него. Системный класс занимается поддержкой индекса и поиском по нему. Все пишете на прямом доступе. Но в случае выбрать все документы, где дата создания между А и Б, не стоит писать на прямом доступе. Другой пример использования прямого доступа - массовая загрузка данных. Нужна в телекоме, финансах, энергетике. Так что советую Вам обсудить архитектуру Вашей системы с консультантами InterSystems, которые могут помочь наилучшим образом использовать Cache. Про Delphi у меня есть подробное письмо с примерами, но я не знаю Вашего почтового ящика, так что отправить не могу. Вадим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2006, 19:34 |
|
||
|
Select в Delphi+Cache
|
|||
|---|---|---|---|
|
#18+
cache-var@mail.ru Здесь я пытаюсь разобраться с оптимальным написанием программ под Cache, все результаты тестов по производительности буду выкладывать здесь. Буду признателен за любую информацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2006, 20:32 |
|
||
|
|

start [/forum/topic.php?fid=39&fpage=88&tid=1559585]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 390ms |

| 0 / 0 |
