Обновить
33.78
Рейтинг

Microsoft SQL Server *

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

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

Patch Tuesday: Microsoft выпустила февральские обновления безопасности

Блог компании Microsoft Информационная безопасность *Системное администрирование *IT-инфраструктура *Microsoft SQL Server *

В феврале Microsoft выпустила обновления безопасности для закрытия 70 уязвимостей, ни одна из которых не была классифицирована как Критическая, а 1 уязвимость была обнародована публично (0-day). Впервые за 5 лет в выпуске обновлений нет критических уязвимостей.

Помимо стандартного набора затронутых продуктов – Windows, Office, SharePoint, Visual Studio, .NET – обновления этого выпуска также затрагивают Microsoft Teams, PowerBI, SQL Server, Dynamics 365 on-premise и Azure Data Explorer.

Максимальный рейтинг по шкале CVSS среди всех закрытых уязвимостей составил 8.8 из 10 (в среднем на протяжении последнего года этот параметр был 9.6).

В этой статье я расскажу о самых важных моментах февральского вторника обновлений.

Узнать, как защитить свою систему
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 1.4K
Комментарии 9

Новости

Сравнение типов данных VARCHAR(max) и VARCHAR(n) в SQL Server

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

Тип varchar(max) часто используется как в обычных, так и во временных таблицах. Да, с ним можно не беспокоиться о длине строк или появления ошибки "Произойдет усечение строковых или двоичных данных" (String or binary data would be truncated).

Но стоит ли использовать varchar(max) повсюду?

Подробнее о varchar(n) вы можете прочитать здесь, а в этой статье мы сравним типы varchar(max) и varchar(n).

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

Почему оптимизатор запросов не анализирует содержимое буферного пула

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

В SQL Server используется стоимостной оптимизатор запросов (cost-based optimizer), который ищет оптимальный план в течение времени, выделенного для компиляции запроса. При оптимизации плана учитывается информация о таблицах, участвующих в запросе, существующих индексах, а также статистика распределения данных. Поиск оптимального плана также включает в себя минимизацию количества физических чтений.

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

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

Группировка гео координат

Microsoft SQL Server *Геоинформационные сервисы *Математика *
Из песочницы
Tutorial

Здравствуйте!

Хочу рассказать об кластеризации (группировке) геокоординат на стороне БД. Хотелось бы все это сделать в максимально простом виде, используя школьную математику. На работе появилась задача "отображение тепловой карты пожаров в МО". Пожары представлены виде географических координат. Нужно сгруппировать пожары, которые находятся в определенном радиусе, и на основе этих данных построить тепловую карту.

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

Минуточку внимания

Как не надо индексировать

MySQL *PostgreSQL *SQL *Microsoft SQL Server *

Развитие происходит по спирали: когда-то люди не умели правильно индексировать, потом (в основном) научились, потом пришли noSQL и все снова забыли знание древних. Что вы будете делать, когда последние из старых DBA отплывут в Валинор?

Снова и снова и сталкиваюсь с полным набором антипаттернов индексирования. Я их перечислю, но! Для каждого антипаттерна есть исключение, когда именно это и стоит делать. Поэтому кликбейтно сформулированное правило верно в 95% случаях, но если вы хотите копнуть глубже, то прочитайте про исключения.

И в конце полезные скрипты для MSSQL, Postgres и MySQL.

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

Нормализация SQL profiler трейса для группировки

Python *Microsoft SQL Server *
Tutorial

Если вы разбираетесь "почему тормозит база" и у вас есть трейс, созданный MS SQL profiler, то что вы делаете первым делом? Правильно, сохраняете его в таблицу, чтобы поразбираться с ним с помощью родного SQL, а не в GUI.

Очень хотелось бы сделать group by TextData, но увы - так не получится из-за разных параметров у процедур и кверей. А выразительных способностей SQL не хватет, чтобы эффективно 'нормализовать' трейс.

Но ведь можно скрестить ежа и ужа, SQL и Python, и решить задачу в несколько строк! Полезные скрипты ниже.

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

Карманный справочник: сравнение синтаксиса MS SQL Server и PostgreSQL

Блог компании Ozon Tech PostgreSQL *Программирование *SQL *Microsoft SQL Server *
Tutorial

Приветствую, уважаемые хаброжители!

Так как занимаюсь переводом кода с MS SQL в Postgre SQL с начала 2019 года, то решил продолжить сравнение этих двух СУБД.

В прошлой публикации мы рассматривали отличия в быстродействии MS SQL и PostgreSQL для 1C.

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

Начнем рассмотрение с сопоставления типов.

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

С чем кушать Irregular Selectivity в MSSQL и не только

MySQL *PostgreSQL *SQL *Microsoft SQL Server *

Недавно мне пришлось объяснять это нашим братьям меньшим на работе, и я решил написать текст, который может пригодиться. В конце вы найдете ссылку на полезный скрипт для MSSQL, а также Postgres и MySQL.

В идеальном мире, если в таблице миллион записей, а разных значений например всего 100K, то на каждое значение приходится по 10 записей. Но что делать, если в список ваших значений затесалось особое значение, например, NULL, пробел или 'n/a'? Для SQL optimizier это головная боль. Для вас тоже.

Картинка иллюстрирует людей со значением 'n/a' в поле SSN

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

Отслеживание жизненного цикла учетных записей Active Directory — анонс вебинара

Блог компании Gals Software Информационная безопасность *IT-инфраструктура *Microsoft SQL Server *Microsoft Azure


Жизненный цикл пользователя — это создание (provisioning), управление (managing) и отключение (de-provisioning) пользователя. На каждом из этих этапов пользователю присваиваются или отключаются специфические атрибуты: членство в группах, почтовый ящик, доступ к файловому хранилищу и т.д.

Приглашаем на вебинар, на котором познакомим вас с решением Quest Enterprise Reporter. Это инструмент управления жизненным циклом пользователей и формирования отчётов безопасности для окружения Microsoft: Active Directory/Azure AD, Exchange/Exchange Online, Office 365, Windows Servers, OneDrive for Business, SQL Server, инфраструктура Azure (ВМ, диски, группы сетевой безопасности и остальное). Enterprise Reporter включает несколько сотен предустановленных отчётов для перечисленной инфраструктуры, позволяет выполнять управляющие действия над правами доступа (добавить пользователя в группу, отменить доступ к директории и т.п.) прямым переходом из отчёта и формирования собственных отчётов на основе имеющихся в инфраструктуре данных.

Вебинар состоится 20 января в 11:30 по московскому времени. Регистрация.

Под катом примеры отчетов и скриншоты интерфейса Enterprise Reporter.
Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 3K
Комментарии 0

Построение цифрового финансового ОЦО силами непрофессиональных разработчиков

Блог компании Tele2 Microsoft SQL Server *Microsoft Access *Финансы в IT Visual Basic for Applications *

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

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

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

Сказки старого DBA

SQL *Microsoft SQL Server *Карьера в IT-индустрии Читальный зал DevOps *

Хотите легкого чтива под новый год? Вот крошечные истории про случаи из моей работы или случаи, свидетелем которых я стал.

Понеслась!
Всего голосов 52: ↑49 и ↓3 +46
Просмотры 11K
Комментарии 22

История разработки одного очень удобного расширения

Программирование *SQL *Проектирование и рефакторинг *Microsoft SQL Server *
Из песочницы

Недавно поменял работу, на новом месте столкнулся с нечитабельной структурой базы данных MSSQL, в которой таблицы и поля не имеют понятных названий (префикс + число). Например: таблицы называются Data1078, Data2022, а колонки называются f210, f1521. Подобные структуры часто встречаются в коробочных продуктах.

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

Читать далее
Рейтинг 0
Просмотры 2.1K
Комментарии 5

NoSQL и Антивакцинаторство

MySQL *PostgreSQL *SQL *NoSQL *Microsoft SQL Server *

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

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

С середины прошлого века мы работаем над реляционными базами данных. И они прекрасны. Но сейчас все чаще любят использовать NoSQL всех видов и мастей. И они иногда неплохо ложатся и затыкают собой какое-то мелкое место в проекте. Если я ценю свои данные и мне нужна какая-то надежность, то мне нужны ACID гарантии. Если это всего лишь кеш, данные из которого нужны чтобы ускорить приложение то я с радостью возьму Redis или аналоги. Ведь если он упадет или данные рассогласуются я смогу их восстановить из нормальной базы.

Читать далее
Всего голосов 56: ↑48 и ↓8 +40
Просмотры 7.2K
Комментарии 44

Демистификация дампов: Non-Yielding Scheduler

Microsoft SQL Server *
Перевод

По материалам статьи Sean Gallardy «Demystifying Dumps: Non-Yielding Scheduler

23 августа 2021 г

Одним из наиболее распространенных случаев, приводящих к генерации дампа памяти в SQL Server, является «ступор» при выполнении задачи на планировщике: non-yielding scheduler (для краткости называемый NYS). Что же это значит? Почему он вызывает дамп памяти? Где можно найти что-нибудь, что можно исследовать для поиска источника ступора? Хорошие вопросы, давайте на них ответим.

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

Как работает антифрод и в чем ценность управления метаданными

