Как стать автором
Обновить
22.88
Рейтинг

Microsoft SQL Server *

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

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Нагрузочное тестирование сайта на Microsoft Azure

Тестирование IT-систем *.NET *Microsoft SQL Server *Microsoft Azure
Из песочницы

В последние лет пять про облачные технологии слышно все чаще. Microsoft и Amazon отчитываются о высоком росте доли облачных сервисов в отчетах о прибыли. Российский Яндекс относительно давно продвигает свое Облако. К этому подключился и Сбер со своим облачным продуктом. Часто можно услышать и о других, менее крупных игроках.

Смотря на все это многообразие я подумал, что происходит какая-то вечеринка, а меня не пригласили. Ну что же, давайте присоединимся к этой вечеринке сами разместив сайт на Azure и сравнив тарифы службы приложений и службы БД.

Цель этой статьи можно выразить в 2х пунктах:

1. С одной стороны мы познакомимся с тарифными планами службы веб-приложений и службы хостинга баз данных

2. С другой стороны мы проведем нагрузочное тестирование тремя стратегиями тестирования в разрезе разных тарифных планов.

Перейдем к эксперименту
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 1.4K
Комментарии 7

СЭД на платформе DocsVision (часть 2): как сократить базу данных с 19 до 11 ТБ

Блог компании ДОМ.РФ Microsoft SQL Server *Администрирование баз данных *

Всем привет!

В своей первой статье, посвященной группам доступности, я уже писал о системе электронного документооборота ДОМ.РФ «СДУ Приоритет» и о том, как Always On Availability Groups помогли нам значительно сократить требуемое технологическое окно за счёт оптимальной процедуры отката со стороны БД. В этой части речь пойдет о том, как мы провели дедубликацию файлов в СЭД на уровне БД и сократили объем БД на 8Тб без потери информации, и как нам помогли в этом группы доступности.

Читать далее
Всего голосов 1: ↑0 и ↓1 -1
Просмотры 661
Комментарии 2

СЭД на платформе DocsVision (часть 1): как группы доступности MSSQL помогают быстрее выкатывать изменения в прод

Блог компании ДОМ.РФ Microsoft SQL Server *Администрирование баз данных *

Всем привет, меня зовут Александр, я работаю в команде СЭД компании ДОМ.РФ.

В этой статье я расскажу, как Always On Availability Groups помогает значительно сократить требуемое технологическое окно за счёт оптимальной процедуры отката со стороны БД, также как подружить СЭД с группами доступности. Во второй части статьи речь пойдет о том, как мы провели дедубликацию файлов в СЭД на уровне БД и сократили объем БД на 8Тб без потери информации, и как нам помогли в этом группы доступности.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 1.3K
Комментарии 2

Computed Columns и nvarchar(max)

SQL *Microsoft SQL Server *Администрирование баз данных *

Недавно столкнулся с проблемным запросом, который делал отбор по столбцу с типом nvarchar(max). Про производительность отборов по nvarcar(max) я уже писал, а сейчас решил сделать пост о том, как можно решить проблему, если фильтр по nvarchar(max) нужен.

В первой части я покажу что можно сделать, если на самом деле nvarchar(max) не был нужен, а хватило бы "нормальной" длины, с которой столбец можно проиндексировать. А во второй - что делать, если строка на самом деле такая длинная, что проиндексировать столбец с ней не представляется возможным.

На помощь приходят Computed Columns
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 1.2K
Комментарии 8

Read Committed and Large Objects

Microsoft SQL Server *
Перевод

В моей последней статье было показано, что SQL Server при исполнении оператора UPDATE откладывает фиксацию блокировки до конца чтения (вместо снятия блокировок со строк сразу после их освобождения). Как там отмечалось, это делается для того, чтобы между просмотром или поиском строк для предстоящего изменения не допустить другие изменения. В этой статье будет рассмотрен аналогичный алгоритм при работе с большими объектами.

