Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

24 часа PASS — обзор докладов SQL-конференции

SQLMicrosoft SQL Server
«24 Hours of PASS» — это ежегодная онлайн-конференция о MS SQL Server, проводимая по эгидой профессиональной ассоциации PASS, и длящаяся 24 часа. Вот прям буквально 24 часа: докладчики из разных частей света сменяют друг-друга в марафоне вебинаров (конечно же, это отсылка к 24 часам Ле-Мана).

Усилиями Андрея Коршиков, уже несколько лет проводится русскоязычная версия «24 часа PASS». Последняя состоялась в середине марта, и если вы ещё не успели посмотреть все 24 часа видео (кстати, вот плей-лист на YouTube), то именно для вас я и сделал этот обзор.


  • SQL Server 2014 In-Memory OLTP — Сергей Олонцев
  • Размер имеет значение: 10 способов уменьшить размер БД — Дмитрий Короткевич
  • Внутри оптимизатора запросов: Соединения — Дмитрий Пилюгин
  • Оптимизация SSAS-кубов — Евгений Полоничко
  • Тяп-ляп и в продакшн! — Алексей Ковалёв
  • Оффлайн-разработка баз данных и тестирование с SSDT — Андрей Завадский
  • Deadlocks 3.0. Final Edition — Денис Резник
  • BIML — лучший друг для SSIS-разработчика — Андрей Коршиков
  • Power BI Q&A — Константин Хомяков
  • Azure Data Factory — облачный ETL — Сергей Лунякин
  • Все что вы хотели узнать о Workspace memory — Мария Закурдаева
  • Быстрый анализ производительности SQL Server за 1,5 часа — Кирилл Панов
  • Внутреннее устройство страниц и экстентов SQL Server — Алексей Князев

Так о чём же они всё это время рассказывали?
Всего голосов 6: ↑6 и ↓0 +6
Просмотры13K
Комментарии 2

На пути к правильным SQL транзакциям (Часть 1)

Инфопульс УкраинаСовершенный кодSQLMicrosoft SQL Server
Tutorial


Мне часто приходилось сталкиваться с тем, что люди прекрасно понимают, что такое транзакции в базе данных и для чего они нужны, но при этом не всегда умеют ими правильно пользоваться. Безусловно, для достижения 80-го уровня сакрального знания нужно иметь не один год опыта и прочесть множество толстенных книг по SQL. Поэтому в этой статье я даже не буду пытаться описать всё, что может быть связано с транзакциями в MS SQL. Я хочу затронуть один простой, но очень важный вопрос, который разработчики часто упускают из вида – уровни изоляции транзакций.
Несмотря на то, что тема очень проста, во многих источниках она освящается плохо – информации либо очень мало, либо очень много. Т.е. прочитав 5-6 кратких теоретических определений невозможно их применить на практике. Для уверенного понимания предмета статьи нужно обращаться к специализированной литературе, но там информации на столько много, что далеко не каждый может уделить необходимое время для её усваивания.
Сегодня я хочу поделиться своим простым рецептом, который помог мне раз и на всегда запомнить особенности уровней изоляции транзакций и по сей день помогает без проблем принимать взвешенные решения о выборе необходимого уровня.
Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры109.8K
Комментарии 6

На пути к правильным SQL транзакциям (Часть 2)

Инфопульс УкраинаСовершенный кодSQLMicrosoft SQL Server


В предыдущей части были рассмотрены основы уровней изоляции транзакций. Здесь я постараюсь копнуть чуть глубже и рассказать при помощи каких инструментов MS SQL Server реализует уровни изоляции.

Как вы могли видеть в предыдущем разделе, существует два способа поддержания изоляции:
  • Основанный на блокировке ресурсов
  • Основанный на создании версионной копии ресурсов.

Режимы, основанные на создании копии данных, достаточно просты для понимания и думаю не требуют особого внимания. При желании углубиться в детали их реализации, я могу предложить обратиться к не плохому описанию на MSDN. Я же хочу рассмотреть, как реализован механизм, основанный на блокировках.
Читать дальше →
Всего голосов 24: ↑22 и ↓2 +20
Просмотры44.1K
Комментарии 1

CHECK CONSTRAINT в MS SQL — Грабли по которым мы прошлись

Инфопульс УкраинаSQLMicrosoft SQL Server
Tutorial

