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

Пользователь

Отправить сообщение

Перенос заданий и расписаний с одного экземпляра MS SQL Server на другой средствами T-SQL

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

Предисловие


Довольно часто бывает необходимо перенести задания Агента на другой экземпляр MS SQL Server. Восстановление базы данных msdb невсегда именно то решение, которое подойдет, т к нередки случаи, когда нужно перенести именно только задания Агента, а также при переходе на более новую версию MS SQL Server. Так как же можно перенести задания Агента без восстановления базы данных msdb?

В данной статье будет разобран пример реализации скрипта T-SQL, который копирует задания Агента с одного экземпляра MS SQL Server на другой. Данное решение было опробовано при переносе заданий Агента с MS SQL Server 2012-2016 на MS SQL Server 2017.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии12

Принципы работы СУБД. MVCC

Время на прочтение5 мин
Количество просмотров80K
Многие из нас сталкивались в своей работе с СУБД. На текущий момент базы данных в том или ином виде окружают нас повсюду, начиная с мобильных телефонов и заканчивая социальными сетями, в число которых входит и любимый нами хабр. Реляционные СУБД являются наиболее распространенными представителями семейства СУБД, и большинство из них являются транзакционными.
В институте нас заставляли заучивать определение ACID и стоящие за ним свойства, но почему-то стороной обходились подробности реализации этой парадигмы. В данной статье я постараюсь частично заполнить этот пробел, рассказав о MVCC, которая используется в таких СУБД как Oracle, Postgres, MySQL, etc. и является весьма простой и наглядной.
читать далее
Всего голосов 26: ↑23 и ↓3+20
Комментарии22

Семь смертных грехов программиста на T-SQL

Время на прочтение13 мин
Количество просмотров204K
Недостаточно писать код хорошо читаемым: он также должен быстро выполняться.

Существует три базовых правила для написания такого T-SQL кода, который будет работать хорошо. Они кумулятивные – выполнение всех этих правил окажет положительное влияние на код. Пропуск или изменение любого из них – скорее всего приведет к отрицательному влиянию на производительность вашего кода.

  • Пишите, исходя из структуры хранения данных: если вы храните данные типа datetime, используйте именно datetime, а не varchar или что-нибудь еще.
  • Пишите, исходя из наличия индексов: если на таблице построены индексы, и они должны там быть, пишите код так, чтобы он мог использовать все преимущества, предоставляемые этими индексами. Убедитесь, что кластерный индекс, а для каждой таблицы он может быть только один, используется наиболее эффективным образом.
  • Пишите так, чтобы помочь оптимизатору запросов: оптимизатор запросов – восхитительная часть СУБД. К сожалению, вы можете сильно затруднить ему работу, написав запрос, который ему «тяжело» будет разбирать, например, содержащий вложенные представления – когда одно представление получает данные из другого, а то из третьего – и так далее. Потратьте свое время для того, чтобы понять как работает оптимизатор и писать запросы таким образом, чтобы он мог вам помочь, а не навредить.

Существует несколько типичных ошибок, которые люди допускают в своем коде на T-SQL – не совершайте их.
Читать дальше →
Всего голосов 67: ↑62 и ↓5+57
Комментарии14

Экспорт таблиц MS SQL Server 2000/2005/2008 в XML файл

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

Здравствуйте, уважаемое хабрасообщество !


Поговорим о проблеме, ставшей заголовком этой темы.

Постановка:


Необходимость вывода таблицы на сервере в XML файл нужной кодировки для дальнейших нужд (анализ, включение XML в другие компоненты и приложения и т.п.). Будем использовать bat-сценарий.

Читать дальше
Всего голосов 6: ↑3 и ↓30
Комментарии2

B-tree

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

Введение


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

Основные операции в деревьях выполняются за время пропорциональное его высоте. Сбалансированные деревья минимизируют свою высоту (к примеру, высота бинарного сбалансированного дерева с n узлами равна log n). Большинство знакомо с такими сбалансированными деревьями, как «красно-черное дерево», «AVL-дерево», «Декартово дерево», поэтому не будем углубляться.

В чем же проблема этих стандартных деревьев поиска? Рассмотрим огромную базу данных, представленную в виде одного из упомянутых деревьев. Очевидно, что мы не можем хранить всё это дерево в оперативной памяти => в ней храним лишь часть информации, остальное же хранится на стороннем носителе (допустим, на жестком диске, скорость доступа к которому гораздо медленнее). Такие деревья как красно-черное или Декартово будут требовать от нас log n обращений к стороннему носителю. При больших n это очень много. Как раз эту проблему и призваны решить B-деревья!

B-деревья также представляют собой сбалансированные деревья, поэтому время выполнения стандартных операций в них пропорционально высоте. Но, в отличие от остальных деревьев, они созданы специально для эффективной работы с дисковой памятью (в предыдущем примере – сторонним носителем), а точнее — они минимизируют обращения типа ввода-вывода.
Читать дальше →
Всего голосов 82: ↑75 и ↓7+68
Комментарии32

