Как стать автором
Обновить
31.71

SQL *

Формальный непроцедурный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Вариант сценария обновления программного комплекса организации

Время на прочтение3 мин
Количество просмотров3.3K

Вступление


В данном посте я расскажу как происходит у нас обновление программного комплекса в организации.
Наша организация предоставляет некие услуги в круглосуточном формате и процесс обновления наших программ, баз данных стоит очень остро, т.к. время простоя системы без работы очень критично и ведет к потери денег наших клиентов. Поэтому я решил поделится с хабрасообществом тем что у нас есть и выслушать все комментарии, критику и предложения по улучшению данного процесса и уменьшению времени простоя работы системы в целом.
Читать дальше →
Всего голосов 1: ↑0 и ↓1-1
Комментарии0

Использование ORM при разработке корпоративных приложений

Время на прочтение9 мин
Количество просмотров16K
Есть много споров о плюсах и минусах ORM, попробуем сделать акцент на плюсах при его использовании в ERP приложениях.

Я 5 лет разрабатываю платформу для ERP, разработал три версии платформы. Всё начиналось с EAV, после была нормальная модель, хранимые процедуры, view-хи, и сейчас эволюционировало до использования ORM. Позвольте поделиться опытом, почему ORM — хорошо.

Для демонстрации преимуществ такого подхода я разработал небольшое приложение для риэлтерского агентства (вдохновение черпал из Циан, из него же и модель данных) и попробую описать, почему благодаря ORM я все сделал за 1 день.

image
Читать дальше →
Всего голосов 48: ↑43 и ↓5+38
Комментарии110

Инструментарий разработчика: SQL Assistant

Время на прочтение6 мин
Количество просмотров48K
Я работаю разработчиком БД (MS SQL) и большая часть моей работы, это написание кода на T-SQL. Работая в Query Analyzer, а затем в Management Studio (2005, 2008, 2008R2) мне очень сильно не хватало функций редактора и дополнительных функций среды разработки, направленных именно на процесс написания кода, построения запросов и т.п… По сравнению с MS Visual Studio или Embarcadero RAD Studio, что мог предложить Query Analyzer? Изменить отступ блока кода, изменить регистр выделенного текста, закомментировать и отменить комментирование блока кода, перетащить название таблицы или поля (полей) в окно редактора, заскриптовать выбранный объект. А ведь так не хватало полноценного IntelliSense. Всех этих удобных функций по автодополнению, интерактивных подсказок к набираемому коду, выбор из списка объектов и т.п.

С выходом MS Management Studio 2005 ситуация не изменилась. И только в MS Management 2008 появился Transact-SQL IntelliSense. Да, появилось автозавершение набираемого слова, предоставление списка объектов БД и полей таблицы, подсветка синтаксических пар (begin… end, ()). Но уже до этого я стал пользоваться сторонней утилитой SQL Assistant от SoftTree Technologies. На фоне возможностей, которые предоставляет SQL Assistant родной IntelliSense просто дубовый. А разве можно получить что-то большего, ведь это SQL, а не объектно-ориентированный язык? Можно! В этой статье я хотел бы рассказать об утилите SQL Assistant, а точнее о функция и приемах, которые я использую при написании SQL-кода.
Примеры использования в картинках
Всего голосов 14: ↑11 и ↓3+8
Комментарии8

Сортировка текстового поля как числа и как строки одновременно в MySQL

Время на прочтение1 мин
Количество просмотров35K
В базе есть текстовое поле, данные из которого нужно вывести в алфавитном порядке, если данные текстовые, или отсортировать как числа, если данные представляют из себя числа.

Пример требуемой сортировки: 8, 9, 10, 11, 12, Android 2.2, Android 2.3, BlackBerry

Подобная сортировка мне понадобилась при разработке фильтра товаров для одного движка магазинов (к нему имею отношение, сочтите за рекламу), в котором могут быть как текстовые данные, так и числовые (а иногда и вместе одновременно, как в примере).

Гугл навёл только на какие-то страшные триггеры и регекспы.
Предлагаю вам предложить своё решение.

Моё решение (выделите текст, чтобы подсмотреть):
ORDER BY value=0, -value DESC, value
Всего голосов 21: ↑11 и ↓10+1
Комментарии18

