View previous topic :: View next topic |
Author |
Message |
GaMaK
Joined: 21 Oct 2002 Posts: 15
|
Posted: 25 Oct 2002 13:28 Post subject: Есть интерсная идея с быстрой генерацией отчетов |
|
|
Правда отчёты прийдётся делать самостоятельно
У MS SQL и у Oracle 9i существует такое понятие как external table (для MS SQL читать здесь http://www.accent6.com.ua/kbase6/SQL/sql_dbf.htm ). То есть если прицепить к СУБД файлы БЭСТ, то можно с ними работать на серверной стороне при помощи обычных SQL запросов. В качестве плюшек получаем прекращение гоняния по сети сырых данных, уменьшение сетевого трафика и соответсвенно ускорение генерации отчетов (очень значительное ускорение). Из минусов - отчеты прийдётся рисовать самостоятельно. |
|
Back to top |
|
|
CreaZ
Joined: 04 Oct 2002 Posts: 9
|
Posted: 28 Oct 2002 11:57 Post subject: |
|
|
В общем без правильного индексирования под MSSQL и Oracle толку не даст, а смогут ли они проиндексировать внешенюю таблицу?!
И сразу накладываеться проблема, если есть удаленные точки, которые работают в своей системе - неудобно объединять данные
Имхо самый простой и правильный вариант - писать все отчеты на fox'e все работает очень быстро и рисовать отчеты просто.
У нас это используеться уже несколько лет, при этом долго считаються только глобальные отчеты.... типа оборота за 2 года в закупочных ценах и ценах реализации в долларах при номенклатуре порядка ~40000 и учете цен только рублевых, то есть закупка и курс просталяються в процессе формирования отчета. |
|
Back to top |
|
|
GaMaK
Joined: 21 Oct 2002 Posts: 15
|
Posted: 28 Oct 2002 14:31 Post subject: |
|
|
Собственно идея в том, что-бы выборки делались на сервере, что-бы не вытягивать сырые данные на клиента. Уж больно тяжко БЭСТ у нас с этим справляется.
Если в Фокс-е можно сделать разделение на клиент и сервер, то хорошо, это решение, если нельзя, то в чём принципиальная разница с формированием отчётов в самом БЭСТ-е ?
А будут использоваться индексы или нет, честно говоря не знаю, смотря насколько по уму промежуточный слой в MS SQL и Oracle прописан... Ручками ещё не трогал. Собствено ведь и про Ораклу тут я говорю только в плане того, что там уже всё сделано, надо только описать данные и пользоваться. Ясно что красившее самим простенький сервер написать. На той-же Delphi TServerDataSet TClientDataSet - всё уже в принципе готово... |
|
Back to top |
|
|
Magistr
Joined: 19 Aug 2002 Posts: 1264 Location: Петрунин Д.Н. Occupation: Инженер-программист Interests: Н.Новгород
|
Posted: 28 Oct 2002 18:56 Post subject: |
|
|
Дайте мне алгоритмы обработки БД БЕСТ для получения отчетов - буду пистать на Delphi 3-х звенку. |
|
Back to top |
|
|
GaMaK
Joined: 21 Oct 2002 Posts: 15
|
Posted: 29 Oct 2002 07:44 Post subject: |
|
|
Magistr wrote: | Дайте мне алгоритмы обработки БД БЕСТ для получения отчетов - буду пистать на Delphi 3-х звенку. |
Батенька, да вы халявщик У нас хлопцы методом научного тыка вроде как всё что сильно потребно уже разворошили... |
|
Back to top |
|
|
CreaZ
Joined: 04 Oct 2002 Posts: 9
|
Posted: 29 Oct 2002 11:57 Post subject: |
|
|
Ну насчет обработки на сервере - вопрос спорный, у нас сервак для БЭСТа - Novell, зато есть не слишком сейчас занятый сервак под w2000, который с Novell'ом связан по 1Gb ethernet, так что фоксовые отчеты запускать на нем через терминал сервис - милое дело, все просто летает.
Разница как уже наверно не раз говорилось просто не сравнимая, в разы и десятки раз так как клипер не умеет использовать запросы.
И в разы в с фоксовыми отчетами, написанными самими интелектовцами.
А насчет алгоритмов отчетов - все зависит от того какой отчет нужен, у нас очень мало стандартных - вопрос обычно такой, приходит кто нибудь и говорит - мне надо вот это, вот в таком виде, вот в таком разрезе ну и начинаешь енто быстро делать.... обычно на создания с нуля такого отчета уходит не более часа, и то если надо рисовать формы.
Delphi - не умеет быстро работать с DBF, так что смысла на нем что то писать для работы с БЭСТом никакого, из всего проверенного для DBF тока фокс рулит, причем VFP хуже, как и все к чему прикоснулся Microsoft. |
|
Back to top |
|
|
Magistr
Joined: 19 Aug 2002 Posts: 1264 Location: Петрунин Д.Н. Occupation: Инженер-программист Interests: Н.Новгород
|
Posted: 29 Oct 2002 14:00 Post subject: |
|
|
Quote: | Батенька, да вы халявщик У нас хлопцы методом научного тыка вроде как всё что сильно потребно уже разворошили... |
Какой халявщик! Да я как пользователесь должен знать, КАК программа обрабатывает данные, чтоб я мог сам проверить правильность этой обработки. Мне не нужны исходники, мне нужны алгоритмы.
Quote: | Delphi - не умеет быстро работать с DBF |
Это стандартный BDE, может быть, не так шустро работает с DBF, а есть немало библиотек (компонент) для работы с DBF базами.
А если БД хранить под Win2K и работать на этой же машине в TS, то будет еще быстрее, чем с Novell-ом.[/list] |
|
Back to top |
|
|
itman
Joined: 05 Apr 2002 Posts: 1247 Location: Ильин Е.Ю. Occupation: Cio Interests: Кинель
|
Posted: 29 Oct 2002 16:55 Post subject: |
|
|
Magistr wrote: |
Какой халявщик! Да я как пользователесь должен знать, КАК программа обрабатывает данные, чтоб я мог сам проверить правильность этой обработки. Мне не нужны исходники, мне нужны алгоритмы.
|
А что там знать-то, тем более для отчетов? есть описание, ты можешь даже по тому, что есть собрать общую картину хранения данных.
Мы используем VFP 7.0, и дальше все зависит от задачи. |
|
Back to top |
|
|
Magistr
Joined: 19 Aug 2002 Posts: 1264 Location: Петрунин Д.Н. Occupation: Инженер-программист Interests: Н.Новгород
|
Posted: 29 Oct 2002 17:21 Post subject: |
|
|
Quote: | А что там знать-то, тем более для отчетов? есть описание, ты можешь даже по тому, что есть собрать общую картину хранения данных.
|
Какое описание?
Я в бухгалтерии ничего не понимаю, занимаюсь поддержкой работоспособности сети, сервера - для меня не тривиально самому разобраться во всех тонкостях, которые нужны для разарботки алгоритмов построения отчето |
|
Back to top |
|
|
yermak
Joined: 01 Aug 2002 Posts: 45 Location: Ермак Е.Ю. Occupation: ООО "Автоматизированные системы управления" Interests: Владивосток
|
Posted: 29 Oct 2002 17:41 Post subject: |
|
|
2 Magistr
Вся мощь фокса в rashmor'е и хорошей буфферизацией для работы с дисками (правда VFP работает чуть медленнее т.к. ему надо на лету еще перекодировать кодовые страницы).
А насчет Delphi - можно достичь примерно такой скорости используя ADO DB FoxPro Provider. Он там использует тоже ядро что и сам фокс.
Ни и могу сказать еще вот что - фокс не очень сильно грузит сетку, т.е. если условие Rashmor-оптимизируемое или частично оптимизируемое, то данные не удовлетворяющие этому условию и части условия по сети не гоняются, гоняются только индексы, а это на много меньший объем.
Ну об инструментах создания отчетов: раньше я делал их на FPD26 потом перешел на VFP c 5 по 7-ой. Сейчас пользуюс обчным MS Excel'ем - удобнее пользоваться клиентам, а так же можно прямо у них что-то донастраивать и изменять в программе, хотя писать сложнее чем на фоксе. Мой пример есть в банке решений.
При больших объемах данных 1Gb и более (на таблицу, а не на базу) все таки лучше юсать fox (FPD или VFP без разницы), но тут не в коем случае нельзя использовать SQL Select, так как таблицы большие рашмор может не включиться. Там след. технология, например нужны все документы отгрузки за данную дату с заданого склада заданому контрагенту:
ставим главным нужный тег в таблице MDOC
set order tag MDOC_D
ищем первую запись
seek upper(m.SCLAD_CODE+"2"+"4"+DTOS(m.My_Data))
Далее в цикле перебираем записи
scan rest while upper(m.SCLAD_CODE+"2"+"4"+DTOS(m.My_Data))==upper(mdoc.sclad+mdoc.vid+mdoc.type+dtos(mdoc.date)) for mdoc.agentcode=m.MyAgentCode
Внутри цикла буду только нужные записи их копируем в курсор ч/з
append blank, scatter и gather
endscan
_________________ С уважением, Ермак Евгений
г.Владивосток |
|
Back to top |
|
|
CreaZ
Joined: 04 Oct 2002 Posts: 9
|
Posted: 29 Oct 2002 18:27 Post subject: |
|
|
Не согласен, фокс замечательно справляеться и с файлами больше 1 Гб. Например если нужно получить текущие остатки? Перебирать все записи по индексу <=> пересчет остатков в картотеке в БЭСТе - ~1.5-2 часа при номенклатуре ~40000, если сделать на фоксе - 15-20 мин максимум используя исключительно fox sql по 100мб сети. А если попробовать воспользовать файлом mkart для получения остатков, когда с документами работают одновременно человек 10, енто равносильно тому что остатки по random() посчитать, максиму на что он годиться - для получение остатков на начало периода, так как они не меняються постоянно. |
|
Back to top |
|
|
yermak
Joined: 01 Aug 2002 Posts: 45 Location: Ермак Е.Ю. Occupation: ООО "Автоматизированные системы управления" Interests: Владивосток
|
Posted: 30 Oct 2002 03:11 Post subject: |
|
|
2 Creaz
Все правильно, только мой подход быстрее работает когда не надо перебирать всю таблицу, а нужно выдернуть лишь небольшую часть.
У меня был случай когда SQL-запрос выполнялся 40 минут, и после того как я его переписал по изложенному выше принципу, отчет стал появлятся на экране меньше чем ч/з 1 сек. после нажатия на Enter. _________________ С уважением, Ермак Евгений
г.Владивосток |
|
Back to top |
|
|
itman
Joined: 05 Apr 2002 Posts: 1247 Location: Ильин Е.Ю. Occupation: Cio Interests: Кинель
|
Posted: 30 Oct 2002 07:47 Post subject: |
|
|
Magistr wrote: | Quote: | А что там знать-то, тем более для отчетов? есть описание, ты можешь даже по тому, что есть собрать общую картину хранения данных.
|
Какое описание?
Я в бухгалтерии ничего не понимаю, занимаюсь поддержкой работоспособности сети, сервера - для меня не тривиально самому разобраться во всех тонкостях, которые нужны для разарботки алгоритмов построения отчетов. |
Ну , батенька, ты можешь быть изумительным ювелиром, но без знания определенных правил и специифики, ты не сможешь изготовить качественные зубы |
|
Back to top |
|
|
Magistr
Joined: 19 Aug 2002 Posts: 1264 Location: Петрунин Д.Н. Occupation: Инженер-программист Interests: Н.Новгород
|
Posted: 30 Oct 2002 11:33 Post subject: |
|
|
itman wrote: |
Ну , батенька, ты можешь быть изумительным ювелиром, но без знания определенных правил и специифики, ты не сможешь изготовить качественные зубы |
Если есть математическая формализация алгоритма формирования отчета, то знания бухгалтерии не нужны.
yermak wrote: |
Вся мощь фокса в rashmor'е и хорошей буфферизацией для работы с дисками (правда VFP работает чуть медленнее т.к. ему надо на лету еще перекодировать кодовые страницы). |
А что, кеш сервера W2K не устраивает? Я скоро вообще RAM диск собираюсь под БД сделать на сервере W2K. И "долгие" отчеты формировать на серваке либо в TS стандартными средствами БЕСТ, либо свою прогу написа |
|
Back to top |
|
|
|