Интеграция XML данных — другой путь

Время на прочтение18 мин
Количество просмотров34K
В данной статье описывается «нетрадиционная», но достаточно мощная технология обработки XML, позволяющая импортировать любые XML-данные и преобразовывать их структуру эффективно и просто, при этом один и тот же процесс обработки позволяет трансформировать исходные данные любой структуры без какого-либо изменения программного кода.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии6

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

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

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

Минимальный «hello world» telegram-бот

Время на прочтение2 мин
Количество просмотров136K
Здесь фокусник за четыре шага покажет как без боли и чтения документации собрать бот-оповещатель для telegram.
Читать дальше →
Всего голосов 27: ↑10 и ↓17-7
Комментарии18

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

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

SQL Server Integration Services (SSIS) для начинающих – часть 1

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

Часть 2
Часть 3

SSIS – это инструмент, который позволяет в удобном виде реализовать интеграцию, т.е. реализовать процесс переноса данных из одного источника в другой. Этот процесс иногда называют ETL (от англ. Extract, Transform, Load – дословно «извлечение, преобразование, загрузка»).

Думаю, данный практический курс будет полезен тем, кто хочет изучить SSIS и не знает с чего начать. Здесь в режиме Step By Step мы начнем с самого начала, т.е. установки всего необходимого.

Дальше будет очень много картинок!
Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии7

5 вопросов по SQL, которые часто задают дата-сайентистам на собеседованиях

Время на прочтение6 мин
Количество просмотров140K
Хотя составление SQL-запросов — это не самое интересное в работе дата-сайентистов, хорошее понимание SQL чрезвычайно важно для того, кто хочет преуспеть в любом занятии, связанном с обработкой данных. Дело тут в том, что SQL — это не только SELECT, FROM и WHERE. Чем больше SQL-конструкций знает специалист — тем легче ему будет создавать запросы на получение из баз данных всего, что ему может понадобиться.



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

  1. Изучение механизмов, которые выходят за пределы базового знания SQL.
  2. Рассмотрение нескольких практических задач по работе с SQL.

В статье рассмотрено 5 вопросов по SQL, взятых с Leetcode. Они представляют собой практические задачи, которые часто встречаются на собеседованиях.
Читать дальше →
Всего голосов 49: ↑32 и ↓17+34
Комментарии85

2 лайфхака: альтернативы классическому поиску в Microsoft SQL Server

Время на прочтение12 мин
Количество просмотров19K
Привет, Хабр! Наши друзья из Softpoint подготовили интересную статью про Microsoft SQL Server. В ней разбирается два практических примера использования полнотекстового поиска:

  • Поиск по «бесконечным» строкам (напр., Комментарии) в противовес обычному поиску через LIKE;
  • Поиск по номерам документов с префиксами. Там, где обычно полнотекстовый поиск применять нельзя: ему мешают постоянные префиксы. Разбирается 2 подхода: предварительная обработка номера документа и добавление собственной библиотеки-word breaker’а.

Присоединяйтесь!

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

Тестостерон, зачем он мужчинам и как сохранить силу к старости

Время на прочтение12 мин
Количество просмотров77K
Статья посвящена такому важному гормону, как тестостерон, и объяснению, почему именно он делает мужчин мужчинами. Также cтатья будет интересна к прочтению прекрасным полом.

Содержание:

  • История открытия
  • Что такое тестостерон и как он работает в организме
  • Нормы тестостерона, диагностика, а также немного о заместительной терапии Т
  • Риски избытка и недостатка тестостерона
  • Пища для поднятия уровня тестостерона


Всего голосов 18: ↑13 и ↓5+14
Комментарии30

varchar(max)-varchar(max) и в продакшн

Время на прочтение6 мин
Количество просмотров21K
Недавно поучаствовал в дискуссии на тему влияния на производительность указания длины в столбцах с типом nvarchar. Доводы были разумны у обеих сторон и поскольку у меня было свободное время, решил немного потестировать. Результатом стал этот пост.

Спойлер – не всё так однозначно.

Все тесты проводились на SQL Server 2014 Developer Edition, примерно такие же результаты были получены и на SQL Server 2016 (с небольшими отличиями). Описанное ниже должно быть актуально для SQL Server 2005-2016 (а в 2017/2019 требуется тестирование, поскольку там появились Adaptive Memory Grants, которые могут несколько исправить положение).

Нам понадобятся – хранимая процедура от Erik Darling sp_pressure_detector, которая позволяет получить множество информации о текущем состоянии системы и SQL Query Stress – очень крутая open-source утилита Adam Machanic/Erik Ejlskov Jensen для нагрузочного тестирования MS SQL Server.