Истории

EnterpriseDB: мы заберём «свой кусок пирога» рынка СУБД у Oracle!

Время на прочтение3 мин
Количество просмотров7.7K
В конце декабря компания Oracle сообщила о падении своих акций на 9%. Но мне эта новость не показалась удивительной, потому что всего за пару дней до её появления я беседовал с Эдом Бояджаном (Ed Boyajian), президентом и CEO компании EnterpriseDB.

Судите сами — компания EnterpriseDB предлагает аналогичную СУБД, но стоимость её продуктов гораздо ниже, чем у Oracle. Сейчас, когда все стремятся найти более функциональные решения, за меньшие деньги, Oracle все труднее убедить клиентов переплачивать за своё ПО.
Читать дальше →
Всего голосов 47: ↑39 и ↓8+31
Комментарии54

CryptDB: обработка информации в БД без её дешифрования

Время на прочтение2 мин
Количество просмотров4.8K
Исследователи из МТИ представили СУБД CryptDB, которая способна эффективно обслуживать запросы к БД SQL — поиск, сортировка, математические функции и др. — без расшифровки записей базы. Хотя это не первая разработка подобного рода, но благодаря беспрецедентной производительности эксперты считают CryptDB первой, реально пригодной для практического использования. Предполагается, что подобные разработки могут найти применения в системах облачного хранения данных, которые особенно нуждаются в криптографической защите.


Архитектура CryptDB

Подход, реализованный в CryptDB, называется полным гомоморфным шифрованием. Первую полностью гомоморфную модель для СУБД предложил в 2009 году криптограф из IBM Research Крейг Джентри (Craig Gentry), она является гомоморфной для операций умножения и сложения одновременно, что даёт возможность выразить любую математическую функцию. Правда, была одна проблема: скорость операций по сравнению с обычной СУБД возрастала примерно в триллион раз.
Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии17

DigestSDK — автоматизация работы с MSSQL на Delphi

Время на прочтение3 мин
Количество просмотров5.7K

Вступление


Несколько лет назад мне пришлось реализовать работу с таблицами базы данных MSSQL сервера. После написания некоторого количества, фактически однотипного кода, пришла мысль автоматизировать эти «рутинные» действия.
Согласитесь, что написание одного и того же кода, отличающегося только структурой таблиц БД, не может никого вдохновить. К тому же, если кол-во таблиц, с которыми приходиться работать переваливает за десяток, то занятие из разряда скучное — переходит в разряд трудоемкое.
Поиск в интернете на тот момент не дал результатов, поэтому реализацию пришлось взять на себя. .
В результате был создан набор модулей (в дальнейшем DigestSDK) на языке Delphi, позволяющих избавить программиста от написания «стандартного» кода по работе с БД и сосредоточиться на логике самого приложения. .
Демонстрационные примеры, исходные коды и видео по работе с DigestSDK выложил на SourceForge (авось еще кому да и пригодится, заодно и хабр эффект проверим в очередной раз:-))..

Читать дальше →
Всего голосов 25: ↑19 и ↓6+13
Комментарии29

Вышел AnjLab SQL Profiler 1.2

Время на прочтение1 мин
Количество просмотров5.3K
AnjLab SQL Profiler — это бесплатный Open Source профайлер для MS SQL Server (Express).

В новой версии появилась возможность автоматической группировки одинаковых запросов по соединениям в Performance Dashboard.

Спасибо PowerDNN за спонсорскую помощь в развитии проекта.
Всего голосов 10: ↑9 и ↓1+8
Комментарии4

Получение версии конфигурации 1с напрямую из SQL

Время на прочтение10 мин
Количество просмотров15K
По долгу службы наша контора обслуживает несколько организаций, которые для управленческого и бухгалтерского учета используют 1с.
1с, как известно, постоянно выпускает обновления для своих конфигураций.
Соответственно на обновление хотя бы 5 баз уходит приличное количество времени.
Рассказ о том, как добиться полной (кроме скачивания обновлений) автоматизации процесса средствами MSSQL далее.
Читать дальше →
Всего голосов 11: ↑8 и ↓3+5
Комментарии0

MS SQL 2008, заметки на полях. Очень много случайный чисел

