Как стать автором
Поиск
Написать публикацию
Обновить
4.2

Microsoft SQL Server *

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

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

Как ускорить высокопараллельные вставки строк в SQL Server за считанные часы: опыт Mindbox

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров4.9K

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

Меня зовут Тимур Маннапов, и я самый обычный senior-разработчик в Mindbox.

На примере нашего продукта я расскажу, почему при загрузке CPU наполовину или меньше скорость параллельных вставок на SQL-сервере упирается в «невидимый» предел, а потом и вовсе замедляется. На нашем железе предел был в районе ~120 тысяч строк в минуту в одну таблицу. Поделюсь, как его преодолеть, не потратив годы на разработку и миллионы на новый сервер.

Читать далее

Что такое 50% cpu?

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров48K

Если у вас на машине стрелочка показывает, что у вас осталась половина бака, то у вас точно осталась половина бака? На самом деле больше, так как современные машины врут и топлива еще немного есть, даже когда стрелка на нуле - забота об альтернативно одаренных водителях. А если сервер показывает 50% cpu, то сколько ресурсов у нас осталось?

Для многих ответ ясен, и это не 50%. Поэтому извините, если многие вещи будут вам очевидны. А вот для менеджеров, например, которые планируют ресурсы, это может быть открытием.

Читать далее

MSSQL natively compiled: когда они тормозят

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров927

В базах данных нет серебряной пули, универсального рецепта. Мне захотелось проверить экспериментально один граничный случай использования in memory tables и natively compiled - когда в тесте все было хорошо, а на реальных данных начались тормоза.

Читать далее

Transact SQL для анализа данных

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

Язык Transact SQL является процедурным расширением языка SQL и используется в СУБД Microsoft SQL Server. В этой статье мы рассмотрим использование некоторых элементов T-SQL для анализа данных. Сначала мы рассмотрим оконные функции, а затем поговорим о методах сводки (pivoting) данных и его отмены. При сводки данные преобразуются из состояния строк в столбцы, а при отмене обработки данные преобразуются из столбцов в строки, аналогично Excel.

Читать далее

Записки оптимизатора 1С (часть 8). Нагрузка на диски сервера БД при работе с 1С. Пора ли делать апгрейд?

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

Поговорим про падения производительности ИТ-систем, которые на первый взгляд связаны с дисковой подсистемой. Но это только «на первый взгляд».

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

Читать далее

SQL server: темная сторона AlwaysOn

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

В SQL server есть замечательная технология - AlwaysOn. Она используется для DR (disaster recovery, асинхронная репликация данных), HA (high availability, часто с automatic failover, что возможно при синхронной репликации), и для того, что мы обсудим в статье: readonly replica для DWH/OLAP/Reporting workload.

Ничто не совершенно (хотя я восхищаюсь простотой установки некоторых решений в MS SQL по сравнению с Postgre и Oracle. Хотя бы бэкапы... А AlwaysOn для маленьких баз заводится буквально в пару кликов).

Cегодня мы рассмотрим проблемы при использовании AlwaysOn для DWH/OLAP/Reporting.

Читать далее

1С РИБ опять тормозит. Как лечить?

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров3.5K

Назрела тут тема про обмены между базами данных 1С. Даже сузим круг и поговорим об обменах между гомогенными базами данных (базами данных с идентичными конфигурациями).

Ситуации когда бизнес предпочитает распределенные информационные системы централизованным системам – далеко не редкость. И чем ИТ-система больше, чем больше в ней пользователей и транзакций в единицу времени, тем сложнее поддерживать обмен между ее узлами на плаву. Обмен частенько тормозит и становится помехой пользователям и даже бизнесу...

Читать далее

Как перенести 1,4 ТБ с MS SQL на PostgresSQL за 13 часов

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров18K