О чём вообще речь


Вопрос, на который я стараюсь ответить – влияет ли на производительность выбор длины поля (n)varchar (далее везде просто varchar, хотя всё актуально и для nvarchar), или можно использовать varchar(max) и не париться, поскольку если длина строки < 8000 (4000 для nvarchar) символов, то varchar(max) и varchar(N) хранятся IN-ROW.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии7

Дружим ORDER BY с индексами

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


Привет, Хабр!


Я потихоньку перевожу статьи Маркуса Винанда из блога use the index luke.


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

Читать дальше →
Всего голосов 23: ↑22 и ↓1+25
Комментарии1

ImportExportDataSql — бесплатный конвертер данных MSSQL

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

Введение


Очень часто возникает задача конвертации данных из одной БД в другую, из внешнего файла разного формата в БД и наоборот. При этом типы данных внутри БД могут быть не только текстовые, но и бинарные (binary или varbinary). Бинарные и текстовые данные, как известно, в SQL Server Management Studio обрезаются и не выводятся полностью. В связи с этими недостатками пришлось написать свое приложение для конвертации данных в/из MSSQL на языке C# (.NET Framework 4.0). Приложение называется ImportExportDataSql и изначально он создавался именно для конвертации из бинарных полей БД в файлы, но потом функционал расширялся. Приложение портативное, без рекламы и не требует доступа в Интернет.

Возможности приложения


  1. Результат SQL-запроса выборки данных генерит данные в SQL-формате с проверкой наличия записи в таблице по указанному пользователем условию WHERE
  2. Несколько результатов SQL-запросов объединяются в один файл, если пользователь укажет в разных задачах одинаковое имя выходного файла
  3. Все настройки хранятся в XML файле
  4. Возможность запуска из консоли
  5. Быстрая загрузка/выгрузка в БД при работе с CSV
  6. Возможность загружать Excel-файлы в двух режимах
  7. Выполняются только отмеченные задачи
  8. Задачи, выполненные с ошибками подсвечиваются красным цветом, а без ошибок — зеленым. Сообщение об ошибке при этом выводится не только в лог, но и в виде всплывающей подсказки напротив строки, где возникла ошибка

Интерфейс приложения


При запуске приложения необходимо соединиться с БД.



После успешного соединения с БД отображается список задач.


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

Samsung удалённо блокирует свои «серые» Smart TV в России. UPD — заявление Samsung

Время на прочтение4 мин
Количество просмотров206K
Никогда и ничего фирмы Самсунг я больше в жизни не куплю!!! И буду отговаривать всех кто будет спрашивать совет в покупке техники!
Типичный гнев анонимуса на заданную тему



С 22 января Самсунг начала активно блокировать работу Smart TV на своих телевизорах, не предназначенных производителем для эксплуатации на территории России. Пару дней назад эта ситуация получила широкую огласку и с тех пор рунет не утихает.
Понятно желание производителя воспользоваться преимуществами российского законодательства (национальный принцип исчерпания права на товарный знак — ст. 1487 ГК РФ), ограничить параллельный импорт и таким образом защитить свою маржу.

Например, одна из самых популярных моделей Q70 в размере 55" стоит около 64 000 рублей, а в официальном магазине - 100 000 рублей. Для больших диагоналей разница в цене составляет 1,5-2 раза.
Читать дальше →
Всего голосов 128: ↑121 и ↓7+151
Комментарии677

HIPEC. Годы жизни вместо месяцев при злокачественных опухолях брюшной полости

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

Многие злокачественные опухоли распространяют метастазы на брюшину – тонкую «оболочку», которой покрыты внутренние органы и стенки брюшной полости. Называется это явление (от лат. peritoneum – брюшина) перитонеальный карциноматоз (канцероматоз – не всеми признаваемый, но общепринятый синоним, который мы тоже употребляем). Просовидные (мелкие, как пшено) метастазы рассеяны по всей поверхности брюшины.
Всего голосов 14: ↑13 и ↓1+19
Комментарии6

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

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

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

Эта статья не про нормализацию БД. Если хотите этому научиться, то здесь я вкратце рассказал основы.

Если у вас есть рабочая БД, то нужно ответить себе на вопрос: «какие стандарты можно применить для облегчения использования этой базы данных?». Если эти стандарты применялись широко, то вам будет легко пользоваться БД, потому что не придётся изучать и запоминать новые наборы стандартов каждый раз, начиная работу с новой БД.
Читать дальше →
Всего голосов 49: ↑38 и ↓11+39
Комментарии53

Автоматизация по сбору данных о росте таблиц и файлов всех баз данных MS SQL Server

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

Предисловие


Часто возникает потребность контролировать рост всех таблиц и файлов всех баз данных.

В данной статье будет рассмотрен пример того, как можно автоматизировать сбор данных о росте таблиц и файлов баз данных.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии4
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность