Пятница, 29.11.2024
Мой сайт
Меню сайта
Статистика

Онлайн всего: 123
Гостей: 123
Пользователей: 0
Главная » 2024 » Январь » 22 » База по смертности для тестирования (1)
23:03
База по смертности для тестирования (1)

База по смертности для тестирования (1)

Информацию обрабатывает сервер базы данных. Хороший сервер должен быстро обрабатывать массив данных такого размера на машине условного 2010-го года выпуска. База большая, но очень простая по структуре (потому так удобна для тестирования). В ней несколько тех самых таблиц с очень большим количеством записей. Вот их информация и должна быстро выбираться и суммироваться. Быстро это вывод данных не больше чем за секунду.
Программы есть разные. Для разных сред и задач. Например, Си-диалект Arduino и его оболочка больше всего похож на Турбо Си 1991-го, что ли, года выпуска. И это хорошо. Во-первых, 10 дет назад для микроконтроллеров был только ассемблер. Во-вторых, что-то другое нужно для больших проектов, которые не влезут в маленькую память микроконтроллера. Т.е имеющийся инструмент подходит к задаче.   
Сервер это инструмент обработки таблиц с данными. Реально их только два. Это MS-SQL-Server и Interbase (от фирмы Borland). Конечно, их больше. Если очень надо, можно написать какое-то хранилище таблиц и интерпретатор SQL-строк. Они есть. Для смартфонов, например, есть отдельная база. MS-Access сам по себе это умеет. Oracle можно вспомнить, который появился в 80-х, которого никто не видел, но спецкурс по SQL строкам в университете (в классе с доской) был именно про него.
Так вот. Interbase, как бы он ни назывался, написан в условном 1995 году. По сути это ещё DOS-овское продолжение. Тогда это было очень круто. У всех появилась возможность сделать себе домашнюю бухгалтерию или что-то другое, используя те самые SQL строки (а не DBF файлы, нормальные для того момента). Проблема в том, что начиная с некого объема данных, там начинает медленно работать вообще все. А этот объем это чуть больше той самой домашней бухгалтерии с 100 строками в год.
Но дело даже не в продуктах фирмы Borland, а в том, что реально большая база позволяет проверить любой сервер. Работает быстро? Значит, хороший, сервер. Медленно? Значит, плохой.
Просто для иллюстрации. База с данными по нескольким отчетам (форма 121, 130 и т.д). Правда, по всей Ленинградской области. Это очень мало по меркам баз данных. В ней, естественно есть список учреждений. Не помню, что мне потребовалось поменять. В каком-то поле этого списка учреждений заменить ноль на единицу. Привычно ввожу строку «UPDATE sUch SET fld1=1». У меня этот запрос минут 10 работал. Я решила, что машина повисла. А это та самая медленная работа вообще всего, начиная с некоторого объема базы. Сама бы не видела – не поверила бы. Это низкое качество уровня муляжа фонарика. Но и такое бывает. 
Поэтому лучше просто проверить то, что притащат любые люди с горящими глазами.
Есть ещё одна неприятная вещь. Технологическая вершина в обработке больших объемов данных это нулевые. В десятых, если смотреть с этой стороны, началась деградация. У того, что я назвала деградацией, есть, как ни странно, плюсы. Но размер данных такой, что база написана по технологиям нулевых (т самый быстрый вариант). Нормальный сервер должен позволять делать и такие вещи.
А теперь чуть подробнее. Раньше вся информация хранилась в отдельных текстовых файлах. Пусть есть список людей с фамилиями, именами, отчествами и датами рождения. На имена пусть зарезервировано место по 20 букв, а на дату хватит 12.45.7890 = 10 букв. Значит, на строку о человеке потребуется 20*3+10=70 букв. Значит, чтобы получить данные о 10-м человеке в списке надо открыть текстовый файл, переместиться от начала на 70*10=700 букв и прочитать 70 букв. Потом это можно разделить на фамилию, дату и т.д.
Таким образом структурированные текстовые файлы с информацией имели расширение DBF. Работали с ними системы Clipper и FoxPro. Эти системы позволяли читать и записывать данные.
Чтобы получить более сложные вещи, например кассовый остаток по приходам и расходам, надо было прочитать и просуммировать в программном цикле все приходы, и вычесть из них все расходы.  
Так работал DOS. Он позволял читать файлы через «окно» и записывать в них. Причем «окно» считываемой информации было небольшое, потому что у DOS-а было (по современным меркам) очень мало оперативной памяти.
Скорее всего, какие-то те ограничения просочились в Interbese, который был написан, в момент перехода от DOS к Windows, потому он так медленно и работает. Полноценные сервера под Windows используют всю память (которой теперь много).  
«Толстый клиент 1C» это тоже, по сути, DOS-овский вариант работы с информацией. Это может быть не очень плохо, если нужно только одному пользователю на одной машине. Это начинает очень медленно работать, когда этим надо пользоваться через сеть. Проблема решается «удалёнными рабочими столами» а не полноценной сетевой работой.
Чего-то я забралась в дебри. Надо их как-то упорядочить.
DOS-овская работа с файлами плохо. Сервер базы данных и клиентское приложение, запрашивающий с сервера информацию, хорошо.
Медленно работающий сервер – плохо (чем бы это ни было вызвано).
С этими утверждениями вряд ли кто будет спорить. Это так с условного 2000-го года.
Дальше интереснее и неоднозначнее. Имеется в том же 2000-м году некий экономист Миша, которому просто надо отслеживать хозяйственную деятельность. И все ему неудобно. 1С до 8.2 версии 2009-го года был крайне неоднозначен. И официальный план счетов, рассчитанный на одну фирму, его не устраивает. У него этих фирм 20 и надо считать какие-то итоги по их общей деятельности. 
Именно такому Мише даётся Excel, которого тоже мало. Можно на странице формулой посчитать кассовый остаток, последовательно внося приходы и расходы. А вот подотчёты в Ecxel-е закрывать уже неудобно.
А в базе данных это все сделать можно. Потому ещё такой Миша получает Access с кучей возможностей что-то сделать без программирования или с очень простым программированием.  И многие не программисты что-то себе делали и использовали.
Внимание вопрос: Что лучше? Упрощённый вариант базы, с которой справится средний Миша или полноценный сервер с кучей возможностей и хорошим быстродействием?
Правильный ответ: Вопрос дурацкий. Нужно и то и другое и возможность объединения. Это все и есть. Если возможность подключать Access к серверу. Есть возможность писать и там и там сложные программы.
Тут важно, что быстродействие может быть не так важно как простота использования, позволяющая увеличить количество пользователей.
В нулевые годы на площадке имеются:
1] Опытный пользователь экономист Миша, что-то себе сооружающий с помощью интерфейса.
2] Я, т программист полностью перешедший на работу с SQL строками и предпочитающий писать их там, где надо (т.е в сервере). Клиент – серверная работа предполагает, что клиентское приложение запрашивает какую-то информацию  (вызывает хранимую процедуру с параметрами), а сервер внутри себя все выбирает и передаёт клиенту только нужное (так меньше нагрузка на сеть).
3] Программист X, пишущий SQL строки, но дальше работающий так, как работал в DOS-е.
Опять же, живьём видела. Он первой SQL-строкой выбирал условные кассовые приходы, второй расходы, а потом в тексте клиента все это суммировал. Ещё гордился тем, что у него такой быстрый низкий уровень типа ассемблера.
С №3 тихо боролись все нулевые. Но, с другой стороны, отправка на сервер SQL строки выборки (вместо имени хранимой процедуры и параметров) не всегда клиника. Иногда так проще. Иногда иначе никак. Все определяется тем, насколько быстро сервер выполнит этот запрос и вернёт нужную информацию. Сервер – штука умная. Он смотрит, что у него запрашивали; и на для часто запрашиваемого, похоже, формирует внутренние сценарии, ускоряющие процесс.

Просмотров: 42 | Добавил: akostina76 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа
Поиск
Календарь
«  Январь 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
293031
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2024
    Бесплатный конструктор сайтов - uCoz