Привет, Хабр! Меня зовут Павел Кузьмин, я работаю ведущим разработчиком в РСХБ-Интех. Однажды в своей работе мы столкнулись с острой необходимостью перенести БД объемом 1,4 ТБ (более 1,5 млрд строк) с MS SQL на PostgresSQL не более чем за 20 часов. Неожиданно для нас, все имеющиеся готовые варианты не подходили, поэтому мы решили взять библиотеку Npgsql на C# и написать свой код. В итоге созданное решение справилось с поставленной задачей за 13 часов. Рассказываем, как мы это сделали, и делимся кодом. Возможно, он вам пригодится в работе.

Читать далее

Записки оптимизатора 1C (часть 7). «Нелогичные» блокировки MS SQL для систем 1С: Предприятие

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

Продолжаем тему блокировок на сервере СУБД. Сегодня «нелогичные» блокировки. Нелогичные в кавычках, потому что с точки зрения пользователя они выглядят как обычные логические (Записки оптимизатора 1С (часть 6). Логические блокировки MS SQL Server в 1С: Предприятие), но природа их совсем другая.

Читать далее

Как принудительно уронить MS SQL Server чтобы он ушёл на перезагрузку

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров3.3K

При чтении логов из базы данных, а именно, из LDF данных, в большинстве случаев вы наткнётесь на такие функции в запросе sys.fn_dblog(null, null), sys.fn_dblog_xtp(null, null)

Читать из LDF Вы захотите по различным причинам, но так или иначе основная проблема будет «у нас откуда‑то списались деньги остатки, пропал товар, упал прод, разберитесь».

Допустим, Вы захотите воскресить удалённый, дропнутый объект из базы.

Типичный скрипт

Посмотреть код

Внедрение поисковой системы в крупное CRM-решение: наш опыт

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров730

Один из наших длительных проектов — это крупное многопользовательское SaaS-решение (CRM-система) основанное на микросервисной архитектуре и развернутое в облаке Azure. Изначально это был MVP, где все части (сервисы, базы данных и т. д.) располагались на одной виртуальной машине. Со временем проект вырос в облачное распределенное решение с множеством веб- и мобильных клиентов. 

В этой статье мы расскажем, как решили одну из проблем, с которой столкнулись в процессе разработки.

Читать далее

Миграция терабайтной базы 1С: УПП с платформы 1C 8.1 на 8.3

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

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

Сегодня поговорим про, казалось бы, обыденный случай – обновление платформы 1С. Большие базы, как обычно, накладывают свои ограничения на все процессы обновления/обслуживания/конвертации. Есть много рисков, которые необходимо предусмотреть на берегу, подстелить соломки, чтобы не получить простои системы и бизнеса.

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

Читать далее

Установка MS SQL Server на Linux

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров25K

В этой статье я научу вас устанавливать Microsoft SQL Server 2022 на Linux и мы развернем тестовую базу данных от Microsoft в операционной системе Linux.

Мы будем использовать пакетным менеджером Yum для Linux дистрибутивов: RedHat (RHEL), CentOS, Scientific Linux и DPKG (Debian Package) – система управления пакетами в Debian и дистрибутивах на его основе, например Ubuntu и набирающем популярность Astra Linux, в связи с импортозамещением. Поэтому команды я приведу для обоих пакетных менеджеров. Так же рассмотрим универсальный способ запуска через Docker.

Microsoft SQL Server — система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов (диалект SQL) — Transact-SQL (T-SQL).

Для взаимодействия с СУБД MS SQL Server используются 2 основных способа:
1. Служебная программа sqlcmd
2. Microsoft SQL Server Management Studio (SSMS)

Конечно вы можете использовать привычный для вас DBeaver или DataGrip или любой другой инструмент администрирования базы данных.

Читать далее

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

Записки оптимизатора 1С (часть 6). Логические блокировки MS SQL Server в 1С: Предприятие

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров8.1K

Поговорим о блокировках в 1С:Предприятие. Идея написать эту статью появилась «по просьбам слушателей». Постараюсь максимально простым языком, без зауми рассказать о природе блокировок и что с ними делать. В один пост весь материал помещать не буду — громоздко, поэтому сегодня речь пойдет о логических блокировках сервера СУБД.

С точки зрения конечного пользователя проблема избыточных блокировок выглядит почти одинаково — замедление при выполнении операций и/или ошибка. Но природа блокировок бывает разной и решения тоже разные.

