|
|
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
ЕВА 2000Я делаю из семерки конфетку, вполне стандартными методами. 1С-овский движок БД на своём месте самоё юзабельное и продвинутое средство для разработки и использования. Без всяких там "+ ядро VFP" Нужно просто уметь готовить! И всё! Выбросите "+ ядро VFP", "весьма нестандартным способом". Задайте стандарты разработки не отступая от майнстрима, напишите документацию, хотя бы в общих чертах и отдыхайте спокойно себе в отпуске. Ваши помощники спокойно всё разрулят! Никаких "возникнут не нужные проблемы" не будет. (сильно подозреваю такой вариант вам не интересен) Если у вас более 1000 человек на работе и вы считаете з/п на 1С77, то мне было бы интересно обсудить ваш вариант. А так, похоже, что вы сами мало что программируете, в основном «руководите». ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 12:40:05 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
EmeryЕсли у вас более 1000 человек на работе и вы считаете з/п на 1С77, то мне было бы интересно обсудить ваш вариант. А так, похоже, что вы сами мало что программируете, в основном «руководите». Опять пальцем в небо. Именно программирую, именно на 1С77. Ухожу от этого, причём не за счет работадателя. Вы хотите нанять меня чтобы вас проконсультировать? Какие условия предлагаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 12:51:44 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
ЕВА 2000Опять пальцем в небо. Именно программирую, именно на 1С77. Ухожу от этого, причём не за счет работадателя. Вы хотите нанять меня чтобы вас проконсультировать? Какие условия предлагаете? Похоже, вам действительно нечего сказать. Мне ваши консультации не нужны, достаточно, если вы просто «похвастаетесь» своими «достижениями» в 1С77. Но если и это «ноу-хау», то оставьте при себе, когда я опубликую свой код по 1С, посмотрите и скажете, лучше у вас или хуже. Впрочем, я догадываюсь, что вы скажете про это с вашим занудным морализаторством. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 13:02:16 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
EmeryЕВА 2000Опять пальцем в небо. Именно программирую, именно на 1С77. Ухожу от этого, причём не за счет работадателя. Вы хотите нанять меня чтобы вас проконсультировать? Какие условия предлагаете? Похоже, вам действительно нечего сказать. Мне ваши консультации не нужны, достаточно, если вы просто «похвастаетесь» своими «достижениями» в 1С77. Но если и это «ноу-хау», то оставьте при себе, когда я опубликую свой код по 1С, посмотрите и скажете, лучше у вас или хуже. Меряться писками? Да ещё забесплатно? Фу-у-у! На это вы меня не разведёте. EmeryВпрочем, я догадываюсь, что вы скажете про это с вашим занудным морализаторством. Разумная целесообразность, честность. И ничего больше. Никаго "морализаторства". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 13:25:07 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
И..... все эти "сочинения" описывают прикручивание очередных костылей к 1сv77? Тема топика так и не раскрыта. Приведенный пример запроса на VFP S(tump)QL выглядят как минимум более непонятно, чем просто на SQL. Неужели организация на столько бедная, что не может купить MS SQL SERVER STD(800$) и дополнительно получить + в виде AS & RS или просто автор не в сосотянии обосновать целесообразность такой покупки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 13:49:15 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
BrainDamageИ..... все эти "сочинения" описывают прикручивание очередных костылей к 1сv77? Тема топика так и не раскрыта. Приведенный пример запроса на VFP S(tump)QL выглядят как минимум более непонятно, чем просто на SQL. Неужели организация на столько бедная, что не может купить MS SQL SERVER STD(800$) и дополнительно получить + в виде AS & RS или просто автор не в сосотянии обосновать целесообразность такой покупки? Автор в академических изысканиях. И в новейших открытиях, уже давно открытого. За счет работадателя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 13:56:40 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Ну судя по названию топика - автор претендует на великое закрыте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 14:01:50 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Ну или лет через 5-6 появится новый цикл статей о том, какая классная штука SQL и об ненужности и бесполезности всяких там MDX, DMX ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 14:05:17 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
BrainDamageНу судя по названию топика - автор претендует на великое закрыте. Да, ради бога. Может Микрософт им заинтересуется. А если нет, то и нефтеналивной базе, тем более, это закрытие никчему! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 14:08:07 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Emery Из-за этого я даже нормально в отпуске не могу побыть . Хоть раз в неделю, но обязательно вызовут в фирму. Откровенно скажу, меня такое не прикалывает, но даже те несколько официальных «программистов» , которые работают в нашей фирме, предпочитают заниматься своими делами , а не моими . Причем такое безразличие проявляется даже на форумах 1С . Да и здесь, все думают, что я несу пустой бред , хотя, как я уже сказал, эти идеи позволили из «семерки» сделать «конфетку». В принципе тут уже все сказано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 14:13:28 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
ЕВА 2000 Да, ради бога. Может Микрософт им заинтересуется. А если нет, то и нефтеналивной базе, тем более, это закрытие никчему! Это вряд ли. У MS к FoxPro очень садисстский интерес (ИМХО). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 14:17:19 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
BrainDamageЕВА 2000 Да, ради бога. Может Микрософт им заинтересуется. А если нет, то и нефтеналивной базе, тем более, это закрытие никчему! Это вряд ли. У MS к FoxPro очень садисстский интерес (ИМХО). Какой-нибудь свой супер MS-Lite-non-SQL придумают к С#, с крутыми быстрыми индексами, и методами выборки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 14:37:10 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
EmerymiksoftДанный код эмулирует лишь один из вариантов выполнения исходного SQL-запроса. Причем не самый оптимальный в случае, когда количество записей в таблицах table_1 и table_2 сопоставимо и велико.Пока это голословное утверждение. Если вы так говорите, то приведите вариант более оптимального решения по аналогии с моим. Количество записей в table_2 не принципиально, поскольку обращение к ним происходит по индексу.Именно, что принципиально. Вам известен алгоритм соединения слиянием? Ваш алгоритм имеет трудоемкость O(N*log(M)), где N и M - количество записей в первой и второй таблицах соответственно. Слегка модифицировав алгоритм соединения слиянием, можно получить алгоритм трудоемкостью O(N+M), что при M сопоставимом или большем,чем N, дает значительно меньший рост.EmerymiksoftА, во-вторых, где вся та работа с DBF и CDX (а не использование чужих библиотек), о которой вами написано столько текста? Работа с DBF продемонстрирована в «MFC-04. MMF чтение и создание DBF файлов вместо сериализации для виртуальных списков» , о чем уже не раз говорилось. Работа с CDX будет в следующей, пятой статье, которую я сейчас готовлю. Здесь она будет опубликована в разделе «С++».Нет, там теоретические изыскания. А вы покажите аналог обсуждаемого запроса именно в операциях с DBF и CDX. Процитирую вас же: EmeryДля подобных задач применять коммерческие движки баз данных достаточно глупо, а использование безплатных библиотек типа MySQL, MyLibSql и т.д. слишком громоздко для таких простых задач (особенно первой). Так что важный вывод, для написания относительно несложных шароварных программ с элементами баз данных лучше всего использовать небольшой по объему, общедоступный код (например, в моем варианте, который я со временем опубликую полностью), без явного применения SQL запросов, что должно сказаться положительно на качестве шароварных программ и их конкурентно способности.Вот и покажите "небольшой по объему код" без применения коммерческих движков и бесплатных библиотек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 15:53:45 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
maytonЯ так думаю, Emery разрабатывает весьма специализированные системы (скорее всего) однопользовательского доступа (1 клиент=1 база). Я нечто подобное тоже пописывал, но сейчас думаю сделал бы по другому. Я ориентируюсь на стандартный учет на предприятии: начислений / ресурсов / бухгалтерии. Такой учет не может быть монопольным, если речь не идет о сверхмалых фирмах. Многопользовательский режим реализуется как терминал – сервер. maytonПо поводу собственно идеи. Я полистал исходники Enery, почитал и понял, что речь идёт о "memory mapping DBF files" для сериализации состояния некоторых контролов, а также для иммитации работы встраиваемой СУБД. Насколько я понял, автор развивает эту идею и пропогандирует её для применения в промышленном масштабе. Если это так - тогда у меня есть несколько вопросов. Не совсем так. Имеется в виду написать клиента, который сможет, как свободно подключаться к некоторым коммерческим и безплатным серверным БД, так и вообще работать без двигателя. Типа как сделала 1С в версиях 7.7 и 8.х. mayton1) По сериализации контролов вроде-бы всё ясно. Здесь у меня нет возражений. Далее. Аспекты иммитации работы СУБД. Как известно современные СУБД используют режим "опережающей записи" транзакций в специальный кольцевой буфер, который находится на диске. (В MS-SQL - это просто монотонно растущий файл). В табличные файлы (сегмент данных) грязные строки (блоки строк) сбрасываются в фоновом "режиме" по таймеру или по достижению контрольных точек из оперативной памяти. Такой режим работы обеспечивает "мягкую" нагрузку на диск (только по записи) и обеспечивает 100% возможность воостановления ситемы после crashdown-s. Этот же режим даёт возможность максимально быстрого update для строк которые идут не последовательно, а в случайном порядке. (В качестве примера - те цифры которые приводил автор. 200 млн строк проапдейтить по сложному индексу. Априори известно что будут проапдейчены 33% из этого количества и расположены они в сегмента данных абсолютно случайно. Если применить технологию отображения памяти в файл (вы помните, что я насчитал 6.5 Гигабайт пространства в другом топике) то мы будем постоянно выходить на неоптимальные операции I/O. Здесь не поможет ни дисковый буфер с его жалкими 16-32Мб, ни технологии TCQ, т.к объём данных которые надо изменить чрезвычайно велик и расположен неупорядоченно). Возникает разумный вопрос, насколько глубоко автор реализовал подобные идеи дисковой оптимизации? Если да - то как? Если нет - то почему? Короче меня интересуют скорость OLTP и аналитических транзакций. Сюда-же можно добавить вопрос о восстановлении системы после сбоя класса "отключили питание". Если автор считает что мой пример с update слишком искусственный - то пускай обоснует. Вы явно торопите события. Я только в начале пути, чтобы сейчас решать подобные задачи. Пока мои цели проще. Просто переписать на C++ & MFC упрощенное ядро 1С77 и мои собственные конфигурации на нем с максимально возможной потенциальной масштабируемостью. Меня достаточно сильно привлекает режим интенсивного ввода – вывода значительного количества одновременно работающих клиентов. Постепенно я хочу выйти на такую ситуацию. И тогда будут задействованы все идеи, о которых вы упоминаете. Но сначала мне нужна «площадка» для старта в режиме интенсивных нагрузок. Как минимум для этого нужен хороший клиент серверных БД. Вот им мы сейчас и занимаемся. Упоминаемый вами режим работы достаточно интересен и с теоретической точки зрения, так что еще будет время исследовать его поподробнее. mayton2) Аспекты изоляции транзакций. Как? Можно-ли? Каким образом я могу получить доступ к такому DBF из multithreaded приложения? Как могу блокировать строку для обновления? Как раз vfp9t.dll , которую вы не хотите рассматривать и является мультитрэдовой. Прежде чем переходить на стороннюю разработку я хочу некоторое (небольшое) время попрактиковать данные методы «вручную», просто чтобы «прочувствовать» проблему. Если оставаться с «собственным движком», то от «простого» DBF с 4-х байтовой адресацией можно перейти к «расширенному» типа DBFX с 8-ми байтной адресацией. То же касается и ваших вопросов, самостоятельно это можно реализовывать по-разному (исходя из существующего опыта), а используя определенный сервер БД, то исходя из его возможностей. mayton3) Прочие технические ограничения. Цифры. Сколько можно создать таблиц? Какое макс. количество строк на таблицу поддерживается? Максимальное количество столбцов на таблицу? Какой макс. размер сегмента данных (физический объём базы)? Пока я буду оставаться с библиотекой VFP, то буду связан его ограничениями, которые известны (2 Гб на 1 DBF, 64 Кб на 1 запись – количество полей ограниченно этой величиной). Для собственного DBFX или какого-нибудь промышленного формата эти ограничения можно спокойно обойти. Но мне пока возможностей VFP достаточно. maytonВарианты с применением библиотек vfp9r.dll / vfp9renu.dll мы рассматривать не будем. Это неинтересно т.к код "от вендора" и говорить здесь особо не о чём т.к. нет новой идеи. Я имел в виду vfp9t.dll / vfp9renu.dll . Мне очень нравиться ядро VFP, поэтому я пока буду с ним. Насчет «новой идеи». vfp9t.dll является нестандартным COM-сервером и непосредственно использовать его вы запаритесь. В Google если и есть на это ссылки, то только на меня. Смотрите мои сообщения в теме: http://sql.ru/forum/actualthread.aspx?tid=601874#6466891][VS] Работа с dbf и далее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 18:11:10 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
miksoftEmerymiksoftДанный код эмулирует лишь один из вариантов выполнения исходного SQL-запроса. Причем не самый оптимальный в случае, когда количество записей в таблицах table_1 и table_2 сопоставимо и велико.Пока это голословное утверждение. Если вы так говорите, то приведите вариант более оптимального решения по аналогии с моим. Количество записей в table_2 не принципиально, поскольку обращение к ним происходит по индексу.Именно, что принципиально. Вам известен алгоритм соединения слиянием? Ваш алгоритм имеет трудоемкость O(N*log(M)), где N и M - количество записей в первой и второй таблицах соответственно. Слегка модифицировав алгоритм соединения слиянием, можно получить алгоритм трудоемкостью O(N+M), что при M сопоставимом или большем,чем N, дает значительно меньший рост. В моем втором алгоритме вторая таблица не присутствует вообще! И не путайте данные, которые уже отсортированы (проиндексированы) и которые еще предстоит отсортировать. Кстати, лучше алгоритма слиянием алгоритм естественным слиянием для частично (или полностью) упорядоченных записей. Для случайных записей – ультрафиолетово. miksoftНет, там теоретические изыскания. А вы покажите аналог обсуждаемого запроса именно в операциях с DBF и CDX. В этой теме речь идет исключительно о концепции. Если будете следить за моей серией статей, то рано или поздно дождетесь реализации этой концепции в коде. Данный вопрос слишком объемный, чтобы раскрыть его с пол-пинка, miksoftВот и покажите "небольшой по объему код" без применения коммерческих движков и бесплатных библиотек. Со временем покажу, для того и затеял эту канитель с публикацией своих статей. Только для большинства это «напрасный» труд. Если вы тоже так считаете, тогда зачем ждать? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 18:40:23 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
EmerymiksoftДанный код эмулирует лишь один из вариантов выполнения исходного SQL-запроса. Причем не самый оптимальный в случае, когда количество записей в таблицах table_1 и table_2 сопоставимо и велико. Пока это голословное утверждение. Если вы так говорите, то приведите вариант более оптимального решения по аналогии с моим. Вам его привели, по длине кода этот запорс оптимальнее (короче) Вашего. А ведь это очень простой запрос. Emery Вы хотите сказать, что непосредственный запрос Код: plaintext 1. Скорость исполнения запроса не всегда есть критерий. Emery Давайте, тогда большие тестовые таблицы table_1 и table_2 и мы замеряем эти варианты в VFP (или где хотите) и на С++. Правда на разных компьютерах это делать глупо, но что-нибудь придумать можно. При 100 однвременно работающих с БД пользователях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2009, 21:32:30 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
c127При 100 однвременно работающих с БД пользователях? А что, с базой данных может работать более одного пользователя???!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2009, 02:36:32 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
EmeryПрежде чем переходить на стороннюю разработку я хочу некоторое (небольшое) время попрактиковать данные методы «вручную», просто чтобы «прочувствовать» проблему. Если оставаться с «собственным движком», то от «простого» DBF с 4-х байтовой адресацией можно перейти к «расширенному» типа DBFX с 8-ми байтной адресацией. То же касается и ваших вопросов, самостоятельно это можно реализовывать по-разному (исходя из существующего опыта), а используя определенный сервер БД, то исходя из его возможностей. Emery, давайте подводить неутешительные итоги. У меня к вам сейчас будет 1 вопрос. Вы собираетесь разрабатывать свою библиотеку (engine, ядро и т.п.) для обобщения ВСЕГО опыта, который вы получили, при разработке/сопровождении множества custom задач поддержки бизнеса и производства? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2009, 10:51:09 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
maytonEmery, давайте подводить неутешительные итоги. У меня к вам сейчас будет 1 вопрос. Вы собираетесь разрабатывать свою библиотеку (engine, ядро и т.п.) для обобщения ВСЕГО опыта, который вы получили, при разработке/сопровождении множества custom задач поддержки бизнеса и производства? Нет, не собираюсь. Есть в науке такой метод познания: «от простого к сложному» . Кроме того, что я программист, я еще исследователь программ . Мне важен не самописный клон чужой программы, а желание разобраться в концепции ее работы. Для этого совсем не обязательно моделировать ее 100% функционал. Достаточно смоделировать несколько ключевых процентов . Такому подходу, проникновению в суть вещей, я хочу научить других . Так что все гораздо проще, чем вам всем кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2009, 12:51:54 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
EmeryНет, не собираюсь. Есть в науке такой метод познания: «от простого к сложному» . Кроме того, что я программист, я еще исследователь программ . Мне важен не самописный клон чужой программы, а желание разобраться в концепции ее работы. Для этого совсем не обязательно моделировать ее 100% функционал. Достаточно смоделировать несколько ключевых процентов . Такому подходу, проникновению в суть вещей, я хочу научить других . Так что все гораздо проще, чем вам всем кажется. По моему, вы с изрядной долей фанатизма пытаетесь проникнуть в суть С++-кодинга. При этом вас сильно интересует сам процесс а не результат. Потому-как мне кажется того-же результата можно было-бы достичь более оптимальным путём с точки зрения человек-часов и прочих трудозатрат. Не кажется-ли вам, что ваш метод разработки ПО экономически невыгоден. И не кажется-ли вам, что вы хотите научить других ... ээ... ну как-бы это сказать.. неправильной идеологии программирования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2009, 13:05:47 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
maytonПо моему, вы с изрядной долей фанатизма пытаетесь проникнуть в суть С++-кодинга. При этом вас сильно интересует сам процесс а не результат. Потому-как мне кажется того-же результата можно было-бы достичь более оптимальным путём с точки зрения человек-часов и прочих трудозатрат. Не кажется-ли вам, что ваш метод разработки ПО экономически невыгоден. И не кажется-ли вам, что вы хотите научить других ... ээ... ну как-бы это сказать.. неправильной идеологии программирования? Ну, если вам не нравится моя «идеологии программирования», то почему вы думаете, что «неокрепшим умам» она обязательно понравится? Интернет большой и каждый ищет в нем то, в чем видит свою потребность. Что ж вы за всех расписываетесь. Напишите свой цикл статей или книгу с «правильным программированием» и пусть интернетчик выбирает из наших двух опусов, тот, который ему больше нравиться. Мне, например жуть, как не нравится, что наш ребенок обожает пустые бесконечные сериалы ни о чем, если не сказать жестче. Но я не могу на него повлиять и увлечь, скажем, научно-популярными фильмами из Интернета или хотя бы просто научить читать книги. Нет, он твердо предпочитает смотреть «информационный мусор» и совершенно не хочет читать никаких книг, ни хороших, ни плохих. Вот вам и «неокрепший ум»! В школе и ВУЗах тоже ведь учат тому, что в 90% практически не востребовано в жизни. Почему же тогда так «расстраиваться» по поводу нескольких лишних часов потраченных мною на «не нужные» цели? Зачем превращать программирование в ремесло? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2009, 13:58:29 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Emery, программирование всегда было ремеслом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2009, 15:24:23 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовEmery, программирование всегда было ремесломкрасить заборы - тоже ремесло, но и художники есть, однако ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2009, 16:39:54 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифовпрограммирование всегда было ремеслом Не всегда, совсем как управление автомобилем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2009, 19:54:07 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36156923&tid=1344302]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
253ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 583ms |

| 0 / 0 |
