Последние записи
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
28th
Авг
SQL враг или друг?
Posted by Chas under Статьи
После сдачи летней сессии я уехал домой в деревню “хорошо в деревне летом пристаёт ???? к штиблетам”. Взял с собой ноутбук, что бы не было скучно и с предвкушением долгожданного отдыха, заранее предупредив работодателя, что мне всё надоело и я беру отпуск, уехал.
Через некоторое время раздался телефонный звонок, это был мой школьный друг, он на лето нашёл работу в какой то канторе (как оказалось позже это не большая фирма но с кучей складов) его посадили за комп и сказали работай. Так вот он на выходные напросился приехать в гости, что бы отметить это дело рюмочкой чая. Но когда за рюмочкой чая были сказаны слова в адрес того, что у него на работе очень плохо работает БД и что главному админу приходится прятаться в туалете от разъяренных операторов, которые ждут завершения транзакта по 2-3 минуты, от этих слов мне стало обидно и сам не понимая этого, я сказал, что мы с тобой всё поправим “как оказалось зря я это сказал” вот и кто за язык тянул.
В понедельник мне прошлось отложить на время вилы и лопату и уехать в город. Когда я увидел как у них построена ИС я просто ужаснулся. Сервером была машинка “Intel Pentium 3 ” с тактовой частотой если не ошибаюсь 780 мегагерц. И около 100 компьютеров клиентов которые естественно были не меньше чем Пень 4. Дааа. Интересно кто у них занимался обгрейдом База сама стояла на MSSQL сервере клиенты были сделаны правда в Delphi но очень коряво. Вся проблема состояла в том, что все действия производились только с помощью SQL команд. Будь то тривиальный [select * from ххх] и даже обыкновенная сортировка в таблице номенклатуры, вызывалась прямо с сервера. А теперь представьте у вас 100 да пусть даже 50 компьютеров делают одновременно запрос вывода всех данных и все запросы разные. Комуто вывод данных о клиенте, комуто сортировка списка, комуто вообще запись или редактирования данных. И что? спросите вы. Не чего хорошего. У мен сразу возник вопрос интересно если отцепить HDD от корпуса он взлетит или нет.
Физически все записи находятся в разных частях диска. а записей там порядком: архивы, документы, ссылки и т.д. и т.п. Шпиндель не успевает делать поставленную задачу (особенно если это запись). Оперативная память забита под завязку + “форточки со своими сервисами” кто-то умный догадался сделать 10 гигабайтную зону свопинга на HDD. Мне так стало жаль этот маленький (ну правда не такой уже и маленький 200гб) жёсткий диск, что я счёл для себя делом чести помочь этим горе админам. При всём при том, что они не виноваты.
Когда я стал общаться с главным админом, то он раскрыл мне секрет, что ему уже давно обещали новую технику, но когда он сказал, что для переноса системы придётся на некоторое время отключить БД хотя бы на одну ночь для грамотного переноса, то администрация, подумала и сказала “НЕТ”. Так он уже почти пол года и скрывается то в кабинете, то в туалете, а то были случаи физического насилия со стороны “ТУПЫХ” операторов, которые и умеют, что на кнопки жать. Я его понимаю, он не программист, его дело следить за сетью, хотя ….
Первым делом я ознакомился со структурой БД для реализации этой базочки были использованы все реляционные штучки: такие как связи “1-1″ и т.п. и т.д. Конечно времени небыло, что бы переделывать всю БД мне хотелось разобраться с клиентами и что бы от меня отстали.
Сначала я избавился от всех лишних запросов. Тоесть я всё что делает локальная машина сделал руками, сортировки, поиски фильтрации ну и всякую лабуду. Я использовал, самые быстрые и надёжные алгоритмы, которые уже проверены веками.
Но не всё оказалось так гладко, объём информации на локальных машинах оказался велик и мне по этому пришлось создавать не большую локальную копию БД (но только то, что нужно было именно на данной машине) И все сортировки и поиски производи лись не внутренними способами а внешними.
Затем я упростил запросы к серверу, убрал все операции соединения сложения и т.д. к с сервера приходила только отфильтрованная информация от оператора where всю остальную работу делала локальная машина. Без изменения осталась только операция записи.
На всё это у меня ушло около 2х недель но результат был не скажу, что обалденный, но больше админ у сортире не прятался. это была моя первая подобная крупная система. Только вот что обидно через некоторое время начальство решило поставить 1С на все компы. Моему разочарованию небыло придела.
В итоге хочу сказать начинающим (и не только) программистам не злоупотребляйте SQL запросами там, где это совсем не нужно. Данный язык очень хорош, он облегчает труд программиста, но облегчая себе работу мы порой забываем о другой стороне медали, а она не всегда так же радостна и хороша как и первая.
p.s. Хотел бы посоветовать кое какие книги
- Альфред В. Ахо, Джон Э. Хопкрофт, Джефри Д. Ульман “Структура данных и алгоритмы”
- Джефри Д. Ульман “Введение в системы БД”
- К.Дж.Дейт “Введение в системы баз данных”
- Дональд Э. Кнут “Искуство программирования том3″ Лучше всё
- Кагаловский Михаил “Базы данных для экономистов”
- Глушков Виктор Михайлович “Обработка информационных массивов в АСУ” киев 1974 год
У кого есть две последние книги или в электронном формате или в обыкновенном большая просьба напишите мне на адрес boltonpoul@yandex.ru
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)