
SQL *
Формальный непроцедурный язык программирования
SQL Server 2016 Stretch Database

Первого июня состоялся релиз SQL Server 2016, который привнес в привычную разработку большое число нововведений, среди которых уже давно анонсированную технологию Stretch Database, позволяющую динамически переносить «горячие» и «холодные» данные из SQL Server в Azure.
С точки зрения маркетинга, Stretch Database очень хорошо распиарили. Приводили разумные аргументы, что по мере накопления в базе исторических данных возрастает сложность и стоимость её эксплуатации. И предлагали разумное решение — автоматический перенос архивных данных по мере устаревания в «облако». Честно признаюсь, идея мне понравилась.
Начиная с SQL Server 2016 RC0 я начал тестировать технологию Stretch Database на двух проектах, которые помогаю развивать. Первый — это трекер рабочего времени для которого характерна OLTP нагрузка, второй — внутренний проект с DW нагрузкой.
Как sql-запросом извлечь из базы данных информацию, которой там нет
Под таким хитрым заголовком скрывается достаточно несложная задача, но сначала небольшое вступление:
Приходят пользователи и просят: «Вот мы внесли данные в базу, а скажите нам, чего не хватает? Какие данные мы ещё не внесли в базу и их не хватает для полного счастья?»
Первая (и скажем честно, весьма глупая) реакция: «Как же я вам найду то, чего нет в базе данных?».
Но отбросим эмоции и применим логику. Ведь, как правило, требуются данные, формирование которых подчиняется некоему правилу — номера квитанций, справок и так далее… И я исхожу из того, что все эти номера и идентификаторы могут быть преобразованы в натуральную последовательность.
То есть задача будет сформулирована следующим образом: в базе данных хранится последовательность натуральных чисел, в которой есть пропуски, и необходимо вывести пропущенные числа для пользователя.
В такой формулировке задача уже выглядит достаточно простой. Более того — возникает желание реализовать эту задачу одним единственным sql-запросом.
Яндекс открывает ClickHouse

ClickHouse позволяет выполнять аналитические запросы в интерактивном режиме по данным, обновляемым в реальном времени. Система способна масштабироваться до десятков триллионов записей и петабайт хранимых данных. Использование ClickHouse открывает возможности, которые раньше было даже трудно представить: вы можете сохранять весь поток данных без предварительной агрегации и быстро получать отчёты в любых разрезах. ClickHouse разработан в Яндексе для задач Яндекс.Метрики — второй по величине системы веб-аналитики в мире.
В этой статье мы расскажем, как и для чего ClickHouse появился в Яндексе и что он умеет; сравним его с другими системами и покажем, как его поднять у себя с минимальными усилиями.
Delayed Durability или история о том как получилось ускорить выполнение автотестов с 11 до 2,5 минут

Относительно недавно я начал помогать на новом для себя продуктовом проекте, который на поверку разрабатывается как бесплатный веб-сервис для трекинга рабочего времени.
Стек технологий был изначально выбран мелкомягкий, а в качестве хранилища данных использовался SQL Server 2014 Express. Одним из первых тасков, которые мне поручили — это поисследовать возможность ускорения автотестов.
Полный список флагов трассировки Microsoft SQL Server
Microsoft SQL Server Флаги Трассировки
Полный список Microsoft SQL Server флагов трассировки (359 флагов трассировки на текущий момент).
ПОМНИТЕ: Будьте предельно осторожны с флагами трассировки, проверяйте их влияние в первую очередь в тестовой среде.
Ох уж мне эти базы данных: Sybase (ASE) и datetime
На самом деле пост об одной строчке в документации, как оказалось. Но это было неожиданно, поэтому я решил поделиться с Вами найденным.
Подводные камни при использовании Linked Server
Если вкратце, то проект из себя представляет несколько БД и приложений, расположенных на разных серверах. «Задача» в данном проекте – это хранимая процедура или .Net приложение. Соответственно «задача» должна быть выполнена на определённой БД и на определенном сервере.

Смотрите запись открытия виртуального форума «Данные. Технологии. SQL Server 2016»

Программа форума разделена на 3 технологические сессии, которые проходили параллельно:
SQL Server 2016: новые стандарты в мире OLTP. Трек посвящен возможностям новой платформы по повышению производительности и безопасности процессов. Так, скорость обработки транзакций на новой платформе выше в 30 раз, а запросов – в 100 раз, по сравнению с дисковыми реляционными базами. Безопасность системы обеспечивается современными инструментами Always Encrypted и Role Level Security.
Бизнес-аналитика: SQL, Power BI, R, Mobile. Обсуждение вариантов практического применения SQL Server 2016 для разработки интеллектуальных приложений, способных анализировать данные и организовывать их в умные системы с помощью технологий бизнес-аналитики BI, а также использования языка R.
Azure: новое поколение решений для аналитики, Big Data& IoT. Доклады об обеспечении автоматизации критически-важных процессов в компании благодаря умным аналитическим системам, машинному обучению и ботам, а также интеграции в облако с возможностью масштабирования ИТ-инфраструктуры.
Виртуальный форум открылся с рассказа об основных трендах в области обработки данных и об инновациях, представленных в продуктах Microsoft, в том числе в новейшем SQL Server 2016
Небольшая особенность CHAR и VARCHAR
Предыстория
Есть небольшой сервер, на котором крутится стандартный LAMP. Все началось с того, что подходит ко мне QA и говорит: «Есть тема, мне нужно перепроверить регистрацию пользователей, можешь удалить старый аккаунт?», «Не вопрос» — ответил я. Суть в том, вход у нас сделан только через социалки. Что бы не нарушать целостность базы удалением аккаунта, я решил просто взять и переименовать UID (пользовательский ID в конкретной социальной сети) в таблице.
Так как UID у всех разный (vk, facebook, google… — числовой UID, linkedin — строковый UID) был использован VARCHAR для хранения. В итоге я добавил символ нижнего подчеркивания `_` к строке, и со спокойной душой отписался: «Проверяй...».