Обычно, когда SQL Server прогоняет данные через блокирующий оператор, например, это может быть сортировка, он делает промежуточную материализацию этих данных. После того, как SQL Server сделает такую копию, нет необходимости в дальнейшем блокировании исходных строк или источника данных. Однако, поскольку большие объекты (например, varchar (max)) могут занимать до 2 Гбайт, делать копии больших объектов как правило непрактично. Взамен, когда это возможно, SQL Server использует указатели на данные вместо того, чтобы материализовать копию данных. Для гарантии, что указатели остаются актуальными, SQL Server не снимает блокировку строк, содержащих большие объекты, до завершения инструкции.

Давайте понаблюдаем за этим поведением. Начните с создания следующей таблицы:

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 863
Комментарии 0

Отказ от ежедневной дефрагментации

Microsoft SQL Server *

В этой статье попытаемся понять, как изменились процедуры обслуживания индексов для таблиц Microsoft SQL Server в современных условиях: при размещении файлов данных и журнала транзакций на SSD-дисках, многократном увеличении числа процессорных ядер и в условиях, когда оперативная память сервера стала измеряться Терабайтами.Действительно, мир стал другим. С тех пор как появились первые версии SQL Server, многое изменилось и многие методики, основанные на старых компьютерных ресурсах, работают уже не так эффективно, как прежде, когда без них невозможно было обойтись. Одной из таких методик, которая с давних пор воспринимается чуть ли не «серебряной пулей», а на деле превратилась в миф, является обязательная дефрагментация индексов, если в данные индекса достаточно часто вносятся изменения. Цель статьи развеять этот миф.

В своей документации, Майкрософт обращает наше внимание на то, что не стоит выполнять обслуживание индексов, не убедившись, что это принесёт пользу. Вот цитата:

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

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

Читать далее
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 4.9K
Комментарии 26

Как избавиться от дублей в базе данных (на примере MS SQL)

Блог компании Ozon Tech Программирование *SQL *Microsoft SQL Server *Администрирование баз данных *
Tutorial

Всем привет! Меня зовут Евгений, я занимаюсь разработкой и проектированием в Ozon. Больше всего работаю с MS SQL и C#, но попадаются и другие СУБД и языки программирования.

