На этой неделе я вёл курс «Microsoft Certified Masters – Database» здесь, в Редмонде, и в первый день мы обсуждали структуру каталогов FILESTREAM. Мне задали вопрос: откуда берутся GUID имён каталогов? Поэтому я начал копаться в системных таблицах, пока Кимберли читала лекцию. Посмотрите мою предыдущую статью блога (Структура каталога FILESTREAM) за прошлую неделю, чтобы увидеть схему базы данных, с которой я работаю. Я воссоздал её снова и написал несколько запросов, чтобы найти, где хранятся GUID, поскольку они должны где-то храниться в базе данных.
MS SQL Server дело тонкое...
4.4.26
Структура каталогов FILESTREAM – откуда берутся GUID?
3.4.26
SQL Server Parameter Sniffing: ошибка, которая не является ошибкой (но всё ломает)
В этой статье вы узнаете, как выявить и победить нестабильную производительность в SQL Server. Если ваши запросы без предупреждения переходят от «молниеносных» к «еле ползущим», вы стали жертвой Parameter Sniffing. Пришло время вернуть контроль над вашими планами выполнения и остановить непредсказуемость.
Ваш запрос работает быстро, а затем внезапно… становится медленным!
У вас есть:
- Тот же запрос.
- Те же данные.
- Тот же сервер.
👉 Что изменилось?
💣 Parameter Sniffing. И нет… это НЕ ошибка. Это то, как SQL Server был спроектирован для работы.
2.4.26
SQL Server Deprecated Features: 25-летняя хронология и руководство по обеспечению совместимости с будущими версиями
За последние 25 лет Microsoft SQL Server значительно эволюционировал, внедряя мощные инструменты и функциональные возможности, одновременно отказываясь от других. В рамках этой эволюции многие возможности были помечены как устаревшие — они по-прежнему работают в текущих версиях, но планируются к удалению в будущих выпусках. Понимание этих устаревших возможностей имеет решающее значение для администраторов баз данных и разработчиков, чтобы обеспечить долгосрочную совместимость и избежать потенциальных сбоев в своих системах.
Объявление возможности устаревшей служит сигналом от Microsoft о необходимости перехода от устаревших или менее эффективных технологий к современным альтернативам. От изменений синтаксиса до целых компонентов — в каждой версии SQL Server появлялись возможности, которые выходили из употребления по мере адаптации платформы к новым отраслевым стандартам и потребностям пользователей. Этот непрерывный процесс помогает поддерживать надёжную, безопасную и высокопроизводительную среду баз данных, но требует проактивного планирования, чтобы избежать зависимости от инструментов, которые вскоре станут неактуальными.
В этой статье мы рассмотрим подробную хронологию устаревших возможностей в различных версиях SQL Server, начиная с SQL Server 2000 и заканчивая последними выпусками. Изучив эти изменения, вы сможете лучше подготовиться к обновлениям, реорганизовать устаревший код и принять рекомендуемые практики, чтобы сохранить вашу инфраструктуру баз данных готовой к будущему. Давайте углубимся в ключевые возможности, которые были исключены за эти годы, и разберёмся с их заменами.
1.4.26
Аудит заданий агента перед миграцией
В большинстве заданий SQL Server, расписаний и скрытых сложностей гораздо больше, чем вы осознаёте. И только когда вы подходите к миграции и заглядываете под капот, масштаб становится очевидным.
Здесь мы извлечём детали из базы данных msdb, чтобы получить чёткое представление о том, с чем вам на самом деле предстоит иметь дело. Если вы не поймёте объём работ заранее, миграция сама выявит все сложности.
31.3.26
Мифы о контрольных суммах страниц
Несколько человек предложили разобрать некоторые мифы, связанные с контрольными суммами страниц, так что сегодня у нас очередной экстравагантный «многомифобойный» день! Ну, по крайней мере, я в восторге :-)
Я подробно описывал контрольные суммы страниц в статье блога How to tell if the IO subsystem is causing corruptions?
30.3.26
Ваш план исполнения лжёт Вам...и Вы об этом не догадываетесь
уверен, что это случится с вами в какой-то момент... и с множеством ваших коллег также. Клиент сообщает вам, что ваше приложение работает крайне медленно. Вы уже идентифицировали проблемный запрос и…
Исполнение плана выглядит идеально…
но ваш запрос всё ещё медленно работает.
👉 Что-то лжёт вам.
И нет… не SQL Server! ....это то, как вы читаете план выполнения.
27.3.26
Перегружена ли индексами ваша база данных?
👉 Если вы пропустили мою предыдущую статью, ознакомьтесь с ней здесь: Прекратите дефрагментировать индексы! Доступна для предварительного изучения функция Auto Index Compaction
Ваш запрос работает медленно.
И вы добавляете индекс.
Запрос ускоряется… на мгновение.
Но затем всё остальное начинает работать медленнее.
👉 Что же произошло?
Возможно, вы перегружаете свою базу данных индексами.
26.3.26
Десять лучших практик настройки производительности SQL Server
Существует огромное количество лучших практик по настройке производительности SQL Server — я мог бы легко написать целую книгу на эту тему, особенно учитывая множество различных настроек базы данных, настроек сервера, практик написания кода, типов ожидания и так далее, которые могут влиять на производительность. Для этой статьи я решил немного отступить от списка конкретных деталей и дать несколько общих рекомендаций о том, как подходить к настройке производительности, чтобы максимизировать усилия и минимизировать отвлекающие факторы.
25.3.26
Прекратите дефрагментировать индексы! Доступна для предварительного изучения функция Auto Index Compaction
В предыдущей статье мы проанализировали улучшения производительности в SQL Server 2025 CU3 и обнаружили скрытые оптимизации, о которых никто не говорит.
👉 Если вы пропустили, посмотрите здесь:
SQL Server 2025 CU3 – Скрытое улучшение производительности, о котором никто не говорит
В этой же статье мы представим удивительную новость в мире SQL Server, которую я называю функцией автоматического уплотнения индексов (Auto Index Compaction).
24.3.26
Мифы для администратора SQL Server о повреждениях и восстановлении
Существует множество вещей, которые я постоянно слышу о том, что может и что не может восстановление (repair), что может вызывать повреждения и могут ли повреждения исчезать. Некоторые из них я уже описывал в постах за последние несколько лет, поэтому вместо того, чтобы повторять то же самое, этот пост-разоблачитель представляет собой несколько интересных ссылок, чтобы порадовать вас.
23.3.26
Интересный случай… когда нет памяти в буферном пуле и нет доступной памяти в ОС
У Джонатана недавно возникла проблема у клиента: буферный пул SQL Server был принудительно уменьшен до абсурдно маленького размера — всего несколько сотен мегабайт, но при этом в операционной системе также практически не было свободной памяти. Page Life Expectancy (ожидаемое время жизни страницы) был равен нулю! Что же происходило?
22.3.26
Самая распространённая ошибка индексирования в SQL Server (и как её исправить)
Индексы — одна из самых мощных функций производительности в SQL Server. Но они также одни из самых непонятых. Многие разработчики считают, что добавление новых индексов автоматически улучшает производительность. К сожалению, часто бывает наоборот. Одна из самых распространённых проблем с производительностью SQL Server, которую я вижу в реальных системах, — это база данных, полная ненужных или плохо спроектированных индексов. Сегодня мы рассмотрим самую распространённую ошибку индексирования в SQL Server и способ её исправления.