Данная статья будет про то, как одна дружная команда веб разработчиков, не имея в своём составе опытного SQL разработчика, добавила Check Constraint в таблицу и прошлась по нескольким простым, но не сразу очевидным граблям. Будут разобраны особенности синтаксиса T-SQL, а также нюансы работы ограничений (СONSTRAINT’ов), не зная которые, можно потратить не мало времени на попытки понять, почему что-то работает не так. Так же будет затронута особенность работы SSDT, а именно как генерируется миграционный скрипт, при необходимости добавить или изменить ограничения (CONSTRAINT’ы).

Дабы читатель поскорей понял, стоит читать статью или нет, я сначала рассмотрю абстрактную задачу, по ходу решения которой будут заданы вопросы «А почему так?». Если вы сразу будете знать ответ, то смело бросайте чтение и переходите к следующей статье.

Читать дальше →
Рейтинг 0
Просмотры52.4K
Комментарии 3

Как увеличить скорость работы 1С в 100 раз прямым обращением к MSSQL

.NETMicrosoft SQL Server
Tutorial
Возникла задача пометить на удаление документы за 1 год. Эта операция выполняется перед бесследным удалением и включает выставление отметки и удаление движения по регистрам. Пробное удаление штатными средствами одного месяца заняло 4 часа. Это означало, что 12 месяцев удалялись бы 48 часов (2 суток). Забегая вперед, скажу, что прямым доступом к 1С документы удаляются за 30-40 минут. Обращение к MSSQL выполнялось через .Net framework и компонент .Net Bridge.

Определение имен таблиц MSSQL


Структура базы данных 1С весьма запутана и состоит из малозначимых для человека названий. 1С содержит функцию определения структуры хранения по имени объекта. В основу разработки положена эта функция ПолучитьСтруктуруХраненияБазыДанных, которая согласно русскому названию возвращает описание структуры. В этой структуре важны 2 поля Назначение, которое должно быть равно «Основная», и название таблицы ИмяТаблицыХранения.

Читать дальше →
Всего голосов 38: ↑25 и ↓13 +12
Просмотры46.1K
Комментарии 33

Adminer — веб-интерфейс для баз данных размером в один .php файл

MySQLPostgreSQLSQLNoSQL


В свете недавнего поста про сравнение PostgreSQL и MySQL, в комментариях возникла проблема выбора удобного интерфейса для работы с постгресом. Я сам столкнулся с такой проблемой, решив поискать альтернативы всем известному phpMyAdmin / php*Admin, который считается стандартом у веб-мастеров.
Читать дальше →
Всего голосов 61: ↑56 и ↓5 +51
Просмотры70.3K
Комментарии 53

Передача параметров в динамический запрос в T-SQL

SQLMicrosoft SQL Server
Из песочницы
Я не раз сталкивался с необходимостью построения динамического запроса и здесь есть ряд подводных камней о которых я расскажу ниже. Пример динамического запроса:

declare @sql varchar(100) = 'select 1+1'
execute( @sql)

1. Запуск строки через Execute создает отдельный блок кода, в котором текущие переменные будут не видны, но видны все временные таблицы.

2. Обратите внимание на передачу переменных со значением NULL. Любое слияние с NULL в результате даст NULL, следовательно, вместо запроса, вы можете получить пустую строку.

declare @i int
declare @sql varchar(100) = 'select ' + cstr(@i)
execute( @sql ) -- Ошибка

3. Передачу дат и времени. Даты лучше передавать в формате ГГГГММДД. При передаче параметров со временем следует обратить внимание на потерю точности. Для сохранения точности значения лучше передавать через временную таблицу.
Читать дальше →
Всего голосов 13: ↑9 и ↓4 +5
Просмотры30.7K
Комментарии 7

Релиз DataGrip (экс-0xDBE) 1.0 — новой IDE для SQL

JetBrainsMySQLPostgreSQLSQLMicrosoft SQL Server
Привет! Мы выпустили IDE для работы с базами данных.

Полтора года мы делали 0xDBE по программе раннего доступа (EAP). Пора подвести черту под нашей работой. Мы благодарим всех, кто пробовал 0xDBE на своих проектах и писал нам — вы очень помогли. По этому названию мы тоже будем скучать.

Теперь IDE называется DataGrip.



Поддерживаемые СУБД

DataGrip это универсальная IDE для работы с MySQL, PostgreSQL, Oracle, SQL Server, Sybase, DB2, SQLite, HyperSQL, Apache Derby и H2.

Работа с объектами БД и генерация кода

