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

Вебинар DataLine «Миграция базы данных 1С с MS SQL на PostgreSQL» 31 мая

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

Сегодня многие корпоративные пользователи решений 1С задумываются о переходе с MS SQL на PostgreSQL. Как организовать процесс миграции и провести настройку СУБД? Об опыте миграции и эксплуатации решения поговорим на вебинаре 31 мая.

Подробности и регистрация
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Автоматизированное интеграционное тестирование ASP.NET приложения

Время на прочтение13 мин
Количество просмотров28K
В этой статье я хочу поделиться опытом создания инфраструктуры для интеграционного тестирования веб приложения. Приложение построено на платформе .Net и состоит из ASP.NET MVC приложения и базы данных на MSSQL

Задача интеграционного тестирования формулировалась следующим образом: автоматизировать развёртывание приложения и выполнение тестов пользовательского интерфейса, чтобы можно было быстро убедиться в том, что устанавливаемая версия приложения успешно отрабатывает все необходимые тестовые сценарии.

Другими словами надо быстро проверить, что будет, когда мы установим новую версию заказчику и начнём с ней работать. Поскольку, результат выполнения этих тестов является показателем качества создаваемого приложения, мы всегда будем знать качество нашего приложения, а значит и ситуацию в которой мы находимся.

Поскольку интеграционное тестирование позволят имитировать действия пользователя можно сказать, что оно позволят проверять факт того, что такой-то пункт ТЗ успешно выполнен. Если создать тесты для каждого пункта ТЗ (то получим программу и методику испытаний — ПМИ :) и автоматизировать их, то количество успешно выполненных тестов будет означать реальную информацию о том, на сколько процентов исполнено ТЗ. Иначе оценка состояния системы будет выглядеть следующим образом:
— Ну как у нас сегодня система, если одним словом?
— Если одним словом, то… работает.
— А если в двух словах?
— А если в двух словах, то не работает.

Что должно проверяться при таком тестировании:
— Компиляция и сборка приложения
— Процедура установки или обновления приложения:
— Установка новой или обновление существующей базы данных
— Установка нового ASP.NET приложения
— Выполнение тестовых сценариев в каждом из которых:
— Система подготавливается для выполнения сценария. Поскольку каждый сценарий имеет предусловия надо подогнать систему под эти условия. Например если для сценария надо чтобы в системе бы пользователь создавший три заказа, надо как-то получить в базе денных пользователя и три его заказа.
— Выполняется тестовый сценарий через эмуляцию действий пользователя в браузере.
— Система возвращается в состояние, которое было перед выполнением сценария, фактически в состояние сразу после установки приложения
— Составление отчёта о качестве приложения
— Сборка инсталяционного пакета, содержащего приложения с известным качеством.

Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Комментарии24

Hekaton: Хороший или дурной тон?

Время на прочтение3 мин
Количество просмотров6.2K
Июль уже подходит к концу, а на «хабре» до сих пор никто не вспомнил о CTP релизе MSSQL Server 2014.
Релизу будущего года присвоен позывной «Hekaton». Его появление было заявлено еще на конференции PASS 2012 года и тогда это было только название in-memory движка OLTP. Теперь это название целого релиза с встроенной поддержкой и оптимизацией обработки транзакций непосредственно в оперативной памяти.
Читать дальше →
Всего голосов 15: ↑10 и ↓5+5
Комментарии15

«Real» enums for MS SQL Server

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

Как известно, MSSQL не предоставляет возможность создания/использования перечислений, что зачастую влечет за собой неявный, ненадежный, некрасивый, сложно поддерживаемый код. Можно спорить о том, что в реляционной БД перечисления как таковые места иметь не могут, но множество раз в моей (и не только моей) практике рождались подобные строчки:
select * from Process where ProcessType = 1 /* Suspended */
Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Комментарии7

Отказоустойчивость для Hyper-V VM и MSSQL

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

Вместо предисловия


