Skip to content

Команды DBCC в SQL Server: DBCC FREEPROCCACHE

Пересказ статьи Steve Stedman.SQL Server DBCC Commands: DBCC FREEPROCCACHE


DBCC FREEPROCCACHE является командой DBCC в Microsoft SQL Server, которая может использоваться для очистки процедурного кэша - области памяти, в которой хранятся планы выполнения для хранимых процедур, триггеров и ad hoc пакетов Transact-SQL. Очистка процедурного кэша может быть полезна для устранения проблем с производительностью или тестирования влияния изменений схемы базы данных на производительность запросов.
Continue reading "Команды DBCC в SQL Server: DBCC FREEPROCCACHE"

Что использовать - табличную переменную или временную таблицу?

Пересказ статьи Joe Billingham. Should I use a Table Variable or a Temporary Table?


При работе с SQL Server нет ничего необычного в необходимости сохранять данные во временной таблице или табличной переменной. Хотя оба варианта могут использоваться для достижения одной и той же цели, они по-разному могут влиять на производительность и возможность написания эффективного кода. Давайте исследуем различия между табличными переменными и временными таблицами, и когда предпочтительно использовать ту или иную.
Continue reading "Что использовать - табличную переменную или временную таблицу?"

Что делает установка уровня совместимости в SQL Server?

Пересказ статьи Brent Ozar. What Does Setting the SQL Server Compatibility Level Do?


Если щелкнуть правой кнопкой по базе данных в SQL Server Management Studio, вы получаете возможность установить уровень совместимости (Compatibility Level) на уровне базы данных:
Continue reading "Что делает установка уровня совместимости в SQL Server?"

Триггеры: от любви до ненависти

Пересказ статьи Ryan. Triggers: A LoveHate Relationship


Чтобы понять, почему триггеры могут вызывать такие различные реакции, я хочу привести краткую историю триггеров (с моей точки зрения) и то, как она повлияла на мой опыт работы с ними на раннем этапе.

Действие...реакция


Мы живем в мире действия/реакции - и не важно, как наши данные обрабатываются. По мере того, как системы реляционных баз данных развивались и совершенствовались на протяжении десятилетий, в декларативную систему добавлялись различные формы программных функций. Continue reading "Триггеры: от любви до ненависти"

Получение TOP(N) строк с помощью APPLY или ROW_NUMBER() в SQL Server

Пересказ статьи Jared Westover. Return TOP (N) Rows using APPLY or ROW_NUMBER() in SQL Server


По большей части, существует много способов сделать одну и ту же вещь. Например, если вам нужно вернуть заданное число строк из табличнозначной функции или табличного выражения. Обычно для выполнения этой задачи разработчики применяют метод, основанный на операторе APPLY. Но является ли APPLY лучшим методом для получения результатов? Как узнать, какой метод выбрать? И что делает один метод лучше другого?

Здесь мы сравним два метода для достижения одних и тех же результатов. Сначала я детально рассмотрю оператор APPLY в случаях, когда он обычно используется. Вы знаете, что он существует в двух вариантах? Затем мы сравним APPLY с ROW_NUMBER() для получения TOP(n) строк из табличного выражения. Я расскажу о критериях, используемых для измерения производительности. Как вы думаете, кто из них победит при сравнении? К концу статьи вы будете знать, какой метод выбрать для вашего следующего проекта.

Continue reading "Получение TOP(N) строк с помощью APPLY или ROW_NUMBER() в SQL Server"

PostgreSQL для администраторов SQL Server: первые четыре настройки для проверки

Пересказ статьи Ryan Booz. PostgreSQL for the SQL Server DBA: The First Four Settings to Check



Пять лет назад я начал возвращаться к использованию PostgreSQL, и это не было гладким путешествием. Одной из главных причин, по которой мне тяжело давался прогресс в изучении PostgreSQL на раннем этапе, было то, что я просто не знал, что мне следует искать. Фактически я просто постоянно беседовал в течение месяца о различиях между SQL Server и PostgreSQL с людьми, идущими по тому же пути. Continue reading "PostgreSQL для администраторов SQL Server: первые четыре настройки для проверки"

Пейджинг данных в T-SQL

Пересказ статьи Greg Larsen. Paging Data in T-SQL


Иногда при работе с очень большими наборами данных вы не захотите получить сразу все данные. В предыдущей статье я рассматривал использование предложение TOP , которое позволяет получить только указанное число строк от начала результирующего набора запроса. Однако если вы захотите просмотреть строки, следующие за этим набором, пейджинг данных позволит вам продолжить прокручивать данные из набора по одной странице за раз. Т.е. вы могли захотеть вывести первые 100 строк, затем другие 100, затем оставшиеся строки и т.д.

В этой статье мы покажем, как выполнить пейджинг по результирующему набору с помощью опций OFFSET и FETCH в предложении ORDER BY. Continue reading "Пейджинг данных в T-SQL"

Приостановка и возобновление создания ограничений таблицы в SQL Server 2022

Пересказ статьи Daniel Calbimonte. SQL Server 2022 Pause and Resume Creation of Table Constraints


В SQL Server 2022 появилась новая функция, которая позволяет приостанавливать и возобновлять создание ограничений первичного ключа (primary key) и уникальности (unique) для таблицы. В этой статье рассматривается использование этой новой функции.

Для небольших таблиц добавление ограничения может происходить быстро, но для больших таблиц этот процесс может быть значительно более долгим, иногда часами, и потреблять много ресурсов. В предыдущих версиях, если вы хотели приостановить процесс из-за проблем с ресурсами, такой возможности не было. Единственным вариантом было остановить создание и начать его заново. Теперь в SQL Server 2022 при добавлении ограничения вы можете поставить процесс на паузу, а потом возобновить его. Continue reading "Приостановка и возобновление создания ограничений таблицы в SQL Server 2022"