DataGrip предоставляет инструменты для работы с объектами базы данных. Если вы создаёте или изменяете таблицу, добавляете или изменяете колонку, индекс, ключ в уже существующей, используйте графический интерфейс. Подобные изменения сопровождаются генерацией соответствующего скрипта — вы можете сразу выполнить сделанные изменения в базе или скопировать сгенерированный DDL-запрос в редактор и работать уже непосредственно с кодом.


Читать дальше →
Всего голосов 42: ↑39 и ↓3 +36
Просмотры38.4K
Комментарии 111

Веб-синхронизация слиянием на MS SQL

Microsoft SQL Server
Из песочницы


Данную статью-инструкцию решено было написать для помощи моим друзьям и коллегам по работе, так как большинство из них не сталкивалось с настройкой веб синхронизации в MS SQL, и я надеюсь, что она позволит избежать некоторых мелких проблем, с которыми столкнулся я сам при настройке. Надеюсь и вам, уважаемое хабрасообщество, она может пригодиться.

Информация по настройке в интернете имеется, но как мне показалось, что все очень разрознено и по большей части нет практической части в настройке. Возможно плохо искал.
Поехали!
Всего голосов 20: ↑20 и ↓0 +20
Просмотры13.2K
Комментарии 2

10 шагов для создания стартапа на основе 1С: Предприятие и Asp.Net MVC

Разработка веб-сайтов.NETMicrosoft SQL Server
Tutorial
Многие считают, что 1С может обслуживать только бухгалтерию. На самом деле это не так. Значение платформы 1С: Предприятие недооценено. Цель статьи показать, что 1С: Предприятие 8.3 может с успехом применяться при построении нестандартных решений в Интернете. 1C может быть удобным инструментом для многих областей: от небольшого IT-проекта до развитой многосерверной системы. Предлагаю обсудить гибкость и применимость платформы 1С к построению веб-проектов и стартапов. Для усиления эффекта 1С рассматривается в связке с .Net framework: Asp.Net MVC.

Статья писалась на основе нескольких нестандартных веб-проектов: личных и корпоративных, успешных и не очень. Здесь вы не найдете руководства по созданию обычных интернет-магазинов, потому что это стандартная, хорошо описанная в других источниках задача. К примерам нестандартных проектов я отношу: сервис проверки начислений по дисконтной карте из нескольких 1С, сайт объявлений для газеты, внутренний сайт голосования за товары между продавцами. Сюда также можно отнести сильно нестандартные интернет-магазины: магазины с несколькими регионами, валютами и ценами; магазины с товарами из разных баз 1С; магазины уникальных товаров, завязанных на производства.
Читать дальше →
Всего голосов 15: ↑7 и ↓8 -1
Просмотры8.9K
Комментарии 22

Короткая шпаргалка по блокировкам при чтении и изменении данных в зависимости от уровня изоляции транзакции в MSSQL

ПрограммированиеMicrosoft SQL Server
Read Uncommitted

  • если в одной транзакции поменять данные — селект этих данных (в другой транзакции или без транзакции) не будут ждать окончания первой транзакции и вернут записанные данные незакомиченных транзакций
  • если в одной транзакции считать данные — апдейты этих данных в другой транзакции не будут ждать окончания первой транзакции
  • шаред локи не используются. Что аналогично установке NOLOCK хинта во все селекты в Read Commited
  • эксклюзивные локировки устанавливаются в процессе выполнения стейтмента и снимаются по окончанию транзакции


Read Committed + read_committed_snapshot off

(alter database xxx set read_committed_snapshot off)

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


Дальше
Всего голосов 19: ↑19 и ↓0 +19
Просмотры27.7K
Комментарии 26

Ускоряем вставку данных из MSSQL на удалённый PostgreSQL в 800 раз

PostgreSQLMicrosoft SQL Server
Из песочницы

В процессе развития проекта периодически появляется необходимость обмена данными между серверами баз данных. Предположим, у нас есть источник данных в виде SQL Server и удалённый PostgreSQL сервер, на котором эти данные должны оказаться. После добавления удалённого сервера в качестве linked server, можно делать запросы вида:


INSERT INTO RemotePG...RemoteTable (RecordID, RecordName) VALUES (1,'Test string');

Проблема в том, что такие запросы выполняются очень долго. Если перед нами стоит задача выгрузить десятки и сотни тысяч записей, то время на выполнение стремится к бесконечности. Рассмотрим два с половиной способа вставить данные в таблицу на linked server и сравним время выполнения.


Читать дальше →
Всего голосов 18: ↑14 и ↓4 +10
Просмотры16.7K
Комментарии 36

Как быстро поднять систему управленческого учёта в рекламном агентстве «с нуля» и без бюджета