Отказоустойчивость понимается — в рамках одного дата-центра – то есть защита от выхода из строя 1-2 физических серверов.
Реализация у нас будет недорогая с точки зрения «железа», а именно то, что дает в аренду один известный немецкий хостер.
С точки зрения стоимости программного обеспечения оно либо бесплатное, либо уже имеется. Партнерская программа Microsoft, так сказать, в действии.
С появлением на рынке Windows Server 2012 было много рекламы «От сервера до облака», «Ваши приложения работают всегда». Именно это мы и попробуем реализовать.
Читать дальше →
Всего голосов 14: ↑11 и ↓3+8
Комментарии21

«За ту же функциональность, которую дает SQL Server, Oracle просит в 10 раз больше», — Константин Таранов о SQL Server

Время на прочтение13 мин
Количество просмотров26K
Мы побеседовали с Константином Тарановым, разработчиком и администратором баз данных в компании Газэкономика, подразделения Газпром. Профессиональный стаж Константина составляет более 10 лет, в течение которых он поработал со всеми ключевыми реляционными СУБД, в результате чего остановил свой выбор на MS SQL Server. Константин обьяснил, почему SQL Server так привлекателен для решаемых в компании Газэкономика задач, и рассказал о наиболее полном в рунете наборе инструментов и полезных материалов для работы с SQL Server.


Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии81

Давайте поговорим о Plesk с расширением Docker

Время на прочтение6 мин
Количество просмотров5.4K
Let's speak about Docker

Недавно вышла статья Iron_Butterfly, где в числе прочего, рассказывается, каким образом можно запустить мощнейший поисковый движок ElasticSearch внутри Docker-контейнера. Я хочу продолжить этот вектор и рассказать, какие еще задачи можно решить с помощью Docker-контейнеров, используя для этого Plesk и расширение Docker.

Краткий план


В статье мы рассмотрим, как с помощью помощью Docker extension можно решить задачи, которые тяжело или даже невозможно решить с Plesk без Docker-контейнеров. Данный список задач сформирован на основе популярных вопросов наших пользователей; в качестве пользователей мы рассмотрим владельцев хостинга, разработчиков web-приложений, администраторов WordPress.

Задачи:


— Одновременное использование различных версий баз данных;
— Разворачивание Memcached для WordPress;
— Использование собственного облачного Nextcloud хранилища;
— Запуск собственного приложения на Go. Запуск собственного git-репозитория;
— Тестирование новых версий Plesk не мешая работать боевому серверу.

Хочу уточнить, что все примеры в статье выполнены с использованием бесплатной версии расширения Docker; платная версия позволяет управлять сервисом Docker на удаленных серверах.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии4

MSSQL Server. Пример применения связанного сервера

Время на прочтение4 мин
Количество просмотров24K
Сегодня решил поделиться статьей как однажды мне пришел на выручку связанный сервер при работе с MSSQL. Сначала опишу ситуацию, в которой мне пришлось с ним познакомиться.
Читать дальше →
Всего голосов 15: ↑10 и ↓5+5
Комментарии22

Как мы настроили поиск с помощью Elasticsearch и Logstash по данным MSSQL

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

Делимся подробностями, как мы сделали хороший поиск по закрытой корпоративной соцсети в условиях, когда:


• данные хранятся в разных колонках таблиц MSSQL,
• раньше поиска по ним не было,
• а перенести их оттуда дорого — вся система завязана на MSSQL. Использовать сторонние сервисы не получится по соображениям информационной безопасности.


Критерий хорошего поиска для нас звучит так: даже если пользователь ввел запрос с опечаткой или неточно указал название группы, то всё равно нашёл её.


Также на перспективу нам нужно было продумать поиск по хэштегам как по раздельным словам, поиск по синонимам, ранжирование результатов и выдачу промежуточных результатов на лету.


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

Изменение размеров изображений на сайте