Ближайшие события
Примите участие в виртуальном форуме «Данные. Технологии. SQL Server 2016»

Один самых значимых трендов ближайшего десятилетия – лавинообразный рост объемов данных, который определяет развитие облачных технологий, машинного обучения и интернета вещей. Это требует новых подходов и решений в устоявшихся и широко известных технологиях, таких как реляционные базы данных и бизнес-аналитика.
PostgreSQL — не Rocket Science. Почем сейчас яйца?

Постоянно натыкаюсь на высказывания из серии «PostgreSQL слишком сложная база для моего небольшого проекта, поэтому буду продолжать работать с MySQL».
В этой статье я хотел бы показать, что человеку, знающему MySQL, не составит абсолютно никакого труда начать разрабатывать под PostgreSQL
Чем PostgreSQL лучше других SQL баз данных с открытым исходным кодом. Часть 2
В слогане PostgreSQL заявляется, что это «Самая продвинутая база данных с открытым исходным кодом в мире». В первой части этой серии мы рассмотрели хранение данных — модель, структуры, типы и ограничения по размеру, — чтобы дать вам несколько причин, почему Постгрес подтверждает свои слова делом. Во второй части мы поговорим о манипуляциях с данными и поиске, включая индексирование, виртуальных таблицах и возможностях запросов. В этой серии мы выясняем, что выгодно отличает PostgreSQL от других баз данных с открытым исходным кодом, а именно — от MySQL, MariaDB и Firebird.

Отпуск по-программистски, или как я не поучаствовал в конкурсе по программированию на JS. Часть вторая
В первой части этого описания попытки решения интересной конкурсной задачи я рассказал о подготовке данных для анализа и о нескольких экспериментах. Напомню, условие задачи заключалось в том, чтобы с наибольшей вероятностью определить наличие слова в словаре, не имея доступа к этому словарю в момент выполнения программы и с ограничением на объем программы (включая данные) в 64K.
Как и в прошлый раз, под катом много SQL, JS, а также нейронные сети и фильтр Блума.
Отпуск по-программистски, или как я не поучаствовал в конкурсе по программированию на JS. Часть первая
Создание и поддержка в одиночку сложного продукта с большим зоопарком технологий и без финансовых вливаний со стороны — дело хлопотное и утомительное. Поэтому, узнав про конкурс с интересной задачей, мы в Мегаленте я подумал о том, чтобы устроить себе "творческий отпуск" и отвлечься ненадолго от работы над новой версией.
Задача состояла в том, чтобы написать программу на JS, которая будет определять, есть слово с словаре английских слов или нет. Вроде бы просто, но есть пара ограничений, делающих задачу заведомо невыполнимой:
– Словом считается не просто любое правильное слово английского языка, а именно слово, которое есть в предоставленном словаре из 600K+ слов.
– Словаря в момент исполнения программы нет, скачать его нельзя, а размер программы, включая данные, не должен превышать 64К. Внешние библиотеки подключать также нельзя, но файл данных может быть заархивирован.
Благодаря этим условиям вместо однозначного ответа результатом может быть только определение наибольшей вероятности присутствия слова в словаре.
Сразу скажу, что решение я так и не отправил из-за неудовлетворённостью результатом (решение, которое давало хотя бы 80%, я смог поместить только в 120-130К, а без превышения размера в 64К выжал максимум 70%).
Тем не менее опыт считаю достаточно интересным и достойным статьи. Под катом много SQL,JS,Python, нейронные сети, а также печальная правда о производительности CPU на хостинге.
DevConf::Storage — отдай голос за свою любимую базу данных до 31 мая


Представляем вашему вниманию 11 кандидатов на участие:
Крылья, ноги и хвосты: сильные стороны MySQL и когда PostgreSQL завоюет мир
Алексей Копытов
В наш гибридный век как разработчикам, так и администраторам часто приходится иметь дело со многими разными СУБД. Знание сильных и слабых сторон каждого продукта становится всё более важным навыком, но информация по этим вопросам, которую можно найти в сети, имеет целый ряд проблем: быстрая потеря актуальности в связи с постоянным и быстрым развитием популярных СУБД, разрозненность, а также предвзятость и зачастую некомпетентность авторов.
Мастер-мастер репликация в Tarantool
Konstantin Osipov
Расскажу как устроена и как пользоваться мастер-мастер репликацией в Tarantool:
- инициализация кластера
- добавление и удаление узлов
- разрешение конфликтов
- восстановление после аварии
- мониторинг состояния.
Генерация классов из БД с помощью DataGrip

В этой небольшой заметке будет показано, как написать DataGrip расширение для генерации кода (в данном случае POCO (C#) классов) на основе таблиц из почти любой БД (SQL Server, Oracle, DB2, Sybase, MySQL, PostgreSQL, SQLite, Apache Derby, HyperSQL, H2).
Вклад авторов
Kilor 2284.7erogov 1325.6jobgemws 737.0AlanDenton 594.0varanio 537.8badcasedaily1 459.7chemtech 433.2rdruzyagin 432.8moscas 402.0pluzanov 339.0