Microsoft SQL ServerMicrosoft Access
Из песочницы
Система управленческого учёта – служит для сбора, систематизации, атрибуции, хранения и анализа данных с целью использования при принятии управленческих решений. Проще говоря, она нужна прежде всего, чтобы в любую секунду руководитель мог открыть Power BI/Excel и увидеть, что происходит в компании прямо сейчас: по деньгам, по людям, по KPI, по показателям качества и так далее. Описанная ниже система является работающей моделью того, что мы хотели бы видеть «в идеале», причём в рамках только одного департамента Digital-рекламы. Решение для всего агентства уже создаётся профессиональными разработчиками на гораздо более серьёзной платформе о которой возможно будет написано в дальнейшем.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры9.8K
Комментарии 14

Автоматизированное восстановление баз данных MS SQL из бэкапов

СофтЛабСерверное администрированиеАдминистрирование баз данныхХранение данных
image

В этой статье я хотел бы рассказать о том, как с помощью утилиты Quick Maintenance & Backup for MS SQL настроить автоматическое восстановление баз данных из бэкапов на тестовом экземпляре SQL Server в сети. При этом создавать бэкапы будет штатный План обслуживания. Потребность в автоматизированном восстановлении может возникнуть в следующих случаях:

  1. Если требуется регулярно актуализировать базы данных на тестовых серверах.
  2. Если требуется периодически проверять через восстановление созданные бэкапы: полный, разностный и журналы транзакций.

В сети можно найти примеры скриптов позволяющие в той или иной мере автоматизировать эти задачи. Но большинство решений требуют хорошего понимания T-SQL, предметной области и скорее всего потребуют изменения ваших Планов обслуживания. Я покажу как это сделать за 15-20 минут с помощью утилиты Quick Maintenance & Backup for MS SQL (QMB). Мы задействуем механизм XML планов восстановления — это XML файл с последовательностью бэкапов, который умеет создавать утилита. По информации в XML файле программа получит последовательность бэкапов, сформирует T-SQL скрипт для восстановления и запустит его на выполнение. Подробнее об этой возможности можно почитать здесь.
Читать дальше →
Всего голосов 12: ↑10 и ↓2 +8
Просмотры12.3K
Комментарии 5

Работаем с JSON в SQL Server 2016

SQLMicrosoft SQL Server
Перевод
Tutorial
JSON сейчас один из самых используемых форматов данных в разработке. Большинство современных сервисов возвращают информацию в виде JSON. JSON также предпочитаемый формат для хранения структурированный информации в файлах, например. Так как очень много данных используется в JSON-формате, то поддержка JSON в SQL Server особенно становится актуальной, чтобы иметь возможность обмениваться данными с другими сервисами.

JSON стал одной из самых востребованных фич, добавленных в SQL Server 2016. Далее в статье мы рассмотрим основные механизмы работы с JSON.
Читать дальше →
Всего голосов 19: ↑19 и ↓0 +19
Просмотры61.2K
Комментарии 8

Как изменить закрытую информационную систему под себя без привлечения вендора. Решение нерешаемых задач с Google Chrome

PHPJavaScriptGoogle ChromeMicrosoft SQL ServerAngular
Recovery mode

В крупном бизнесе нередко случаются ситуации, когда внедряются и используются заведомо ущербные информационные системы. Эти проекты начинаются как крутая собственная разработка компании, под её процессы, с учётом всех особенностей. Но уже после сдачи выясняется, что то тут, то там недоделки, несуразности. Что необходимые отчёты и графики получить невозможно, поскольку их не смогли или забыли учесть в ТЗ. Руководство требует, потом просит что-нибудь сделать, но система закрыта для изменений, а подрядчик находится с нами в процессе арбитражной тяжбы. Однако, безвыходных ситуаций конечно же не бывает.
Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Просмотры8.9K
Комментарии 12

Почему много JOIN в запросе это плохо или не мешайте оптимизатору

Администрирование баз данных
Из песочницы
image

Недавно столкнулся с одним приложением, которое генерировало запросы к БД. Я понимаю, что этим никого не удивишь, но когда приложение стало тормозить и мне пришло задание разобраться в чём причина, я был сильно удивлён, обнаружив эти запросы. Вот с чем иногда приходится иметь дело SQL Server:
Читать дальше →
Всего голосов 26: ↑16 и ↓10 +6
Просмотры18.2K
Комментарии 36

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

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


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

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

PleskСистемное администрированиеВиртуализацияDevOps
Tutorial
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.7K
Комментарии 4

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

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