Блог компании ЮMoney SQL *Microsoft SQL Server *Хранение данных *Конференции

На очереди SQL-секция конференции ЮMoneyDay, и она очень мощная, потому что уже проверена осенним митапом про базы данных. Даже если были на нём — в докладах много нового.

Начнём с антифрода: как мы онлайн и офлайн обрабатываем транзакции, храним данные на Microsoft SQL Server и используем движок Business Rule Engine. Далее поделимся, зачем мы взялись за управление метаданными и почему продолжаем развивать это направление.

Заглядывайте под кат!

Смотреть кейсы по SQL
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 1.5K
Комментарии 0

Как прекратить генерацию дампов SQL Server

Microsoft SQL Server *
Перевод

По материалам статьи Esther Xin «Prevent SQL Server Dump Generation in Hot Cases: Common Ways & Scenarios»
14 ноября 2021г.
В этой статье будут описаны способы предотвращения создания дампа SQL Server для наиболее часто встречающихся видов исключений. В промышленной среде это позволит продержаться до решения проблемы, в случае, когда генерация дампов сильно мешает нормальной работе. Подразумевается, что у вас уже есть файл дампа, пригодный для расследования RCA. Также, вы должны быть уверены, что причиной создания дампов является одно и то же исключение, о чём говорит одинаковый стек вызовов для потока, приведшего к дампу.

В продуктиве, особенно когда SQL Server является частью кластера (SQL AG или FCI), в качестве быстрого решения для защиты от сбоев, вызванных процессом генерации дампа, поддержка Майкрософт может предложить рассмотреть возможность отключения процесса создания дампа.
Главной опасностью того, что файл дампа не будет генерироваться после того, как произойдёт исключение, является невозможность дальнейшего поиска и устранения проблем на основании содержащейся в дампе информации. Кроме того, само отключение возможности создания дампа не может избавить от возникновения исключения в процессе SQL Server. Применяя этот метод, будьте осторожны и учитывайте возможные риски, связанные с тем, что отсутствие дампов может ввести в заблуждение при оценке состояния сервера. Обязательно согласуйте отключение дампов со всеми заинтересованными сторонами, прежде чем вносить какие-либо изменения.
Конечно, увеличение тайм-аута проверки статуса сервера и тайм-аута проверки работоспособности может быть альтернативным вариантом реакции на череду дампов, но в типичном продуктиве в случае аварии, когда требуется быстрый отклик и быстрая отработка отказа, такой вариант не подходит (нежелательно ждать генерации дампа перед отработкой отказа или длительное создание дампа само может стать причиной отработки отказа).
Ниже показаны несколько флагов трассировки, которые позволяют отключить создание дампа в наиболее часто встречающихся случаях. В других случаях, следует обратиться к документации Майкрософт, которая описывает соответствующие флаги трассировки и поведение сервера после их включения.

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

Автоматическое принятие приглашений к обмену документами в ЭДО Диадок по API

Python *Microsoft SQL Server *API *

Автоматизация приема приглашений к обмену документами в кабинете ЭДО

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

Когда «сделать плохо» == «сделать лучше»

Анализ и проектирование систем *SQL *Microsoft SQL Server *ООП *

В мире IT есть много разных концепций и подходов, которые облегчают процесс разработки, расширения архитектуры и создания прочных продуктов. KISS, DRY, SOLID и прочие умные слова - это то, что должен знать программист для того, чтобы считаться как минимум неплохим. Но в данном посте будет затронута и без того известная тема - все эти подходы это рекомендации, а не безукоризненный закон.

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

Как поменять один символ в коде и спасти день

Программирование *SQL *Microsoft SQL Server *Отладка *
Из песочницы

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

Читать далее
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 5.9K
Комментарии 13

Ещё одна «засада» на уровне изоляции Read Uncommitted

Microsoft SQL Server *
Перевод

По материалам статьи Craig Freedman: Query Failure with Read Uncommitted

Опубликовано 23 марта 2019 г., впервые опубликовано в MSDN 12 июня 2007 г.

В предыдущих статьях были рассмотрены практически все уровни изоляции, за исключением Read Uncommitted или NOLOCK. Эта статья завершает серию обсуждением того, что может приключиться, если читать данные ещё не зафиксированных транзакций. О вреде NOLOCK написано уже немало. Например, вы могли об этом почитать у Любора Коллара (Lubor Kollar) из «SQL Server Development Customer Advisory Team» и в (ныне уже недоступном) блоге Тони Роджерсона (Tony Rogerson).

В дополнение к многочисленным аргументам, ниже будет продемонстрирована еще одна опасность NOLOCK. Начнём с создания двух таблиц:

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

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