Ozon как продукт быстро растёт: во втором квартале этого года мы доставляли больше миллиона посылок в день. Для обработки такого объёма заказов мы используем разные языки и платформы: .NET (C#), Go, MS SQL Server и PostgreSQL.

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

Я расскажу об одном таком случае, когда наша команда потратила много времени и сил, но всё-таки нашла оптимальный способ решения проблемы дублирования данных.

Но сначала позвольте погрузить вас немного в предметную область — объясню, на примере чего будет демонстрироваться проблема дублирования данных, и освещу некоторые методы её решения.

Читать далее
Всего голосов 58: ↑57 и ↓1 +56
Просмотры 4.8K
Комментарии 38

Перевод: Как MS SQL Server выполняет запросы. Часть 2

Microsoft SQL Server *
Перевод

Продолжаю публиковать перевод статьи Remus Rusanu (CC-BY), о том,  как MS SQL Server выполняет запросы. В этой части разберём, как данные хранятся внутри БД, а также как именно происходит их считывание в рамках запроса.

Первая часть статьи доступна по ссылке.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 4.2K
Комментарии 0

Перевод: Как MS SQL Server выполняет запросы. Часть 1

Microsoft SQL Server *
Перевод

Если вы разработчик, работаете над приложением, которое взаимодействует с SQL Server, и вам интересно, что в действительности происходит, когда вы «выполняете» запрос из своего приложения – что ж, я надеюсь, эта статья поможет лучше писать код запросов, а также может стать отправной точкой для расследования проблем производительности.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 11K
Комментарии 0

Использование SET STATISTICS TIME ON в SQL Server

Блог компании OTUS SQL *Microsoft SQL Server *
Перевод

Инструкция SET STATISTICS TIME ON позволяет нам легко получить информацию о времени выполнения запроса. В этой статье посмотрим подробнее, какую именно, и что она означает.

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Просмотры 2.4K
Комментарии 0

Blitz Excel UI

SQL *Microsoft SQL Server *Visual Basic for Applications *

Всем привет. "Не возвращаясь" к нашим баранам из предыдущей статьи "И снова про MS Excel", хочу показать, что же все-таки у меня получилось для работы со скриптами First Response Kit (sp_Blitz) от Brent Ozar и компании. Нравится данный набор и для анализа загруженности SQL Server-а и оптимизации запросов на оном. Причем сам Brent предлагает нечто подобное за денюжку. Для тех кто пользовался, пользуется или думает пользоваться - предлагаю взглянуть на то что у меня получилось.

Едем дальше
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 1.7K
Комментарии 0

Fill factor

Высокая производительность *Microsoft SQL Server *
Из песочницы
Перевод

От переводчика

Публикация составлена по материалам BrentOzar.com (Brent Ozar)

5 Things About Fillfactor (Kendra Little)

Существует несколько статей на близкие темы.

Does low fill factor affect SELECT performance? (Tara Kizer)

Does index fill factor affect fragmentation? (Erik Darling)

Good Reasons to Rebuild or Reorganize Indexes (Erik Darling)

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 2K
Комментарии 5

Избавляемся от PAGELATCH_EX в SQL Server

Блог компании OTUS SQL *Microsoft SQL Server *
Перевод

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

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 2.1K
Комментарии 1

Один день из жизни DBA Microsoft SQL Server

Блог компании М.Видео-Эльдорадо IT-инфраструктура *Microsoft SQL Server *Администрирование баз данных *IT-компании

В арсенале Microsoft SQL Server есть одна интересная штука – service broker. По сути своей это очередь сообщений, встроенная в СУБД, способная обеспечить транзакционную целостность данных. Вещь удобная и, в грамотных руках, способная выстроить систему обмена между SQL Server’ами без применения дополнительных внешних сервисов – прямо из коробки.

С одной стороны service broker удобен, но с другой – от него не мало сюрпризов, способных поломать голову нюансами своей работы. О решении одного из таких сюрпризов поговорим прямо сейчас.

Читать далее
Всего голосов 29: ↑29 и ↓0 +29
Просмотры 4.2K
Комментарии 1

И снова про MS Excel

SQL *Microsoft SQL Server *Visual Basic for Applications *Data Engineering *

Однажды в моем инстаграме появились сразу несколько блоков рекламы по поводу ознакомительных курсов нескольких Российских онлайн-школ на тему "Аналитика данных на Python для чайников". Подумав о том, что можно с пользой для себя провести несколько часов и прокачать свои навыки по анализу, я записался и посетил данные курсы. Самое забавное, что практически все что я видел начиналось словами: "Давайте выбросим MS Excel (далее с вашего позволения просто - "эксель") и начнем работать на Python". Возмущению моему не было предела. В разумных рамках. Пройдя свой путь от разработчика (до черти как это назвать) и постоянно работая с данными, могу только привести в ответ фразу знаменитого персонажа Alf - "Вы просто не умеете их готовить".

Что можно готовить на VBA?
Всего голосов 15: ↑13 и ↓2 +11
Просмотры 16K
Комментарии 81

О лицензировании MS SQL по подключениям (CAL)

Microsoft SQL Server *Администрирование баз данных *Законодательство в IT

О лицензировании MS SQL по подключениям (CAL)

Лицензирование у Майкрософт непростое и многие считают, что в трехзвенной архитектуре могут существенно сэкономить, лицензируя в Microsoft SQL Server только одно подключение сервера приложений, не учитывая подключения клиентов к серверу приложений. Об ошибках, допускаемых при лицензировании по клиентам далее подробнее.

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Просмотры 4.8K
Комментарии 10

Создание таблицы субъектов РФ в формате Geography T-SQL (SQL Server)

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

В процессе подготовки инструмента для автоматического определения субъекта РФ по точке (тип данных Point) потребовалась таблица вида "Субъект РФ" - "geography::Object".

Предыстория: есть большой автопарк (>1000 ТС), который отправляет свои координаты на сервер в составе данных "Машина" - "Момент времени UTC" - "geography::Point". На сервере есть вторая таблица определенных событий по транспортному средству в составе данных "Машина" - "Момент времени (местное время)" - "Событие". Две задачи - перевести время во второй таблице из местного в UTC и далее использовать обе таблицы для дальнейшей автоматизации аналитики по событиям ТС в привязке к субъектам РФ.

Поиск в гугле по фразе "geojson субъекты РФ" привел на страницу https://gist.github.com/max107/6571147 - на ней в формате JSON перечислены субъекты и списки точек координат - границ.

Если вы пробежитесь по тексту, то структура этого JSON такая: на верхнем уровне один блок - один субъект. На следующем уровне вниз - блоки с нумерацией от 0 до, кажется, 19. Это означает, что субъект состоит из нескольких областей и каждая из них - это отдельный полигон (многоугольник). В файле нет Крыма, Севастополя. В файле не выделены Москва и СПб. Крым я дорисую сам, а Мск и СПб для моих задач не принципиальны.

Мы получили продукт кропотливого труда (спасибо большое автору этого массива координат и блоков) - полигоны и их границы. Осталось понять как его разобрать, забросить на сервер и сконструировать финальную таблицу.

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

Читать далее
Всего голосов 6: ↑4 и ↓2 +2
Просмотры 2.9K
Комментарии 0

Linked Server MSSQL. Оптимизация производительности в 30 раз

.NET *SQL *Microsoft SQL Server *C# *

Имеем запрос вида:

insert into LocalDatabaseName.dbo.TableName (column1, column2, ..., columnN)

select column1, column2, ..., columnN

from LinkedServerName.RemoteDatabaseName.dbo.TableName

Столкнулся с тем, что подобный запрос выполняется на 40k (40000) записей больше минуты. С ростом количества подобных запросов или количества записей, производительность сильно падает и оптимизировать запрос средствами SQL никак нельзя.

С помощью приложения ImportExportDataSql мне удалось ускорить этот запрос до 2 секунд, не используя LinkedServer.

Читать далее
Всего голосов 3: ↑1 и ↓2 -1
Просмотры 8.4K
Комментарии 8

Ваш скрипт, обслуживающий индексы, измеряет не то, что надо

Microsoft SQL Server *Администрирование баз данных *
Перевод

Мой Дорогой Друг Шон недавно написал пост, рассказывающий о том, как люди неправильно обслуживают индексы. Я собираюсь зайти немного дальше и поговорить о том, что сам метод, которым ваш скрипт, обслуживающий индексы, оценивает фрагментацию индексов - неправильный.

Если вы посмотрите на то, как ваш скрипт решает нужно или нет перестраивать индексы, и тоже самое касается планов обслуживания (я запускал ПРОФАЙЛЕР ДА ЗДРАВСТВУЕТ ПРОФАЙЛЕР ВПЕРЁД ПРОФАЙЛЕР чтобы проверить), вы увидите, что они выполняют запрос к sys.dm_db_index_physical_stats.

Все эти запросы используют столбец avg_fragmentation_in_percent, чтобы понять - нужно ли перестроить индекс

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 2K
Комментарии 9

Управление и оптимизация баз данных SQL Server в ApexSQL — анонс вебинара

Блог компании Gals Software SQL *Microsoft SQL Server *Администрирование баз данных *
ApexSQL — это комплексный набор инструментов, который оптимизирует и автоматизирует процессы управления базами данных SQL Server и разработки, а также обеспечивает безопасность и соответствие требованиям. В одной из прошлых статей мы описывали бесплатные и платные инструменты ApexSQL (там и правда есть из чего выбрать).

image

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

Под катом список решений ApexSQL с кратким описанием и ссылками на соответствующие страницы на сайте вендора.
Читать дальше →
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 1.1K
Комментарии 0

Вклад авторов