Миф №23: эскалация блокировок происходит сначала с уровня строки на уровень страницы, а затем с уровня страницы на уровень таблицы.
ЛОЖЬ
Нет, никогда. Эскалация блокировок в SQL Server всегда переходит непосредственно к блокировке таблицы.
Нет, никогда. Эскалация блокировок в SQL Server всегда переходит непосредственно к блокировке таблицы.
Большинство инструментов мониторинга баз данных созданы не для той аудитории. Панели мониторинга предназначены для успокоения руководителей, оповещения откалиброваны для удовлетворения контрольных списков соответствия требованиям, а отчёты отформатированы для ежеквартальных обзоров. Ничто из этого не полезно в 10 часов вечера, когда приложение возвращает тайм-ауты, а дежурный разработчик просит обновлений каждые три минуты. То, что нужно администратору баз данных в этот момент, — это инструмент, который уже имеет контекст. Не сырые данные, которые нужно собирать в условиях стресса. Не список превышенных порогов. А реальный контекст: что выполнялось, что находилось в ожидании, что изменилось и как это сравнивается с тем, что является нормальным для данного конкретного экземпляра в это время суток. Это более сложная задача, чем кажется, и большинство инструментов мониторинга её не решают. Давайте поговорим об углублённой диагностике и информативных панелях мониторинга.
Короткий ответ: в реальном мире работает только первая колонка. Когда SQL Server нужны данные о второй колонке, он строит собственную статистику по этой колонке (предполагая, что она ещё не существует) и использует эти две статистики вместе — но они не коррелируют друг с другом.
Регулятор ресурсов (Resource Governor) — это замечательная возможность с SQL Server 2008, но существуют некоторые заблуждения относительно того, что он может делать…
Этот миф (и его производные) очень распространены среди не-администраторов баз данных, поскольку многие проблемы в Windows можно исправить перезагрузкой компьютера (да, я до сих пор вижу это на серверах, Windows 10 и т.д. — попробуйте изменить номер порта служб терминалов без перезагрузки).
Этот миф — один из самых распространённых, и я встречал очень мало людей, которые знают правду.
ЛОЖЬ!
На этой неделе я вёл курс «Microsoft Certified Masters – Database» здесь, в Редмонде, и в первый день мы обсуждали структуру каталогов FILESTREAM. Мне задали вопрос: откуда берутся GUID имён каталогов? Поэтому я начал копаться в системных таблицах, пока Кимберли читала лекцию. Посмотрите мою предыдущую статью блога (Структура каталога FILESTREAM) за прошлую неделю, чтобы увидеть схему базы данных, с которой я работаю. Я воссоздал её снова и написал несколько запросов, чтобы найти, где хранятся GUID, поскольку они должны где-то храниться в базе данных.
В этой статье вы узнаете, как выявить и победить нестабильную производительность в SQL Server. Если ваши запросы без предупреждения переходят от «молниеносных» к «еле ползущим», вы стали жертвой Parameter Sniffing. Пришло время вернуть контроль над вашими планами выполнения и остановить непредсказуемость.
Ваш запрос работает быстро, а затем внезапно… становится медленным!
У вас есть:
👉 Что изменилось?
💣 Parameter Sniffing. И нет… это НЕ ошибка. Это то, как SQL Server был спроектирован для работы.
За последние 25 лет Microsoft SQL Server значительно эволюционировал, внедряя мощные инструменты и функциональные возможности, одновременно отказываясь от других. В рамках этой эволюции многие возможности были помечены как устаревшие — они по-прежнему работают в текущих версиях, но планируются к удалению в будущих выпусках. Понимание этих устаревших возможностей имеет решающее значение для администраторов баз данных и разработчиков, чтобы обеспечить долгосрочную совместимость и избежать потенциальных сбоев в своих системах.
Объявление возможности устаревшей служит сигналом от Microsoft о необходимости перехода от устаревших или менее эффективных технологий к современным альтернативам. От изменений синтаксиса до целых компонентов — в каждой версии SQL Server появлялись возможности, которые выходили из употребления по мере адаптации платформы к новым отраслевым стандартам и потребностям пользователей. Этот непрерывный процесс помогает поддерживать надёжную, безопасную и высокопроизводительную среду баз данных, но требует проактивного планирования, чтобы избежать зависимости от инструментов, которые вскоре станут неактуальными.
В этой статье мы рассмотрим подробную хронологию устаревших возможностей в различных версиях SQL Server, начиная с SQL Server 2000 и заканчивая последними выпусками. Изучив эти изменения, вы сможете лучше подготовиться к обновлениям, реорганизовать устаревший код и принять рекомендуемые практики, чтобы сохранить вашу инфраструктуру баз данных готовой к будущему. Давайте углубимся в ключевые возможности, которые были исключены за эти годы, и разберёмся с их заменами.
В большинстве заданий SQL Server, расписаний и скрытых сложностей гораздо больше, чем вы осознаёте. И только когда вы подходите к миграции и заглядываете под капот, масштаб становится очевидным.
Здесь мы извлечём детали из базы данных msdb, чтобы получить чёткое представление о том, с чем вам на самом деле предстоит иметь дело. Если вы не поймёте объём работ заранее, миграция сама выявит все сложности.
Несколько человек предложили разобрать некоторые мифы, связанные с контрольными суммами страниц, так что сегодня у нас очередной экстравагантный «многомифобойный» день! Ну, по крайней мере, я в восторге :-)
Я подробно описывал контрольные суммы страниц в статье блога How to tell if the IO subsystem is causing corruptions?
уверен, что это случится с вами в какой-то момент... и с множеством ваших коллег также. Клиент сообщает вам, что ваше приложение работает крайне медленно. Вы уже идентифицировали проблемный запрос и…
Исполнение плана выглядит идеально…
но ваш запрос всё ещё медленно работает.
👉 Что-то лжёт вам.
И нет… не SQL Server! ....это то, как вы читаете план выполнения.