|
|
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
tru55А выбрать из нескольких способов наилучший - тоже? Перебором или еще как? Статистики и прочая - все это хрень, их придумали проклятые буржуины что бы дороже продавать свои многомегабайтные библиотеки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 17:44:34 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
GYGYEmery Хочу сделать простой аналог ядра 1С77 на MFC. Написать замену SQL, написать замену VFP, написать аналог 1С... -> я про ОС уже спрашивал - нет? Непонятно только зачем? Только потому, что мне это интересно. Надоест, не буду писать. Неужели для вас это так важно, что я пишу и зачем? В Интернете много чего написано, одно интересно одним, другое другим, третье вообще никому не интересно, но ведь кому-то было не влом писать. И что на все, что не вашем вкусе, надо тратить свои эмоции? По-моему, достаточно одного безразличия, если что-то действительно глупо. Хотите пропагандировать собственные идеи – пишите, почитаем. Как там, у классика, «писатель пописывает, читатель почитывает» :) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 17:45:39 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
tru55Emerytru551. Не поверишь, но в определенных случаях full scan быстрее индексного доступа Ну почему не поверю, если сам использую довольно часто. Кстати, речь о циклах у меня идет четвертым пунктом этой статьи. Зачем тогда фраза про "технологию применения индексов"? И кстати, причем здесь циклы? А чем «full scan» отличается от перебора в цикле? Индексы нужны для сортировки, поиска и выборки данных по условию. tru55Emerytru552. акромя всяких доступов, есть еще вопросы соединения таблиц в запросе, сортировки результата и проч. Это я могу сам сделать вручную. А выбрать из нескольких способов наилучший - тоже? Перебором или еще как?[/quot] У меня достаточный опыт разработки и внедрения учетных задач на реальных предприятиях, чтобы уже других обучать этому ремеслу. Поверьте, с оптимизацией кода и данных у меня проблем нет. Есть проблема только переписать хороший работающий код в еще лучший. Просто нет достаточного стимула для этого. Работает и ладно. Есть даже неписанный закон программистов, «не трогай, без крайней необходимости, нормально работающую программу» :) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 17:56:50 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Emery А чем «full scan» отличается от перебора в цикле? Так и индексный доступ организуется через цикл (если только нужно выбрать не одну запись). Это очевидно, зачем об этом говорить? Emery Индексы нужны для сортировки, поиска и выборки данных по условию. 1. сортировка результата может осуществляться и при отсутствии индекса 2. для поиска и выборки и fullscan используется Emery У меня достаточный опыт разработки и внедрения учетных задач на реальных предприятиях, чтобы уже других обучать этому ремеслу. Поверьте, с оптимизацией кода и данных у меня проблем нет. Хм-м-м... У меня тоже опыт немалый, но при необходимости соединить в SQL-запросе десяток таблиц я лично не берусь с ходу сказать, лучше начинать соединять первую со второй, или сначала пятую с десятой. Да и способы соединения могут быть разные (nested loops, hash join и проч). Собственно, поиском наилучшего решения и занимаются оптимизаторы SQL баз. Также как и использовать / неиспользовать индексы (и какие), особенно если их несколько ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 18:07:06 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Emery Если вам нужен движок БД для локального доступа - типа напоминалки ДР друзей - посмотрите MS JET Blue . Разумеется, если Вы не хотите изобретать самокат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 19:40:55 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
EmeryGYGYXML, JSON и т.д. - в топку? Я под TXT понимаю обычные *.txt файлы, а не *.html, *.xml и т.п. файлы. С точки зрения MIME64 любой бинарный файл является текстовым. Так что будем понимать под TXT то что было еще на заре компьютерной эпохи. У sgml нет привязки к средствам отображения, чего про dbf не скажешь. т.е. как бы это ни было, но это всего лишь текст. Emery VFP в 1994 году не было. Был FP только, то бишь, FoxPro v. 2.6a под MS-DOS. Визуальный FoxPro появился, начиная с 5-й версии под Win32, а его то как раз еще не было в это время. Хотя, если честно, Windows-95 была опубликована 1 августа 1994 года, так что строго говоря, Win32 уже как бы появилась (если не брать в расчет 32-х разрядные «расширители» под Windows 3.1 / 3.11). Только вряд ли это что меняет в данном случае. первый VFP был 3.0 под 3.11 - насчет года не помню 94/95 - но где то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 19:41:42 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
tru55Так и индексный доступ организуется через цикл (если только нужно выбрать не одну запись). Это очевидно, зачем об этом говорить? Затем, что есть еще и второй пункт статьи – «проводки» (организация повторных промежуточных данных в нужном порядке), которые в паре с циклом могут заменить некоторые типы sql запросов. tru551. сортировка результата может осуществляться и при отсутствии индекса 2. для поиска и выборки и fullscan используется Кому мы тут ликбез устраиваем? 1. Попробуйте без индекса осуществить гигабайтную сортировку данных. Вас прикалывает ждать? Меня нет. 2. Тот же «full scan» или полный перебор в цикле эффективен тогда, когда задействованы все данные, например для формирования сложного отчета по всей таблице (однако если вычисления очень громоздкие и типичные, то следует подумать о промежуточных вычислениях («проводках»)). Если данных очень много, а нужна только их существенно малая часть, то без индексов программа будет работать «бесконечно» долго. Все это очевидные вещи, к чему разговор то? tru55У меня тоже опыт немалый, но при необходимости соединить в SQL-запросе десяток таблиц я лично не берусь с ходу сказать, лучше начинать соединять первую со второй, или сначала пятую с десятой. Да и способы соединения могут быть разные (nested loops, hash join и проч). Собственно, поиском наилучшего решения и занимаются оптимизаторы SQL баз. Также как и использовать / неиспользовать индексы (и какие), особенно если их несколько Мне не нравится такой подход. Свою базу данных нужно «чувствовать», как «чувствовать» эффективность разных алгоритмов еще до их использования. Очень часто можно существенно упростить используемые sql-запросы за счет реорганизации своей базы. Оптимизацию нельзя доверять программным «оптимизатором». Это занятие не для профессионала. Для новичка да, пусть пользуется мастерами, генераторами кода и оптимизаторы. С «возрастом» эта «болезнь» пройдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 20:12:09 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Gerros Emery Если вам нужен движок БД для локального доступа - типа напоминалки ДР друзей - посмотрите MS JET Blue . Разумеется, если Вы не хотите изобретать самокат. Я пишу цикл статей по практическому программированию. В четвертой статье я показал преимущества собственных dbf файлов перед сериализацией. В пятой будет идти речь об организации собственных индексов и выбор нужных алгоритмов. В шестой – работа с мультитрэдовыми рантайм библиотеками VFP-9. Затем не исключена возможность демонстрации работы с какими-нибудь бесплатными БД. И т.д. Так что я знаю, что я делаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 20:19:00 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Emery Только потому, что мне это интересно. Надоест, не буду писать. Неужели для вас это так важно, что я пишу и зачем? В Интернете много чего написано, одно интересно одним, другое другим, третье вообще никому не интересно, но ведь кому-то было не влом писать. И что на все, что не вашем вкусе, надо тратить свои эмоции? По-моему, достаточно одного безразличия, если что-то действительно глупо. Хотите пропагандировать собственные идеи – пишите, почитаем. Как там, у классика, «писатель пописывает, читатель почитывает» :) . Я и не тратил эмоций. Хотел узнать зачем человек хочет нестандартно изобрести велосипед. Узнал, что человеку просто интересно писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 20:22:11 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
а че про xml никто не вспоминает? странная какая-то дискуссия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 23:18:46 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Полудённыйа че про xml никто не вспоминает? Слегка было Полудённыйстранная какая-то дискуссиясогласен :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2009, 23:45:27 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Emery Позвольте другим быть другими и это вам зачтется в будущей жизни! Так никто ж не запрещает, нравится писать - пишите. Но Вы приходите со своими идеями на профильный форум, упорно настаиваете на прочтении Ваших статей, на которые потом ссылаетесь по номерам (этот вопрос я рассмотрел в седьмом абзаце своей четвертой статьи), но это не важно, а потом дуетесь на критику. Зачем приходил однако? (С) Кстати, раз озоглавили топик "Альтернатива SQL запросам", то давайте об SQL запросах и говорить. Например как в Вашей системе будет альтернатива запросу select * from table_1 where id not in (select id from table_2); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 00:49:36 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Виноват, фразу "Например как в Вашей системе будет альтернатива запросу" следует читать "Например как в Вашей системе будет выглядеть альтернатива запросу" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 00:52:34 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Emery пишет: > типа тупым перебором? За что тут давать патент то? Да, выражения FOR Я не знаю патент, поэтому не могу сказать. > прописаны в CDX файлах и индексы там сильно с выражениями FOR связаны > (если они присутствуют). Конечно, это должно входить в технологию > Rushmore. Однако почему вы думаете, патент Rushmore только на > организацию выражений FOR и индексов на его основе в CDX файлах? Я > последовательности файла логической» входит в этот патент. Ни вы не Вы патент когда-нибудь видели ? Патент -- это одно изобретение, решение одной конкретной задачи. Ладно, я что-то уже совсем ничего не понимаю. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 02:17:35 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Emery пишет: > переживет. Если формат текстового файла можно считать первым форматом, > то DBF это второй формат, а посему он или его аналог (для 8-ми байтных > указателей) будет также «вечен», как и формат TXT. DBF -- это и есть TXT, текстовый файл, с записями (строками) постоянной длины и с бинарным заголовком. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 02:20:19 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
GYGY пишет: > А 15 лет назад не было ни 95-го Windows, ни VFP, ни даже MS VS C++ 6 & > MFC, ни MMF. > > VFP уже была. +1. в 95 мы уже переписывали проги на FP под винду с доса. Кстати, MFC тоже уже был достаточно давно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 02:22:07 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Emery пишет: > VFP в 1994 году не было. Был FP только, то бишь, FoxPro v. 2.6a под > MS-DOS. Визуальный FoxPro появился, начиная с 5-й версии под Win32, а > его то как раз еще не было в это время. С 3-ей, а не с пятой. Хотя, если честно, Windows-95 > была опубликована 1 августа 1994 года, так что строго говоря, Win32 уже > как бы появилась (если не брать в расчет 32-х разрядные «расширители» Ты знаешь, платформа Win32 существовала ДО Windows-95. Кстати, если не ошибаюсь, первый VFP как раз на ней и работала. Т.е. ей было не обязательно работать под Windows-95 или NT. До VFP была 2.6 под Windows, мало чем отличавшаяся по сути от VFP, а если и отличавшаяся, то в лучшую сторону. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 02:26:53 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Gerros Emery Если вам нужен движок БД для локального доступа - типа напоминалки ДР друзей - посмотрите MS JET Blue . Разумеется, если Вы не хотите изобретать самокат. а еще был парадокс, а к нему был парадокс енжин на си. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 03:31:12 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Emery Я пишу цикл статей по практическому программированию. В четвертой статье я показал преимущества собственных dbf файлов перед сериализацией. В пятой будет идти речь об организации собственных индексов и выбор нужных алгоритмов. В шестой – работа с мультитрэдовыми рантайм библиотеками VFP-9. Затем не исключена возможность демонстрации работы с какими-нибудь бесплатными БД. И т.д. Так что я знаю, что я делаю. Вчера подрубил dbf файл к php движку. особых приимуществ я не заметил. я вообще считаю, что самое правильное - это исходить из соображений трудозатрат. чем меньше времени я потрачу на изготовление программы, тем лучше. и совершенно неважно, будет ли в качестве бд dbf, sqlite, txt, json, xml, mysql, mssql, postgresql - всеми этими технологиями я владею и буду применять их в зависимости от ситуации... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 09:09:13 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
c127Так никто ж не запрещает, нравится писать - пишите. Но Вы приходите со своими идеями на профильный форум, упорно настаиваете на прочтении Ваших статей, на которые потом ссылаетесь по номерам (этот вопрос я рассмотрел в седьмом абзаце своей четвертой статьи), но это не важно, а потом дуетесь на критику. Зачем приходил однако? (С) Ну, откровенно говоря, я ожидал большей критики и неприятия. Так что это еще цветочки :) . Зачем приходил? Да по простой причине, мне не нравиться культ клиент – серверных технологий, не вообще, а в силу как бы истины в последней инстанции. Единственное что я хочу показать, что на SQL свет клином не сошелся и доминирование этой технологии больше вызвано коммерческими причинами чем, технической необходимостью. Просто у каждой технологии есть свой ниша. Промышленные и бесплатные SQL сервера хороши в своей нише, а альтернативные технологии (файл – сервер, эквиваленты SQL запросов и др.) в своей. Я признаю ваше право на существование вашей технологии, а вы мое и все, нет никаких проблем, а есть конструктивное сотрудничество. Проблемы начинаются тогда, когда есть желание одной стороны обратить в свою «веру» другую сторону. Те же бесконечные споры сторонников Win32 и Linux или COM серверов и CORBA и т.п. В принципе, есть модератор, который управляет форумом. Пусть он и решает, что правильно, а что нет. c127Кстати, раз озоглавили топик "Альтернатива SQL запросам", то давайте об SQL запросах и говорить. Я просто отвечаю на те вопросы и замечания, которые задаются. c127Например как в Вашей системе будет альтернатива запросу select * from table_1 where id not in (select id from table_2); Количество кода будет немного побольше, зато не будет операторов Select SQL. Вообще-то все запросы у меня должны быть осмыслены, насколько часто они используются, можно ли избавится от них, реорганизовав свою базу данных, т.е. база данных должна быть спроектирована под минимальное количество несложных запросов. Я приведу здесь эквивалентный код на VFP, все используемые функции имеют или будут иметь у меня свои аналоги и на С++. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 09:18:18 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Emery Количество кода будет немного побольше, зато не будет операторов Select SQL. Вообще-то все запросы у меня должны быть осмыслены, насколько часто они используются, можно ли избавится от них, реорганизовав свою базу данных, т.е. база данных должна быть спроектирована под минимальное количество несложных запросов. В SQL-технологии (и в частности в sql-engines) заложено очень много возможностей. Версионность, изоляция транзакций. Вы в вашей постановке отказываетесь от этих возможностей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 09:24:23 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
MasterZivВы патент когда-нибудь видели ? Патент -- это одно изобретение, решение одной конкретной задачи. Буржуи уже давно выдают патенты на алгоритмы и технологии. MasterZivЛадно, я что-то уже совсем ничего не понимаю. Как бы там ни было, я пока не собираюсь заниматься физической дефрагментацией файлов, ради ускорения процесса построения и выборки индексов. Просто примем к сведению, что для CDX файлов такая фишка существует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 09:32:02 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
Emeryc127Например как в Вашей системе будет альтернатива запросу select * from table_1 where id not in (select id from table_2); Количество кода будет немного побольше, зато не будет операторов Select SQL. Вообще-то все запросы у меня должны быть осмыслены, насколько часто они используются, можно ли избавится от них, реорганизовав свою базу данных, т.е. база данных должна быть спроектирована под минимальное количество несложных запросов. Я приведу здесь эквивалентный код на VFP, все используемые функции имеют или будут иметь у меня свои аналоги и на С++. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. А, во-вторых, где вся та работа с DBF и CDX (а не использование чужих библиотек), о которой вами написано столько текста? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 09:37:25 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
MasterZivDBF -- это и есть TXT, текстовый файл, с записями (строками) постоянной длины и с бинарным заголовком. Я это и имел в виду, когда писал, что DBF переводится в TXT парой строчкой кода. Однако, убрав заголовок, текст не получишь. Во-первых, последний символ DBF – бинарный, во-вторых, нет переводов строки между записями, поэтому импорт такого «текста» просто так не осуществишь и, в-третьих, иногда присутствуют бинарные нули в полях, которые заполнены значениями не полностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 09:42:50 |
|
||
|
Альтернатива SQL запросам
|
|||
|---|---|---|---|
|
#18+
MasterZivС 3-ей, а не с пятой. Может быть, значит, я их пропустил, когда сидел на FP 2.6 /2.6а MasterZivТы знаешь, платформа Win32 существовала ДО Windows-95. Кстати, если не ошибаюсь, первый VFP как раз на ней и работала. Т.е. ей было не обязательно работать под Windows-95 или NT. Не хочется мне на эту тему спорить, пусть будет так. MasterZivДо VFP была 2.6 под Windows, мало чем отличавшаяся по сути от VFP, а если и отличавшаяся, то в лучшую сторону. FP 2.6 /2.6а я неплохо знаю, она если и работала под Windows-95, так только в DOS-сессии. Это 16-ти разрядное приложение, а не 32-разрядное. Насчет «лучшей стороны» очень спорный вопрос. Ядро у FP / VFP отличное, чего не скажешь про интерфейс. Даже нынешний интерфейс VFP-9 мне очень не нравиться, но DOS-овский интерфейс это вообще полная «дупа». Он работал через BIOS в рамках объема 640 КБ, даже если на компьютере была расширенная память. Причем, в эти 640 входил объем самого интерпретатора FP (компилятора в экзешник у меня не было), так что на интерфейс оставалось в лучшем случае 350 – 380 КБ. А это позволяло открыть одновременно не более 6 окон в программе. Далее, банальная нехватка памяти. Чтобы выкрутится, приходилось писать практически безинтерфейсные программы, что сильно портило впечатление о FP. Ситуация мало изменилась сейчас, с интерфейсом VFP лучше не работать, вон «Парус» (или, другой пример, «Тендер-Контракт») пошел по этому пути и проиграл. Интерфейс у него работал жутко медленно, поэтому сейчас он стал делить общие программы на автономные подпрограммы, что тоже не очень хорошо. Зато работа напрямую с мультитрэдовыми рантайм библиотеками из интерфейса MFC меня очень привлекает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2009, 10:06:53 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36153593&tid=1344302]: |
0ms |
get settings: |
6ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
210ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
78ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 533ms |

| 0 / 0 |