Время на прочтение2 мин
Количество просмотров4.4K
В решении многих задач необходимо вставить большое количество подобных строк, содержащие заранее заданную информацию, например тестирование слабых мест в приложении. Основной сложностью является ни столько алгоритм создания данных, сколько механизм позволяющий создать такое количество строк.

Всех кого заинтересовала тема, добро пожаловать под кат…
Читать дальше →
Всего голосов 5: ↑3 и ↓2+1
Комментарии6

Установка клиента DataStage

Время на прочтение3 мин
Количество просмотров4.3K
Я думаю, что многие сталкивались с некоторыми проблемами при установке IBM DataStage на клиентские рабочие станции. Перед установкой, ваша система должна выдержать ряд тестов на соответствие требованиям, которые предъявляются к ОС, пользователю, из под которого осуществляется установка, к «железу». Не всегда проверка возвращает адекватные результаты.
Вашему вниманию представлены некоторые пути обхода криво реализованных проверок очередного инсталятора компании IBM, пытающийся установить клиент к Information Server 8.5, в который входят клиенты для DataStage.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Управление скриптами миграции или MyBatis Scheme Migration Extended

Время на прочтение3 мин
Количество просмотров3.7K
Я думаю, всем разработчикам так или иначе известно понятие “скрипт миграции”. Как правило, имеется ввиду sql-скрипт, созданный для поддержания актуальности БД. Путь создания и использования скриптов миграции весьма легок, поэтому вести этот процесс можно и вручную. Я же хочу рассказать об инструменте, который местами упрощает работу со скриптами миграции.
Читать дальше →
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Введение в IBM DB2

Время на прочтение4 мин
Количество просмотров43K
По работе пришлось в течение некоторого времени разбираться с СУБД IBM DB2. Т.к. система коммерческая, то в интернете не так много информации на русском языке, поэтому решил описать некоторые особенности работы этой СУБД.

Читать дальше →
Всего голосов 39: ↑32 и ↓7+25
Комментарии6

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн

О кэшировании ресурсоемких SQL-запросов на веб-сервере

Время на прочтение2 мин
Количество просмотров8.1K
В этой статье я постараюсь описать распространенную ошибку создателей систем кэширования

Началось всё в далекие времена, когда я управлял сайтами, которые были расположены на хостинге в FreeBSD jail, который был весьма ограничен в ресурсах. Почему так? Потому, что я использовал для отображения отчетов и печатных форм расширение pdflib, которого в наборе расширений на стандартном хостинге не было. Я скомпилировал там свой apache и php, залил туда документы и сайт заработал.
Читать дальше →
Всего голосов 24: ↑17 и ↓7+10
Комментарии24

Контроль изменения структуры БД

Время на прочтение2 мин
Количество просмотров8.9K

Преамбула


Пару лет назад я и мои сотрудники столкнулись с проблемой сопровождения большого количества аналогичных БД на удаленных филиалах. Удалены они иногда на тысячи километров, а объемы исчислялись гигабайтами – что не позволяло использовать какое-либо зеркалирование серверов. Осложнялась ситуация мелкими отличиями, т.е. 95% бизнес-логики филиалов совпадало, но было ещё 5%, которые сильно мешали и ни о какой автоматической обработке группы филиалов не было и речи.
Читать дальше →
Всего голосов 59: ↑54 и ↓5+49
Комментарии42

Введение в многомерный анализ

Время на прочтение12 мин
Количество просмотров172K

Некоторое время назад мне довелось организовывать новую группу разработки, которая должна была заняться развитием OLAP и BI продуктов в дружеской софтверной компании. А так как группа была собрана из свежих выпускников ВУЗов, то мне пришлось написать «краткий курс молодого бойца» для того чтобы максимально доступно дать начальные понятия об OLAP людям, которые ни разу с ним не сталкивались, но уже имели опыт программирования и работы с БД.



Выкладываю теперь это Введение в Общественное Достояние.



В статье несколько смешиваются понятия OLAP, Business Intelligence, и Data Warehouse, но и в жизни часто сложно понять, где проходит граница. А уж в реальных проектах, так и подавно, все они ходят рядом. Поэтому прошу не судить строго.