Время на прочтение6 мин
Количество просмотров12K
Добрый день. Я разработчик с более чем 10-летним стажем. Для того, чтобы оценить качество исходного кода сайтов, не без доли самоиронии, я создал небольшой чек-лист. Сегодня я поговорю о важном для меня пункте — изображения на сайтах. Я умышленно опустил конкретную технологию, потому что эта проблема встречалась и встречается повсеместно, я буду очень признателен, если в комментариях вы раскроете свои подходы с использованием вашего стека технологий, в конечном итоге мы все очень похожи.


Читать дальше →
Всего голосов 24: ↑19 и ↓5+14
Комментарии19

Обзор бесплатного инструмента SQLIndexManager

Время на прочтение9 мин
Количество просмотров9.1K
Как известно индексы играют важную роль в СУБД, предоставляя быстрый поиск к нужным записям. Потому так важно их своевременно обслуживать. Об анализе и оптимизации написано достаточно много материала, в том числе и в Интернете. Например, недавно делался обзор данной темы в этой публикации.

Существует множество как платных, так и бесплатных решений для этого. Например, есть готовое решение, основанное на адаптивном методе оптимизации индексов.

Далее рассмотрим бесплатную утилиту SQLIndexManager, автором которой является AlanDenton.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии26

Почему не SQL?

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


Без преувеличения можно сказать, что SQL — один из самых распространенных в мире языков. Информационные системы могут быть написаны на Java, Python, JavaScript, C#, PHP и десятке других языков, но SQL база в том или ином виде будет в абсолютном большинстве таких систем. Среди бизнес-приложений процент систем, использующих SQL, вообще стремится к 100%.

При этом большинство существующих материалов о SQL на хабре и других ресурсах сводятся к простым вопросам, вроде: «какие типы соединений бывают», «чем левое соединение отличается от правого», «что такое триггеры» и так далее. Более того, в этих материалах практически ничего не говорится о проблемах SQL (и его реализациях), которых на самом деле очень и очень немало. Поэтому мы решили восполнить оба этих пробела: с одной стороны рассказать, как многие вещи в SQL работают изнутри, а с другой стороны — почему они работают не так как нужно / хотелось бы.

При этом речь в статье пойдет не о «вкусах и цветах фломастеров». Все затрагиваемые проблемы носят фундаментальный характер: присутствуют при разработке практически любой информационной системы и не ограничиваются «красотой кода», а в той или иной степени приводят либо к критическому падению производительности, либо к существенному росту порога вхождения, либо к значительным трудозатратам со стороны разработчика.
Читать дальше →
Всего голосов 92: ↑87 и ↓5+82
Комментарии179

Вариант клонирования БД для разработки/тестирования

Время на прочтение6 мин
Количество просмотров8.8K
Вкратце опишу как организовал клонирование БД (создание нескольких экземпляров БД из одного бэкапа) на текущем проекте. Способ позволяет сэкономить время и место на жестком диске.

Ситуация: есть толстая БД (скажем, сотня Гб). Хочется иметь эту базу со всеми данными отдельно для каждого разработчика и не тратить на это терабайтный диск. Далее приведено решение для MSSQL под windows с использованием powershell.

Наткнулся на утилиту SQL Clone от Redgate. На сайте есть описание как она работает. Самая суть в использовании такой штуки: differencing virtual hard disk. На русский это переводится как «разностный виртуальный диск» — диск на котором хранится только разница относительно «родительского» диска.

Подробности под катом
Читать дальше →
Всего голосов 24: ↑18 и ↓6+12
Комментарии11

Опасен ли SQL profiler?

Время на прочтение1 мин
Количество просмотров21K
Недавно с некоторым удивлением узнал, что в одном из департментов огромной фирмы, где я работаю, запрещен запуск SQL profiler в business hours.

Читать дальше →
Всего голосов 24: ↑16 и ↓8+8
Комментарии20

Entity Framework 6 with Full-Text Search via LINQ

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

Хочу поделиться своим костылем в решении довольно банальной проблемы: как подружить полнотекстовый поиск MSSQL c Entity Framework. Тема очень узкоспециальная, но как мне кажется, актуальна на сегодняшний день. Интересующихся прошу под кат.

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

Основы правил проектирования базы данных

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

Введение


Как это часто бывает, архитектору БД нужно разработать базу данных под конкретное решение.
Однажды в пятницу вечером, возвращаясь на электричке домой с работы, я подумал о том, как бы я создал сервис по найму сотрудников в разные компании. Ведь ни один из существующих сервисов не позволяет быстро понять насколько подходит тебе кандидат. Нет возможности создать сложные фильтры, включающие или исключающие совокупность определенных навыков, проектов или позиций. Максимум, что обычно предлагают сервисы — фильтры по компаниям и частично по навыкам.

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

Для начала, разберем создание базы данных в MS SQL Server для сервиса поиска соискателей на работу.

Этот материал можно перенести и на другую СУБД такую как MySQL или PostgreSQL.
Читать дальше →
Всего голосов 59: ↑49 и ↓10+39
Комментарии89

Сравнение схем двух баз данных

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

При разработке приложений иногда возникает потребность в сравнении двух баз данных (например prod и dev).

Существует ряд подходов для решения этого вопроса - от создания dump-файла со структурой db и последующим использованием diff, до использования специализированных платных решений типа dbForge или RedGate.

Одним из таких решений, сочетающих бесплатность и удобство использования, является Compalex.

Читать далее
Всего голосов 7: ↑5 и ↓2+3
Комментарии11

Clarion. Процесс миграции Clarion приложения на Microsoft SQL 2019

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

Продолжаю повествовать о жизни с Clarion. В этом посте я опишу свой путь решения одной из частых задач, стоящих перед Clarion разработчиками, это миграция Clarion программы на СУБД Miscrosoft SQL.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии12

О лицензировании MS SQL по подключениям (CAL)

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

О лицензировании MS SQL по подключениям (CAL)

Лицензирование у Майкрософт непростое и многие считают, что в трехзвенной архитектуре могут существенно сэкономить, лицензируя в Microsoft SQL Server только одно подключение сервера приложений, не учитывая подключения клиентов к серверу приложений. Об ошибках, допускаемых при лицензировании по клиентам далее подробнее.

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии10

Делаем откаты БД в msi. История про создание резервных копий и удаление БД в WixSharp

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

При работе с базами данных (БД) в установщике, про который мы уже писали в прошлой статье Пишем установщик на WixSharp. Плюшки, проблемы, возможности, в первую очередь были реализованы проверка доступности СУБД по логину/паролю, добавление и обновление собственно БД (в нашем приложении их несколько) накатыванием миграций, также добавление пользователей. Все это реализовано для двух СУБД Microsoft SqlServer и PostgreSql.
На первый взгляд этого достаточно, но иногда есть необходимость удалять БД и пользователей, а это влечет за собой создание резервных копий. Сразу выявили две необходимые задачи:

1. Удаление БД и пользователей при откате приложения в случае ошибки  при первичной установке. При установке приложения, если возникает ошибка происходил откат всех настроек, кроме БД. Добавленные БД и пользователи оставались. И если при боевой эксплуатации после серии тестирования эта ситуация непредвиденной ошибки маловероятна, то в процессе разработки и доработки установщика ошибки возникают часто. Их однозначно нужно удалять

2. Создание резервных копий (бэкапов) и удаление БД ипользователей при полном удалении приложения установщиком. Правильно ли оставлять БД после полного удаления приложения? Мы решили, что нет. Но бэкапы, конечно, сохранять нужно.

Из второго пункта возникла новая задача:

3. Создание бэкапов БД при обновлении приложения. Если мы сохраняем бэкапы при удалении, неплохо создавать их перед обновлением, накатыванием миграций и прочими изменениями. Подстраховка еще никому не мешала.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии2
1
23 ...