Читать далее

Функции ранжирования: RANK, DENSE_RANK, and NTILE

Уровень сложностиСложный
Время на прочтение6 мин
Количество просмотров24K

В предыдущей статье обсуждалась функция ROW_NUMBER. Сейчас же мы рассмотрим другие функции ранжирования: RANK, DENSE_RANK и NTILE. Начнем с RANK и DENSE_RANK. Эти функции по функциональности и реализации аналогичны ROW_NUMBER. Разница в том, что ROW_NUMBER присваивает уникальное (возрастающее) значение каждой строке без учета связей в значениях ORDER BY, а функции RANK и DENSE_RANK присваивают одно и то же значение строкам, имеющим одинаковое значение ORDER BY. Разница между функциями RANK и DENSE_RANK заключается в том, как значения присваиваются строкам. Проще всего проиллюстрировать разницу между всеми этими функциями на простом примере:

Читать далее

Эффективное использование журнала регистрации и технологического журнала 1С в решении вопросов производительности

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.8K

Эта статья носит своей целью продемонстрировать другой подход в анализе проблем производительности в системах 1С:Предприятие с применением журнала регистрации (ЖР) и технологического журнала (ТЖ).

Напомню, что ЖР логирует действия пользователей — кто, когда в каком объекте внес изменения, с какого компьютера, каким сеансом и т. п. ТЖ — это средство для логирования уже самой платформы. Для расследования проблем производительности информация из журналов очень полезна, но основное время уходит на её поиск, сопоставление с другими метриками и счетчиками мониторинга.

При проведении расследований мы сами часто сталкиваемся с проблемой длительной обработки и сопоставления данных журналов 1С с остальными метриками. И вот наконец руки дошли до парсинга журналов. С точки зрения анализа производительности все данные журналов нам не нужны. А какие нужны?

Вот! В этом как раз вся «соль» идеи.

Читать далее

Миграция с MSSQL Server на PostgreSQL. Предпосылки

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров6.2K

Сегодня обсудим общие вопросы, связанные с миграцией баз данных на новую платформу. Как обычно, акцент сделан на системах 1С:Предприятие, как самых популярных на российском рынке. Но многие рекомендации универсальны и годятся для всех ИТ-систем.

Читать далее

Сильное шифрование подключения SQL Server Management Studio 20 к Microsoft SQL Server 2022

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров2.8K

Эта статья о том, что нового появилось в SQL Server Management Studio 20 (SSMS), и является второй из серии статей на эту тему. Первую статью можно почитать тут: Upcoming changes for SQL Server Management Studio (SSMS) — Part 1.Заключительной статьёй в серии является: Upcoming changes for SQL Server Management Studio (SSMS) — Part 3. SSMS 20 может удивить Вас сразу после установки, когда вдруг обнаружится что по умолчанию предполагается шифрованное соединение SSMS с сервером баз данных. На то, чтобы помочь пользователям SSMS справится с этой проблемой и добиться лучшей защиты соединения с помощью новых механизмов шифрования SQL Server 2022, как раз и направлена эта статья.

Читать далее

Медленное выполнение команды TRUNCATE: анализ проблемы блокировок спинлока в SQL Server

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.2K

Приветствую всех читателей Хабра! Меня зовут Михаил, я администратор DBA в компании «Автомакон». На данный момент работаю на проекте для «ВкусВилл».

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

Читать далее

Ranking Functions: ROW_NUMBER

Уровень сложностиСложный
Время на прочтение5 мин
Количество просмотров5.7K

Четыре функции ранжирования: ROW_NUMBER, RANK, DENSE_RANK и NTILE появились в SQL Server 2005 и отличаются от обычных скалярных функций тем, что результат, который они выдают для строки, зависит от других строк выборки. От агрегатных функций они отличаются тем, что возвращают только одну строку для каждой строки на входе, т. е. они не объединяют набор строк в одну. В этой статье мы рассмотрим ROW_NUMBER — самую простую из всех функций ранжирования.

Читать далее