Итак, что же такое OLAP.
Всего голосов 63: ↑61 и ↓2+59
Комментарии12

Выпущен SQL Server 2008 R2 SP1, дополнительные инструменты для SQL Server Denali

Время на прочтение1 мин
Количество просмотров2.7K
image

Для загрузки доступна финальная версия первого сервисного пакета исправлений для SQL Server 2008 R2. Пакет SP1 содержит шесть вышедших ранее кумулятивных обновлений для сервера, плюс предлагает некоторые новые возможности.

Загрузить пакет исправлений для разных языков и редакций можно по следующей ссылке (версия для express-редакций).

Кроме того, для загрузки доступны инструменты для сервера баз данных следующего поколения SQL Server Denali, который недавно был выпущен в очередной предварительной версии CTP3. Среди доступных инструментов следующие:
  • Product Documentation for Microsoft SQL Server Code-Named “Denali” CTP3 (link);
  • Express Core CTP 3 (link);
  • PowerPivot for Microsoft Excel CTP 3 (link);
  • Semantic Language Statistics CTP 3 (link);
  • Report Builder CTP 3 (link);
  • Reporting Services Add-in for SharePoint Technologies CTP 3 (link).
Кроме того, через средство Web Platform Installer доступна новая версия интегрированной среды разработки баз данных под кодовым именем Juneau (для замены SQL Server Management Studio).

Читать дальше →
Всего голосов 31: ↑20 и ↓11+9
Комментарии7

Основы SQL на примере задачи

Время на прочтение6 мин
Количество просмотров684K
В этом руководстве мы рассмотрим основные sql команды на примере небольшой задачи. При прочтении желательно сидеть за консолью mysql и вводить все запросы для большей наглядности.

Постановка задачи


Дана база данных, в ней 3 таблицы следующего вида:




table1: user_id (INT(5), PRIMARY KEY), username (VARCHAR(50), INDEX)
table2: phone_id (INT(5), PRIMARY KEY), user_id (INT(5), INDEX), phone_number (INT(10), INDEX)
table3: room_id (INT(5), PRIMARY KEY), phone_id (INT(5), INDEX), room_number(INT(4) INDEX)

Необходимо выбрать номер комнаты в которой сидит пользователь с ником qux…
Читать дальше →
Всего голосов 72: ↑42 и ↓30+12
Комментарии42

Методы оптимизации производительности приложения при работе с РБД

Время на прочтение3 мин
Количество просмотров7.5K
Действуют они везде – хоть MySQL, хоть Oracle хоть самописная БД. Чем умнее БД – тем больше она старается оптимизировать сама, но лучше ей помочь

1. Разделяй и властвуй, а попросту кластеризация БД – все данные одного типа можно еще разбить на кластеры – отдельные таблицы, в каждую таблицу попадают записи, которые удовлетворяют какому-то простейшему правилу, например в таблицу с индексом I попадают данные у которых ID%N==I, где N – кол-во кластеров. Таким образом очень просто и эффективно делим те данные, которые не надо считывать последовательно – например разбиваем все слова на 100-200-миллион блоков, в каждом блоке только слова у которых ID%N==I. В качестве примера в большой системе, типа социальной сети, можно поделить все данные по признаку принадлежности одному пользователю — например все фото разместить в N таблиц, информация о фото помещается в таблицу K=USER_ID%N

2. Условно — работа с диском. Всегда пиши (вставляй) последовательно, кэшируй и буферизуй запись, читать старайся подряд от начала до конца. Ускорение записи может быть просто фантастическое – много порядков, просто от того что Вы правильно используете запись зная как работает Ваш (или производителя) алгоритм записи на диск. Данные почти всегда можно отсортировать до записи – в памяти ли, разные файлы ли с кускам текста – всегда можно построить индекс или простейший массив, который отсортирован по ID данных и читать-писать их в порядке как в индексе. Как один из вариантов – всегда можно придумать более оптимальную структуру хранения данных. К примеру когда надо вставить кусок таблицы в другую таблицу делать это лучше последовательно от меньшего ID к большему, заодно отключив механизм индексации. И включив его после вставки.
Читать дальше →
Всего голосов 19: ↑12 и ↓7+5
Комментарии20

Вклад авторов