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

Microsoft SQL Server *

Система управления реляционными базами данных

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

Интеграция PostgreSQL с MS SQL Server для тех, кто желает побыстрее и поглубже

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

Недавно на хабре уже было опубликовано описание интеграции PostgreSQL и MSSQL. Но, деталей там категорически не хватало. Посему, цели сей публикации следующие:

  • расширить и углубить общедоступную информацию о FDW для MSSQL называемом tds_fdw: рассказать о разнице в мажорных версиях и описать базовые проблемы совместимости;
  • рассказать о возможностях оптимизации запросов, использующих внешние таблицы;
  • затронуть тему кэширования внешних данных в материализованных представлениях;
  • сказать пару слов об экзотических подходах к интеграции PostgreSQL и MSSQL.

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

Тестирование производительности баз данных при помощи tSQLt и SQLQueryStress

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


Надеюсь не будет откровением, если я скажу, что тестирование отыгрывает важную роль при разработке любого программного продукта. Чем качественнее тестирование, тем лучше в итоге должен выйти конечный продукт.

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

В итоге работа с БД может стать узким местом в производительности нашего приложения.

Чтобы избавить себя от подобного рода проблем, я предлагаю рассмотреть различные аспекты тестирования баз данных. К которым можно отнести нагрузочное тестирование и проверку производительности SQL Server в целом при помощи юнит-тестов.
Подробнее
Всего голосов 19: ↑18 и ↓1+17
Комментарии12

Интеграция PostgreSQL с MS SQL Server

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

В предыдущей статье мой коллега Дмитрий Васильев описал настройку интеграции PostgreSQL с MySQL и описал, как более эффективно выполнять некоторые запросы.


Интеграция PostgreSQL с MS SQL Server


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

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

Летний дедлайн: Топ-10 курсов Microsoft Virtual Academy

Время на прочтение4 мин
Количество просмотров12K
Это последняя статья из серии материалов для прокачки скиллов в виртуальной академии Microsoft MVA. Предыдущие две можно найти здесь и здесь. В ней подобраны must-have курсы для подготовленных специалистов: виртуализация ЦОД с помощью Windows Server 2012 R2 и System Center 2012 R2, безопасность доступа в корпоративным ресурсам, детали развертывания Windows 10 на предприятии, Linux Cluster в Azure, виртуализация рабочих нагрузок Linux в Windows Server 2012 R2, гибридные решения от экспертов Microsoft, глубокое погружение в Windows Server 2016, Windows Nano Server, Office 365 API для мобильных приложений и настройка SharePoint Server.


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

Истории

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

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

TerraServer бесполезный сервис или упущенная возможность?

Время на прочтение6 мин
Количество просмотров19K
Еще до Google Maps в 1998 году у пользователей сети Интернет была возможность посетить другой город, страну или континент, не выходя из дома. Это был первый крупнейший в мире онлайн атлас, который сочетал в себе как спутниковые, так и топографические снимки Земли. Проект носил название TerraServer и содержал в себе более 8 ТБ данных с изображениями от Геологической службы Соединенных Штатов (USGS) и СПИН-2 (SPIN-2), которые обрабатывались базой данных SQL. У данного проекта была всего одна цель и она заключалась вовсе не в том, чтобы помогать пользователям сидя перед монитором «перелетать» через горизонт. Нет, задачей TerraServer была демонстрация возможностей Microsoft: программное обеспечение компании могло обрабатывать самую большую базу данных без каких-либо проблем.

Читать дальше →
Всего голосов 45: ↑36 и ↓9+27
Комментарии15

Бекап баз данных через SQL VDI

Время на прочтение7 мин
Количество просмотров9.1K
Хочу рассказать о том, как мы захотели сделать собственный бекап баз данных для Microsoft SQL Server, и что из этого получилось.

Проблема


Мы в компании используем Microsoft SQL Server, и вполне ожидаемо, что нам надо делать бекапы баз данных для него, что мы успешно делаем. Делается это следующим образом:
  • Первый скрипт делает бекапы нужных баз данных
  • Второй скрипт проходит по папкам с бекапами и архивирует их в 7zip
  • Третий скрипт уносит эти бекапы на внешнее хранилище


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

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

Релиз DataGrip 2016.2: Импорт CSV, поддержка JSON и XML в строках, динамический SQL, улучшения для PostgreSQL

Время на прочтение4 мин
Количество просмотров11K
Привет! У нас пора релизов. Это пост о том, что интересного в новой версии DataGrip — нашей IDE для SQL. Эти изменения также касаются IntelliJ IDEA, PyCharm, PhpStorm и RubyMine — тех инструментов от JetBrains, где есть поддержка баз данных.

image

Вот, что мы добавили:

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

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

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

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


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

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


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

Список полезных ресурсов по Microsoft SQL Server

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

Список из 147 бесплатных и платных интернет ресурсов для изучения и работы с Microsoft SQL Server.
Статья в формате markdown на английском языке доступна на Github

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

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

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

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


Read Committed + read_committed_snapshot off

(alter database xxx set read_committed_snapshot off)

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


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

Полный список расширений для SQL Server Management Studio (SSMS)

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

Полезные платные и бесплатные расширения для SQL Server Management Studio (SSMS) — полный список из 29 расширений.

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

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

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


Доступны записи докладов форума в высоком качестве на Channel9. Программа форума была разделена на 3 трека, см. описание ниже, доклады из каждого трека доступны по ссылке channel9.msdn.com/Events/data-platform-russia/Virtual-Forum-data-technologies-SQL-Server-2016

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. Доклады об обеспечении автоматизации критически-важных процессов в компании благодаря умным аналитическим системам, машинному обучению и ботам, а также интеграции в облако с возможностью масштабирования ИТ-инфраструктуры.
Несколько самых интересных записей под катом
Всего голосов 10: ↑8 и ↓2+6
Комментарии0

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

Полный список инструментов и утилит для Microsoft SQL Server

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

Полезные платные и бесплатные утилиты, инструменты для Microsoft SQL Server — полный список из 165 инструментов.

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

Поддержка BizTalk Server 2010: полезные советы

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

Некоторое время назад нам передали на поддержку сервер BizTalk 2010. Наш клиент – оптовый поставщик продукции, и он использует BizTalk Server для обмена информацией между своей учетной системой и учетными системами своих клиентов. В частности, например, это получение заказов, выгрузка, отправка прайс-листов и накладных, электронный документооборот. Какие полезные советы мы вынесли из практики, рассказываем далее.


image

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

SQL Server 2016 Stretch Database

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


Первого июня состоялся релиз SQL Server 2016, который привнес в привычную разработку большое число нововведений, среди которых уже давно анонсированную технологию Stretch Database, позволяющую динамически переносить «горячие» и «холодные» данные из SQL Server в Azure.

С точки зрения маркетинга, Stretch Database очень хорошо распиарили. Приводили разумные аргументы, что по мере накопления в базе исторических данных возрастает сложность и стоимость её эксплуатации. И предлагали разумное решение — автоматический перенос архивных данных по мере устаревания в «облако». Честно признаюсь, идея мне понравилась.

Начиная с SQL Server 2016 RC0 я начал тестировать технологию Stretch Database на двух проектах, которые помогаю развивать. Первый — это трекер рабочего времени для которого характерна OLTP нагрузка, второй — внутренний проект с DW нагрузкой.
Подробнее
Всего голосов 11: ↑10 и ↓1+9
Комментарии11

Как sql-запросом извлечь из базы данных информацию, которой там нет

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

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


Приходят пользователи и просят: «Вот мы внесли данные в базу, а скажите нам, чего не хватает? Какие данные мы ещё не внесли в базу и их не хватает для полного счастья?»
Первая (и скажем честно, весьма глупая) реакция: «Как же я вам найду то, чего нет в базе данных?».


Но отбросим эмоции и применим логику. Ведь, как правило, требуются данные, формирование которых подчиняется некоему правилу — номера квитанций, справок и так далее… И я исхожу из того, что все эти номера и идентификаторы могут быть преобразованы в натуральную последовательность.
То есть задача будет сформулирована следующим образом: в базе данных хранится последовательность натуральных чисел, в которой есть пропуски, и необходимо вывести пропущенные числа для пользователя.
В такой формулировке задача уже выглядит достаточно простой. Более того — возникает желание реализовать эту задачу одним единственным sql-запросом.

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

Delayed Durability или история о том как получилось ускорить выполнение автотестов с 11 до 2,5 минут

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


Относительно недавно я начал помогать на новом для себя продуктовом проекте, который на поверку разрабатывается как бесплатный веб-сервис для трекинга рабочего времени.

Стек технологий был изначально выбран мелкомягкий, а в качестве хранилища данных использовался SQL Server 2014 Express. Одним из первых тасков, которые мне поручили — это поисследовать возможность ускорения автотестов.
Подробнее
Всего голосов 16: ↑16 и ↓0+16
Комментарии10

Полный список флагов трассировки Microsoft SQL Server

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

Microsoft SQL Server Флаги Трассировки


Полный список Microsoft SQL Server флагов трассировки (359 флагов трассировки на текущий момент).


ПОМНИТЕ: Будьте предельно осторожны с флагами трассировки, проверяйте их влияние в первую очередь в тестовой среде.

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

Подводные камни при использовании Linked Server

Время на прочтение5 мин
Количество просмотров30K
В нашу компанию пришел достаточно интересный проект, связанный с обработкой очереди задач. Проект был разработан ранее другой командой. Нам необходимо было разобраться с проблемами, возникающими при большой нагрузке на очередь, и, соответственно, исправить найденные.

Если вкратце, то проект из себя представляет несколько БД и приложений, расположенных на разных серверах. «Задача» в данном проекте – это хранимая процедура или .Net приложение. Соответственно «задача» должна быть выполнена на определённой БД и на определенном сервере.

image
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии11